文档详情

交互式计算机图形学实例程序.pdf

发布:2017-08-27约字共77页下载文档
文本预览下载声明
A.1 Sierpinski 镂垫程序 /* two-dimensional Sierpinski gasket */ /* generated using randomly selected vertices */ /* and bisection */ #include GL/glut.h /*you may have to change the include toglut.h or elsewhere depending on where it is stored on your system */ /* glut.h usually has included for gl.h and glu.h */ void myinit(void) { /* attributes */ glClearColor(1.0, 1.0, 1.0, 1.0); /* white background */ glColor3f(1.0, 0.0, 0.0); /* draw in red */ /* set up viewing */ /* 50.0 × 50.0 camera coordinate window with origin lower left */ glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0, 50.0, 0.0, 50.0); glMatrixMode(GL_MODELVIEW); } void display(void) { /* A triangle */ GLfloat vertices[3][2]={{0.0,0.0},{25.0,50.0},{50.0,0.0}}; 74 交互式计 算机算 机 图 形学形 学 —— 基于OpenGL 的自顶 向向下方法下 方 法 (第4 版) int i, j, k; int rand(); /* standard random number generator */ GLfloat p[2] ={7.5,5.0}; /* an arbitrary initial point inside traingle */ glClear(GL_COLOR_BUFFER_BIT); /* clear the window */ glBegin(GL_POINTS); /* compute and plots 5000 new points */ for( k=0; k5000; k++) { j=rand()%3; /* pick a vertex at random */ /* Compute point halfway between selected vertex and old point */ p[0] = (p[0]+vertices[j][0])/2.0; p[1] = (p[1]+vertices[j][1])/2.0; /* plot new point */ glVertex2fv(p); } glEnd();
显示全部
相似文档