回答編集履歴
9
説明を改善
answer
CHANGED
@@ -5,17 +5,17 @@
|
|
5
5
|
|
6
6
|
> int circleResolution = (int)map(mouseY+100,0,height,2, 10);
|
7
7
|
|
8
|
-
こ
|
8
|
+
この `circleResolution` は変数名からすると円を何分割するか(何角形にするか)を決めているのだと思います。
|
9
|
-
マウスの位置に応じて 2~10 角形を作るようにしているようです。
|
9
|
+
マウスのY座標の位置に応じて 2~10 角形を作るようにしているようです。
|
10
10
|
|
11
11
|
> また図形の法則性がわかりません、、
|
12
12
|
|
13
|
-
円を描くのに三角関数を用いて表現することができます。よくある例としては単位円の説明で出てきます。
|
13
|
+
円を描くのに三角関数を用いて表現することができます。よくある例としては[単位円](https://www.google.com/search?q=%E5%8D%98%E4%BD%8D%E5%86%86)の説明で出てきます。
|
14
14
|
・x が赤色の動き(左右の動き)… cos カーブ
|
15
15
|
・y が青色の動き(上下の動き)… sin カーブ
|
16
16
|
この 点P(x,y) の座標をプロットすると円を描くことができます。
|
17
17
|
|
18
|
-
細かくプロットすると円ですが、一定の角度毎にプロットすると多角形が描画できます。
|
18
|
+
そして、細かくプロットすると円ですが、一定の角度毎にプロットすると多角形が描画できます。
|
19
19
|
例えば、
|
20
20
|
・30度づつプロットすれば十二角形
|
21
21
|
・60度づつプロットすれば六角形
|
@@ -34,7 +34,7 @@
|
|
34
34
|

|
35
35
|
|
36
36
|
```processing
|
37
|
-
//
|
37
|
+
// 円の分割数ぶんループ(N角形を描画する)
|
38
38
|
for (int i=0; i<=circleResolution; i++){
|
39
39
|
float x = 0 + cos(angle*i) * radius; // cos(角度×i) × 半径 … 赤色の動き
|
40
40
|
float y = 0 + sin(angle*i) * radius; // sin(角度×i) × 半径 … 青色の動き
|
8
図を改善(sin/cosカーブが滑らかになるよう修正)
answer
CHANGED
@@ -25,13 +25,13 @@
|
|
25
25
|
以下は十二角形/六角形/三角形の描画例になります。
|
26
26
|
|
27
27
|
■ 十二角形の例(30度づつプロットした場合の例)
|
28
|
-

|
29
29
|
|
30
30
|
■ 六角形の例(60度づつプロットした場合の例)
|
31
|
-

|
32
32
|
|
33
33
|
■ 三角形の例(120度づつプロットした場合の例)
|
34
|
-

|
35
35
|
|
36
36
|
```processing
|
37
37
|
// N 角形の数ぶんループ
|
7
説明を改善
answer
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
・120度づつプロットすれば三角形
|
23
23
|
といった感じです。
|
24
24
|
|
25
|
-
以下は十二角形の例になります。
|
25
|
+
以下は十二角形/六角形/三角形の描画例になります。
|
26
26
|
|
27
27
|
■ 十二角形の例(30度づつプロットした場合の例)
|
28
28
|

|
6
説明を改善
answer
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
|
6
6
|
> int circleResolution = (int)map(mouseY+100,0,height,2, 10);
|
7
7
|
|
8
|
-
ここでは circleResolution を求めるに使用しています。circleResolution は N 角形の N に相当します。
|
8
|
+
ここでは circleResolution を求めるのに使用しています。circleResolution は N 角形の N に相当します。
|
9
9
|
マウスの位置に応じて 2~10 角形を作るようにしているようです。
|
10
10
|
|
11
11
|
> また図形の法則性がわかりません、、
|
12
12
|
|
13
|
-
円を描くのに三角関数を用いて表現することができます。
|
13
|
+
円を描くのに三角関数を用いて表現することができます。よくある例としては単位円の説明で出てきます。
|
14
14
|
・x が赤色の動き(左右の動き)… cos カーブ
|
15
15
|
・y が青色の動き(上下の動き)… sin カーブ
|
16
16
|
この 点P(x,y) の座標をプロットすると円を描くことができます。
|
5
六角形と三角形の図を追加
answer
CHANGED
@@ -24,9 +24,15 @@
|
|
24
24
|
|
25
25
|
以下は十二角形の例になります。
|
26
26
|
|
27
|
-
■ 十二角形の例
|
27
|
+
■ 十二角形の例(30度づつプロットした場合の例)
|
28
|
-

|
29
29
|
|
30
|
+
■ 六角形の例(60度づつプロットした場合の例)
|
31
|
+

|
32
|
+
|
33
|
+
■ 三角形の例(120度づつプロットした場合の例)
|
34
|
+

|
35
|
+
|
30
36
|
```processing
|
31
37
|
// N 角形の数ぶんループ
|
32
38
|
for (int i=0; i<=circleResolution; i++){
|
4
表記を「3角形/6角形/12角形」→「三角形/六角形/十二角形」に変更
answer
CHANGED
@@ -17,15 +17,15 @@
|
|
17
17
|
|
18
18
|
細かくプロットすると円ですが、一定の角度毎にプロットすると多角形が描画できます。
|
19
19
|
例えば、
|
20
|
-
・30度づつプロットすれば
|
20
|
+
・30度づつプロットすれば十二角形
|
21
|
-
・60度づつプロットすれば
|
21
|
+
・60度づつプロットすれば六角形
|
22
|
-
・120度づつプロットすれば
|
22
|
+
・120度づつプロットすれば三角形
|
23
23
|
といった感じです。
|
24
24
|
|
25
|
-
以下は
|
25
|
+
以下は十二角形の例になります。
|
26
26
|
|
27
|
-
■
|
27
|
+
■ 十二角形の例
|
28
|
-

|
29
29
|
|
30
30
|
```processing
|
31
31
|
// N 角形の数ぶんループ
|
3
図を修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
> (int)というのはどういった意味でしょうか。
|
2
2
|
|
3
3
|
`(int)` は型キャストと言い、型を変換するのに用います。
|
4
|
-
`map(a,b,c,d,e)` 関数は`a`を`b-c`の範囲から`d-e`の範囲変換する関数です。`float` 型を返す関数である為、`int` 型に変換するのに使用されています。
|
4
|
+
`map(a,b,c,d,e)` 関数は`a`を`b-c`の範囲から`d-e`の範囲に変換する関数です。`float` 型を返す関数である為、`int` 型に変換するのに使用されています。
|
5
5
|
|
6
6
|
> int circleResolution = (int)map(mouseY+100,0,height,2, 10);
|
7
7
|
|
@@ -25,7 +25,7 @@
|
|
25
25
|
以下は12角形の例になります。
|
26
26
|
|
27
27
|
■ 12角形の例
|
28
|
-

|
29
29
|
|
30
30
|
```processing
|
31
31
|
// N 角形の数ぶんループ
|
2
説明を改善
answer
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
> (int)というのはどういった意味でしょうか。
|
2
2
|
|
3
3
|
`(int)` は型キャストと言い、型を変換するのに用います。
|
4
|
-
`map()` 関数
|
4
|
+
`map(a,b,c,d,e)` 関数は`a`を`b-c`の範囲から`d-e`の範囲変換する関数です。`float` 型を返す関数である為、`int` 型に変換するのに使用されています。
|
5
5
|
|
6
6
|
> int circleResolution = (int)map(mouseY+100,0,height,2, 10);
|
7
7
|
|
8
|
-
ここでは circleResolution
|
8
|
+
ここでは circleResolution を求めるに使用しています。circleResolution は N 角形の N に相当します。
|
9
|
-
マウスの位置に応じて 2~10 角形を作るように
|
9
|
+
マウスの位置に応じて 2~10 角形を作るようにしているようです。
|
10
10
|
|
11
11
|
> また図形の法則性がわかりません、、
|
12
12
|
|
13
13
|
円を描くのに三角関数を用いて表現することができます。
|
14
|
-
・xが赤色の動き(左右の動き)… cos カーブ
|
14
|
+
・x が赤色の動き(左右の動き)… cos カーブ
|
15
|
-
・yが青色の動き(上下の動き)… sin カーブ
|
15
|
+
・y が青色の動き(上下の動き)… sin カーブ
|
16
16
|
この 点P(x,y) の座標をプロットすると円を描くことができます。
|
17
17
|
|
18
18
|
細かくプロットすると円ですが、一定の角度毎にプロットすると多角形が描画できます。
|
1
説明を改善
answer
CHANGED
@@ -28,10 +28,11 @@
|
|
28
28
|

|
29
29
|
|
30
30
|
```processing
|
31
|
+
// N 角形の数ぶんループ
|
31
32
|
for (int i=0; i<=circleResolution; i++){
|
32
33
|
float x = 0 + cos(angle*i) * radius; // cos(角度×i) × 半径 … 赤色の動き
|
33
|
-
float y = 0 + sin(angle*i) * radius; // sin(角度×i) × 半径 … 青色の
|
34
|
+
float y = 0 + sin(angle*i) * radius; // sin(角度×i) × 半径 … 青色の動き
|
34
|
-
vertex(x, y);
|
35
|
+
vertex(x, y); // 頂点をプロット
|
35
36
|
}
|
36
37
|
```
|
37
38
|
|