質問編集履歴

1

文章の訂正 ソースコードの追加

2020/05/28 11:29

投稿

ssssssa
ssssssa

スコア4

test CHANGED
File without changes
test CHANGED
@@ -4,4 +4,134 @@
4
4
 
5
5
  ソースコードが分からないです。
6
6
 
7
- 回転させるプログラムを何でもいいので見せしいす。参考にしたいです。
7
+ のプログラムだと真っ暗になってしす。
8
+
9
+ どこを変えたら表示されるようになりますか。
10
+
11
+
12
+
13
+ #include <stdlib.h>
14
+
15
+ #include "GL/glut.h"
16
+
17
+ #include <GL/gl.h>
18
+
19
+ #include <GL/glu.h>
20
+
21
+ #include <math.h>
22
+
23
+ #define KEY_ESC 27
24
+
25
+
26
+
27
+ float theta =0.0; /*物体の回転角度*/
28
+
29
+
30
+
31
+ void display(void)
32
+
33
+ {
34
+
35
+ glClear(GL_COLOR_BUFFER_BIT);
36
+
37
+
38
+
39
+ glPushMatrix();
40
+
41
+ glTranslatef(0.0,1.0,30.0);
42
+
43
+ glRotatef(3.0*theta,0.2,-1.0,0.0);
44
+
45
+ glRotatef(-90.0,1.0,0.2,0.0);
46
+
47
+ glColor3f(1.0,1.0,0.0);
48
+
49
+ glutWireSphere(1.0,15,15); /*球*/
50
+
51
+ glPopMatrix();
52
+
53
+
54
+
55
+ glutSwapBuffers();/*バッファをスワップする*/
56
+
57
+ }
58
+
59
+
60
+
61
+ void idle(void)/*イベントがなければidleがつねに実行される*/
62
+
63
+ {
64
+
65
+ theta=fmod(theta+0.1,360.0);/*回転角を0°~360°まで0.5°づつ増加させる)*/
66
+
67
+ glutPostRedisplay();/*ディスプレイコールバックバック関数(display)を実行*/
68
+
69
+ }
70
+
71
+
72
+
73
+ void myKbd(unsigned char key,int x,int y)
74
+
75
+ {
76
+
77
+ if(key == KEY_ESC) exit(0);
78
+
79
+ }
80
+
81
+
82
+
83
+ void myInit(char *progname)
84
+
85
+ {
86
+
87
+ int width=500,height=500;
88
+
89
+ float aspect =(float)width/(float)height;
90
+
91
+
92
+
93
+ glutInitWindowPosition(0,0);
94
+
95
+ glutInitWindowSize(width,height);
96
+
97
+ glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
98
+
99
+ /*ダブルバッファの宣言*/
100
+
101
+ glutCreateWindow(progname);
102
+
103
+ glClearColor(0.0,0.0,0.0,1.0);
104
+
105
+ glutKeyboardFunc(myKbd);
106
+
107
+ glMatrixMode(GL_PROJECTION);
108
+
109
+ glLoadIdentity();
110
+
111
+ gluPerspective(45.0,aspect,1.0,10.0);
112
+
113
+ glMatrixMode(GL_MODELVIEW);
114
+
115
+ }
116
+
117
+
118
+
119
+ int main (int argc, char** argv)
120
+
121
+ {
122
+
123
+ glutInit(&argc,argv);
124
+
125
+ myInit(argv[0]);
126
+
127
+ glutDisplayFunc(display);
128
+
129
+ glutIdleFunc(idle);
130
+
131
+ /*イベントが無い場合にはidleを繰り返し実行する*/
132
+
133
+ glutMainLoop();
134
+
135
+ return(0);
136
+
137
+ }