1、glVertex3f(0.0f, 0.0f, 0.0f);glVertex3f(10.0f, 0.0f, 0.0f);glEnd();点的属性(大小)void glPointSize(GLfloat size);直线的绘制模式GL_LINESGL_LINE_STRIPGL_LINE_LOOP直线的属性线宽void glLineWidth(GLfloat width)线型glEnable(GL_LINE_STIPPLE);glLineStipple(GLint factor,GLushort pattern);三角形面的绘制GL_TRIANGLESGL_TRIANGLE_STRIPGL_TRIA
2、NGLE_FAN四边形面的绘制GL_QUADSGL_QUADS_STRIP多边形面的绘制(GL_POLYGON)多边形面的绘制规则所有多边形都必须是平面的。多边形的边缘决不能相交,而且多边形必须是凸的。解决:对于非凸多边形,可以把它分割成几个凸多边形(通常是三角形),再将它绘制出来。3. 实验代码与实验结果(1) 画矩形#include void Initial(void) glClearColor(1.0f,1.0f,1.0f,1.0f); glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0);void Display(vo
3、id) glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f,0.0f,0.0f); glRectf(50.0f,100.0f,150.0f,50.0f); glFlush();int main(int argc,char*argv) glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(400,300); glutInitWindowPosition(100,120); glutCreateWindow(矩形); glutDisplayFunc
4、(Display); Initial(); glutMainLoop(); return 0;(2) 画点glPointSize(3); glBegin (GL_POINTS); glColor3f (1.0f, 0.0f, 0.0f); glVertex2i (10,140); glVertex2i (100,75); glVertex2i (190,10); glEnd ();(3) 画直线 glBegin (GL_LINE_LOOP); glVertex2i (20,10); glVertex2i (60,50); glVertex2i (20,50); glVertex2i (60,1
5、0); glVertex2i (40,70);(4) 画等边三角形 glBegin (GL_TRIANGLES); glVertex2i (60,10); glVertex2f (40.0,44.64);实验二 直线绘制实验1. 实验目的和实验内容(1) 掌握数值微分算法编程绘制直线(2) 掌握中点画线算法编程绘制直线(3) 掌握Bresenham算法编程绘制直线2. 实验代码和实验结果math.h glPointSize(3); int dx,dy,epsl,k; float x,y,xIncre,yIncre; int x0=10; int y0=10; int x1=20; int y1
6、=80; dx=x1-x0; dy=y1-y0; x=x0; y=y0; if(abs(dx)abs(dy) epsl=abs(dx); else epsl=abs(dy); xIncre=(float)dx/(float)epsl; yIncre=(float)dy/(float)epsl; for(k=0;kx1) x=x1;x1=x0;x0=x; y=y1;y1=y0;y0=y;y=y0;dy=y1-y0; d=dx-2*dy; UpIncre=2*dx-2*dy; DownIncre=-2*dy; while(x=x1) glVertex2f (x,y); x+; if(d e=e-2
7、*dx;实验三 圆绘制实验(1) 实现八分法画圆程序(2) 实现 Bresenham 算法绘制圆(3) 实现中点Bresenham 算法绘制椭圆2. 实验代码实验结果void putpixel(int x,int y) x+=20; y+=20; glVertex2i (x,y);void CirclePoint(int x,int y) putpixel(x,y); putpixel(y,x); putpixel(-y,x); putpixel(-x,y); putpixel(-x,-y); putpixel(-y,-x); putpixel(y,-x); putpixel(x,-y); CirclePoint(5,2); gluOrtho2D(0.0,200.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1