回答編集履歴
1
見直しキャンペーン中
test
CHANGED
@@ -1,97 +1,51 @@
|
|
1
1
|
公式ドキュメントに、正多角形のサンプルがあります(円に内接する正多角形として描いているようですね)
|
2
|
-
|
3
2
|
[Regular Polygon / Examples / Processing.org](https://processing.org/examples/regularpolygon.html)
|
4
3
|
|
5
|
-
|
6
|
-
|
7
4
|
`translate`や`rotate`で描きたい位置に動かしますが、今どこにどういう向きになっているか把握しなければなりません。
|
8
|
-
|
9
5
|
紙に絵を描いて回してみたりすると、わかりやすいかもしれません^^
|
10
6
|
|
11
|
-
|
12
|
-
|
13
7
|
そのままってのもあれなので、サイズを半分にしました^^;
|
14
|
-
|
15
8
|
```Processing
|
16
|
-
|
17
9
|
void setup() {
|
18
|
-
|
19
10
|
size(500, 500);
|
20
|
-
|
21
11
|
}
|
22
12
|
|
23
|
-
|
24
|
-
|
25
13
|
void draw() {
|
26
|
-
|
27
14
|
background(255);
|
28
|
-
|
29
15
|
noFill();
|
30
16
|
|
31
|
-
|
32
|
-
|
33
17
|
translate(width / 2, height / 2); // まずはとにかく中央を0,0に
|
34
|
-
|
35
18
|
rotate(frameCount / 200f); // 全体を回す
|
36
|
-
|
37
|
-
|
38
19
|
|
39
20
|
circle(0, 0, 275); // 親の円
|
40
21
|
|
41
|
-
|
42
|
-
|
43
22
|
for (int i = 0; i < 6; i++) { // とりあえず6個
|
44
|
-
|
45
23
|
//circle(150, 0, 50 * 2); // 外接円確認用 直径100
|
46
|
-
|
47
24
|
polygon(150, 0, 50, 3); // 中央から見て右に三角(三角が▷向きだから)
|
48
25
|
|
49
|
-
|
50
|
-
|
51
26
|
rotate(TWO_PI / 6); // 1/6周回す
|
52
|
-
|
53
27
|
}
|
54
|
-
|
55
28
|
}
|
56
29
|
|
57
|
-
|
58
|
-
|
59
30
|
void polygon(float x, float y, float radius, int npoints) {
|
60
|
-
|
61
31
|
float angle = TWO_PI / npoints;
|
62
|
-
|
63
32
|
beginShape();
|
64
|
-
|
65
33
|
for (float a = 0; a < TWO_PI; a += angle) {
|
66
|
-
|
67
34
|
float sx = x + cos(a) * radius;
|
68
|
-
|
69
35
|
float sy = y + sin(a) * radius;
|
70
|
-
|
71
36
|
vertex(sx, sy);
|
72
|
-
|
73
37
|
}
|
74
|
-
|
75
38
|
endShape(CLOSE);
|
76
|
-
|
77
39
|
}
|
78
|
-
|
79
40
|
```
|
80
|
-
|
81
41
|
ほかにも描画したいものがある場合は、`pushMatrix()`・`popMatrix()`を適切な場所に入れてください。
|
82
42
|
|
83
|
-
|
43
|
+
![アプリ動画](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-29/e8641ab6-85ff-482e-8722-080ec1107dc8.gif)
|
84
44
|
|
85
45
|
---
|
86
46
|
|
87
|
-
|
88
|
-
|
89
47
|
半径から辺の長さを知りたい場合。
|
90
|
-
|
91
48
|
[円に内接する正多角形 - 高精度計算サイト](https://keisan.casio.jp/exec/system/1166416582)
|
92
49
|
|
93
|
-
|
94
|
-
|
95
50
|
辺の長さから半径を決めたい場合。
|
96
|
-
|
97
51
|
[正多角形の外接円 - 高精度計算サイト](https://keisan.casio.jp/exec/system/1258355051)
|