-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpendulum.cpp
More file actions
79 lines (75 loc) · 1.38 KB
/
pendulum.cpp
File metadata and controls
79 lines (75 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include<GL/glut.h>
#include<stdlib.h>
#define baseX 320
#define baseY 200
#define Rad 50
int g = 0;
void myInit() {
glClearColor(1.0,1.0,1.0,0.0);
glColor3f(0.0f,0.0f,0.0f);
glPointSize(3);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,640.0,0.0,480.0);
}
void drawCircle(int r, int X, int Y){
int x = 0, y = r;
int p = 1-r;
glBegin(GL_POINTS);
while(y>x){
x++;
if(p<0){
p += 1 + 2*x;
}
else{
y--;
p += 1 + 2*(x-y);
}
glVertex2d(X+x, Y+y);
glVertex2d(X+x, Y-y);
glVertex2d(X-x, Y+y);
glVertex2d(X-x, Y-y);
glVertex2d(X+y, Y+x);
glVertex2d(X+y, Y-x);
glVertex2d(X-y, Y+x);
glVertex2d(X-y, Y-x);
}
glEnd();
glFlush();
}
void myDisplay() {
glClear(GL_COLOR_BUFFER_BIT);
//glBegin(GL_LINE_STRIP);
// glVertex2d(baseX, 480);
// glVertex2d(baseX, baseY+Rad);
//glEnd();
drawCircle(Rad, baseX, baseY);
}
void disp(){
//for(int i=0;i<10000;i++){
// if(i%2==0){
// myDisplay();
// }
// else myDisplay1();
//}
int xMin = 260, xMax = 400, x = xMin, buff = 100000;
while(true){
glClear(GL_COLOR_BUFFER_BIT);
drawCircle(Rad, x, baseY);
_sleep(10);
x++;
//buff = 100000;
//while(buff--);
if(x>xMax)x=xMin;
}
glFlush();
}
int main(int argc,char* argv[]) {
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(640,480);
glutCreateWindow("Pendulum");
glutDisplayFunc(disp);
myInit();
glutMainLoop();
}