#include<GL/glut.h>#include <math.h>#define PI 3.14void drawMyLines(){float t;float x,y,z;float a=2,b=3,c=18;glColor3f(1.0,0.5,0.5);glBegin(GL_LINE_STRIP);for(t=0.0;t<=2*PI;t+=0.0002){x=a*t*cos(c*t)+b;y=a*t*sin(c*t)+b;z=c*t;glVertex3f(x,y,z);}glEnd();glColor3f(1.0,1.0,1.0);glBegin(GL_LINES); //建立坐标轴glVertex3f(0,0,0);glVertex3f(12,0,0);glEnd();glBegin(GL_LINES); //建立坐标轴 glVertex3f(0,0,0);glVertex3f(0,0,12);glEnd();glBegin(GL_LINES); //建立坐标轴glVertex3f(0,0,0);glVertex3f(0,12,0);glEnd();}void display(){glClear(GL_COLOR_BUFFER_BIT);drawMyLines(); //调用drawMyLines函数glFlush();}void init(){glClearColor(0.0,0.0,0.0,0.0);glColor3f(1.0,1.0,1.0);gluLookAt(1,1,1, //更改视角3,3,3,-1,-1,1);glMatrixMode(GL_PROJECTION); //设置投影模式glLoadIdentity(); //设置单位矩形glOrtho(-12.0,12.0,-12.0,12.0,-12,12);}int main(int argc, char* argv[]){ glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(500, 500);glutInitWindowPosition(0, 0);glutCreateWindow("Simple");glutDisplayFunc(display); init();glutMainLoop(); //使程序一直处在监听状态中 return 0;}
分别利用点、线图元生成锥形螺旋曲线和环形螺旋曲线,要求可以设置点的大小、线可以设置线形和宽度。锥形螺旋曲线的参数方程为: