teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

ベジェが表示されない問題に対しての追記

2020/07/10 05:16

投稿

fana
fana

スコア12227

answer CHANGED
@@ -5,4 +5,39 @@
5
5
  → じゃあ,そもそも入力できてないよね.
6
6
  * 表示されている場合
7
7
  ウィンドウ座標(x,y)と,3次元空間の座標は違うわけですが,そこらへんは大丈夫ですか?
8
- 試しに,ウィンドウの左上隅(x,y共に5以下になるような場所が良さそうかな)をクリックしてみたらどうなりますか?
8
+ 試しに,ウィンドウの左上隅(x,y共に5以下になるような場所が良さそうかな)をクリックしてみたらどうなりますか?
9
+
10
+ ---
11
+
12
+ [追記]
13
+ 曲線が表示されないという件に関して,対応案を示します.
14
+ 変更があるのはmouse()とinit()のみなので,そこだけを示します.
15
+ ```
16
+ void mouse(int button, int state, int x, int y)
17
+ {
18
+ if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
19
+ {
20
+ float a = 30, b = 5, c = (float)x / a - b, d = (float)y / a - b;
21
+ if (i < 4) {
22
+
23
+ //※ここの右辺が{}で囲まれていたが,コンパイル通らないので{}を除去した
24
+ ctrlpoints[i][0] = c;
25
+ ctrlpoints[i][1] = -d;
26
+ ctrlpoints[i][2] = 0.0;
27
+ printf("ctrlpoints[%d]:%lf %lf %lf\n", i, ctrlpoints[i][0], ctrlpoints[i][1], ctrlpoints[i][2]);
28
+
29
+ //ここの2行を追加した
30
+ glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
31
+ glEnable(GL_MAP1_VERTEX_3);
32
+ }
33
+ printf("(%d, %d)で左ボタンが押されました\n", x, y);
34
+ i++;
35
+ }
36
+ glutPostRedisplay();
37
+ }
38
+
39
+ void init(void)
40
+ {//不要と思われるコードを除去した
41
+ glClearColor(0.0, 0.0, 0.0, 0.0);
42
+ }
43
+ ```