回答編集履歴

1

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

2020/07/10 05:16

投稿

fana
fana

スコア11658

test CHANGED
@@ -13,3 +13,73 @@
13
13
  ウィンドウ座標(x,y)と,3次元空間の座標は違うわけですが,そこらへんは大丈夫ですか?
14
14
 
15
15
  試しに,ウィンドウの左上隅(x,y共に5以下になるような場所が良さそうかな)をクリックしてみたらどうなりますか?
16
+
17
+
18
+
19
+ ---
20
+
21
+
22
+
23
+ [追記]
24
+
25
+ 曲線が表示されないという件に関して,対応案を示します.
26
+
27
+ 変更があるのはmouse()とinit()のみなので,そこだけを示します.
28
+
29
+ ```
30
+
31
+ void mouse(int button, int state, int x, int y)
32
+
33
+ {
34
+
35
+ if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
36
+
37
+ {
38
+
39
+ float a = 30, b = 5, c = (float)x / a - b, d = (float)y / a - b;
40
+
41
+ if (i < 4) {
42
+
43
+
44
+
45
+ //※ここの右辺が{}で囲まれていたが,コンパイル通らないので{}を除去した
46
+
47
+ ctrlpoints[i][0] = c;
48
+
49
+ ctrlpoints[i][1] = -d;
50
+
51
+ ctrlpoints[i][2] = 0.0;
52
+
53
+ printf("ctrlpoints[%d]:%lf %lf %lf\n", i, ctrlpoints[i][0], ctrlpoints[i][1], ctrlpoints[i][2]);
54
+
55
+
56
+
57
+ //ここの2行を追加した
58
+
59
+ glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
60
+
61
+ glEnable(GL_MAP1_VERTEX_3);
62
+
63
+ }
64
+
65
+ printf("(%d, %d)で左ボタンが押されました\n", x, y);
66
+
67
+ i++;
68
+
69
+ }
70
+
71
+ glutPostRedisplay();
72
+
73
+ }
74
+
75
+
76
+
77
+ void init(void)
78
+
79
+ {//不要と思われるコードを除去した
80
+
81
+ glClearColor(0.0, 0.0, 0.0, 0.0);
82
+
83
+ }
84
+
85
+ ```