大佬教程收集整理的这篇文章主要介绍了圆的绘制 分形图案,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1.圆的绘制
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
#include <math.h>
#define PI 3.1415926535897
void myinit (void)
{
/* 将背景清为白色 */
glClearColor (1.0,1.0,0.0);
glShadeModel (GL_FLAT);
}
void CALLBACK display(void)
{
int i,num_points=100;
glClear (GL_COLOR_BUFFER_BIT);
/* 将所有的线画为黑色 */
glColor3f (0.0,0.0,0.0);
glBegin(GL_LINE_LOOP);
for ( i = 0; i < 100; i++)
{
double t=2*PI*i/num_points;
glVertex2d(200+100*cos(t),200+100*sin(t));
}
glEnd();
glFlush();
}
int main(int argc,char** argv)
{
auxInitDisplayMode (AUX_SINGLE | AUX_RGBA);
auxInitPosition (0,400,400);
auxInitWindow ("Circle");
myinit ();
auxMainLoop(display);
return 0;
}
#include<windows.h>
#include<GL/gl.h>
#include<GL/glu.h>
#include<GL/glaux.h>
#include<math.h>
#define PI 3.14159
#define MaxIter 8000
void CALLBACK myReshape(GLint w,GLint h)
{
glViewport(0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-8,8,-3,13);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void CALLBACK display(void)
{
GLfloat x=0,y=0;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.4f,0.8f,0.4f);
glBegin(GL_POINTS);
for (int i=1;i<=MaxIter;i++)
{
int n=(int) 100*rand()/(RAND_MAX+1);
GLfloat x1,y1;
if(n<1)
{
x1=0;
y1=0.16*y;
}
else if(n<8)
{
x1=0.2*x-0.26*y;
y1=0.23*x+0.22*y+1.6;
}
else if(n<16)
{
x1=-0.15*x+0.28*y;
y1=0.26*x+0.24*y+0.44;
}
else
{
x1=0.85*x+0.04*y;
y1=-0.04*x+0.85*y+1.6;
}
glVertex2f(x1,y1);
x=x1;y=y1;
glFlush();
}
glEnd();
glFlush();
}
int main(int argc,char* argv[])
{
auxInitDisplayMode (AUX_SINGLE | AUX_RGBA);
auxInitPosition (0,300,300);
auxInitWindow ("分形图案");
glClearColor(0.0,0.0);
auxReshapeFunc(myReshape);
auxMainLoop(display);
}
以上是大佬教程为你收集整理的圆的绘制 分形图案全部内容,希望文章能够帮你解决圆的绘制 分形图案所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。