質問編集履歴

2

やり方について

2020/06/03 07:51

投稿

beginee
beginee

スコア1

test CHANGED
@@ -1 +1 @@
1
- OpenGLで三次元ピラミッド作成
1
+ OpenGLの使い方について
test CHANGED
@@ -1,211 +1,17 @@
1
- ### 前提・実現したいこと
1
+ OpenGlの使い方を知りたいです。
2
2
 
3
+ glColor3f(1.0, 1.0, 1.0);
3
4
 
5
+ glBegin(GL_POLYGON);
4
6
 
5
- プログラミングを独学中のものです
7
+ glVertex2f(-0.5, 0.5);
6
8
 
7
- 3Dモデル作成に興味があり勉強しているんですが
9
+ glVertex2f( 0.5, 0.5);
8
10
 
9
- OpenGLで三次元のピラミッドを作りたいです。(For loopを使用して)
11
+ glVertex2f( 0.5,-0.5);
10
12
 
11
- ただの、ピラミッドではなく箱が積み重なるのを意識して作れたいんですが
13
+ glVertex2f(-0.5,-0.5);
12
14
 
13
- 実際に作ったところ横長にしか作れずに、どうすれば綺麗な三次元のピラミッドを
15
+ glEnd();
14
16
 
15
- 作れるか教わりたいです。
16
-
17
- まだまだ、初心者なんですがよろくお願いします。
17
+ 上のコードを使って球体とかも作れるんでしょうか?
18
-
19
-
20
-
21
- ### 発生している問題・エラーメッセージ
22
-
23
-
24
-
25
- ピラミッド風なのは表示されるが
26
-
27
- 形が違う
28
-
29
- ```
30
-
31
-
32
-
33
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
34
-
35
- #include <iostream>
36
-
37
- #include <OpenGL/OpenGL.h>
38
-
39
- #include <GLUT/GLUT.h>
40
-
41
- #include <math.h>
42
-
43
- float rotation = 0.0;
44
-
45
-
46
-
47
-
48
-
49
- void reshape(int width, int height){
50
-
51
- glViewport(0, 0, width, height);
52
-
53
- glMatrixMode(GL_PROJECTION);
54
-
55
- glLoadIdentity();
56
-
57
- gluPerspective(45.0, (double)width/height, 0.1, 100.0);
58
-
59
- glMatrixMode(GL_MODELVIEW);
60
-
61
- glLoadIdentity();
62
-
63
- gluLookAt(0.0, 2.0, 13.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 );
64
-
65
- }
66
-
67
- void setup(){
68
-
69
- float lightPosition[4] = {5.25, 2.0, 0.25, 1.0};
70
-
71
- float ambient[4] = {0.3, 0.5, 0.0, 1.0};
72
-
73
- float diffuse[4] = {1.0, 1.0, 0.3, 1.0};
74
-
75
- float specular[4] = {1.0, 1.0, 1.0, 1.0};
76
-
77
- float shininess[1] = {20.0};
78
-
79
-
80
-
81
- glEnable(GL_DEPTH_TEST);
82
-
83
- glEnable(GL_LIGHTING);
84
-
85
- glEnable(GL_LIGHT0);
86
-
87
- glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);
88
-
89
- glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);
90
-
91
- glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
92
-
93
- glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
94
-
95
- glMaterialfv(GL_FRONT, GL_SHININESS, shininess);
96
-
97
- }
98
-
99
-
100
-
101
-
102
-
103
- void display(void){
104
-
105
- glEnable(GL_DEPTH_TEST);
106
-
107
- glClearColor(0.0, 0.0, 0.0, 1.0);
108
-
109
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
110
-
111
- int i = 1;
112
-
113
- int x;
114
-
115
-
116
-
117
- for(i=1;i<7;i++)
118
-
119
- {
120
-
121
- {
122
-
123
- for(x=0; x<i ; x++)
124
-
125
- {glPushMatrix();
126
-
127
- glTranslatef(1-x+sqrt(i)+(i)+1/6,0,1/6);
128
-
129
- glutSolidCube(1.0);
130
-
131
- glPopMatrix();
132
-
133
- }
134
-
135
- glTranslatef(-1, -1, 0);
136
-
137
- }
138
-
139
- glRotatef(rotation,0,1,0);
140
-
141
- }
142
-
143
- glPopMatrix();
144
-
145
- glPopMatrix();
146
-
147
- glutSwapBuffers();
148
-
149
- }
150
-
151
-
152
-
153
- void idle(){
154
-
155
- rotation++;
156
-
157
- glutPostRedisplay();
158
-
159
- }
160
-
161
- int main(int argc, char * argv[]) {
162
-
163
-
164
-
165
- glutInit(&argc, argv);
166
-
167
- glutInitWindowSize(500, 500);
168
-
169
- glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
170
-
171
- glutCreateWindow("for");
172
-
173
- glutDisplayFunc(display);
174
-
175
- glutReshapeFunc(reshape);
176
-
177
- //glutIdleFunc(idle);
178
-
179
- setup();
180
-
181
- glutMainLoop();
182
-
183
-
184
-
185
- return 0;
186
-
187
- }
188
-
189
-
190
-
191
- ```ここに言語名を入力
192
-
193
- C++
194
-
195
- ```
196
-
197
-
198
-
199
- ### 試したこと
200
-
201
-
202
-
203
- サイトとかでも探したりして、何度も試したんですが全然実行ができない状態です。
204
-
205
-
206
-
207
- ### 補足情報(FW/ツールのバージョンなど)
208
-
209
-
210
-
211
- ここにより詳細な情報を記載してください。

1

質問

2020/06/03 07:51

投稿

beginee
beginee

スコア1

test CHANGED
File without changes
test CHANGED
@@ -14,6 +14,8 @@
14
14
 
15
15
  作れるか教わりたいです。
16
16
 
17
+ まだまだ、初心者なんですがよろしくお願いします。
18
+
17
19
 
18
20
 
19
21
  ### 発生している問題・エラーメッセージ