#include<GL/glut.h>
#include <math.h>
#define PI 3.14
void 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;
}
环形螺旋曲线的参数方程为:
其中,t为参数且。a,b和c是常数,比如可取a=2.0,b=3.0,c=18.0。