質問編集履歴

1

入退会を繰り返し何度も同じ投稿をしているのではという貴重な指摘についてなのですが、ログの通り解決していないために長引いているだけの初質問です

2020/07/10 04:55

投稿

cawawa
cawawa

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
+ 2020/07/10 追記 修正したコードを反映しました
4
+
3
5
 
4
6
 
5
7
  OpenGLを使って、クリックで四点を入力しベジェ曲線を描画するプログラムを作ろうとしています。
@@ -12,7 +14,7 @@
12
14
 
13
15
 
14
16
 
15
- クリックした座標を配列に格納することはできたのですが画面への反映がされません。
17
+ クリックした座標を配列に格納することはできたのですが曲線に関して画面への反映がされません。
16
18
 
17
19
  どこを修正したらよいか教えていただけると幸いです。
18
20
 
@@ -52,7 +54,7 @@
52
54
 
53
55
 
54
56
 
55
- void mouse(int button, int state, int x, int y)
57
+ void mouse(int button, int state, int x, int y)
56
58
 
57
59
  {
58
60
 
@@ -60,11 +62,13 @@
60
62
 
61
63
  {
62
64
 
65
+ float a = 30, b = 5, c = (float)x / a - b, d = (float)y / a - b;
66
+
63
67
  if (i < 4) {
64
68
 
65
- ctrlpoints[i][0] = { (float)x };
69
+ ctrlpoints[i][0] = { c };
66
-
70
+
67
- ctrlpoints[i][1] = { (float)y };
71
+ ctrlpoints[i][1] = { -d };
68
72
 
69
73
  ctrlpoints[i][2] = { 0.0 };
70
74
 
@@ -124,7 +128,7 @@
124
128
 
125
129
 
126
130
 
127
- glFlush();
131
+ glFinish();
128
132
 
129
133
  }
130
134
 
@@ -192,9 +196,13 @@
192
196
 
193
197
  glClearColor(0.0, 0.0, 0.0, 0.0);
194
198
 
199
+ if (ctrlpoints[3][0] != NULL) {
200
+
195
- glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
201
+ glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
196
-
202
+
197
- glEnable(GL_MAP1_VERTEX_3);
203
+ glEnable(GL_MAP1_VERTEX_3);
204
+
205
+ }
198
206
 
199
207
  }
200
208
 
@@ -242,7 +250,7 @@
242
250
 
243
251
  glutMouseFunc(mouse); //コールバック関数の登録
244
252
 
245
-
253
+
246
254
 
247
255
  /* 無限ループ */
248
256