#include<windows.h>
#include<math.h>
#include <gl/Glut.h>
#include <iostream>
using namespace std;
void myDisplay(void);
void myInit(void);
void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top);
void drawSpiral(GLdouble A);
const GLint screenWidth = 640;
const GLint screenHeight = 640;
const GLdouble PI = 3.1415926;
static GLint size = 300;
int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(screenWidth,screenHeight);
glutInitWindowPosition(100,100);
glutCreateWindow("Archimedes spiral");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
return 0;
}
void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top){
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(left,right,botton,top);
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
setWindow(0.0,(GLdouble)screenWidth,0.0,(GLdouble)screenHeight);
drawSpiral(1.0);
}
void drawSpiral(GLdouble A){
//f(theta)=A*theta
glBegin(GL_LINE_STRIP);
for (GLdouble i = 0.0; i< 100*PI ; i += 0.01 )
{
//半径 r
GLdouble radius = A * i ;
glVertex2d((GLdouble)310+radius*cos(i),(GLdouble) 310+radius*sin(i));
}
glEnd();
glFlush();
}
void myInit(void){
glClearColor(1.0,1.0,1.0,0.0);
glColor3f(0.0f, 0.0f, 0.0f);
glLineWidth(2.0);
glPointSize(1.0);
#include<math.h>
#include <gl/Glut.h>
#include <iostream>
using namespace std;
void myDisplay(void);
void myInit(void);
void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top);
void drawSpiral(GLdouble A);
const GLint screenWidth = 640;
const GLint screenHeight = 640;
const GLdouble PI = 3.1415926;
static GLint size = 300;
int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(screenWidth,screenHeight);
glutInitWindowPosition(100,100);
glutCreateWindow("Archimedes spiral");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();
return 0;
}
void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top){
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(left,right,botton,top);
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
setWindow(0.0,(GLdouble)screenWidth,0.0,(GLdouble)screenHeight);
drawSpiral(1.0);
}
void drawSpiral(GLdouble A){
//f(theta)=A*theta
glBegin(GL_LINE_STRIP);
for (GLdouble i = 0.0; i< 100*PI ; i += 0.01 )
{
//半径 r
GLdouble radius = A * i ;
glVertex2d((GLdouble)310+radius*cos(i),(GLdouble) 310+radius*sin(i));
}
glEnd();
glFlush();
}
void myInit(void){
glClearColor(1.0,1.0,1.0,0.0);
glColor3f(0.0f, 0.0f, 0.0f);
glLineWidth(2.0);
glPointSize(1.0);
}