回答編集履歴
1
見直しキャンペーン中
test
CHANGED
@@ -1,145 +1,74 @@
|
|
1
1
|
> 現在のディスプレイウインドウです。虹色にする事ができません。
|
2
|
-
|
3
2
|
> 下記の部分が間違っているのでしょうか。
|
4
|
-
|
5
|
-
|
6
3
|
|
7
4
|
`stroke(angle, 100, 100)`のように書くときは、`HSB`モードを使用します(`colorMode(HSB, 360, 100, 100)`等)
|
8
5
|
|
9
|
-
|
10
|
-
|
11
6
|
デフォルトは`RGB`モードですので、赤成分だけをいじっていることになります。
|
12
|
-
|
13
7
|
それでは虹色にはなりようがありませんね?
|
14
|
-
|
15
|
-
|
16
8
|
|
17
9
|
[colorMode / Processing.org](https://processing.org/reference/colorMode_.html)
|
18
10
|
|
19
|
-
|
20
|
-
|
21
11
|
---
|
22
|
-
|
23
|
-
|
24
12
|
|
25
13
|
> lineの長さを変化させ、波打っているように見せる
|
26
14
|
|
27
|
-
|
28
|
-
|
29
15
|
編集されたので取り下げたということだと思いますが、一応やってみました。
|
30
|
-
|
31
|
-
|
32
16
|
|
33
17
|
完全にランダムだと波打っているようには見えないため、[noise](https://processing.org/reference/noise_.html)(パーリンノイズ)でやるのがいいんでしょう(よくわかっていませんが^^;
|
34
18
|
|
35
|
-
|
36
|
-
|
37
19
|
単純にnoiseでやるとスムーズにつながらない部分が出るため、ググって出てきたこちらをそのまま使わわせていただきました。
|
38
|
-
|
39
20
|
[周期的ノイズについて(2020.06.12) • Koji's Site](http://koji.jpn.org/mytweetprocessing/tw20200612/)
|
40
|
-
|
41
|
-
|
42
21
|
|
43
22
|
しかし線がピクピクする(微妙に角度が変わる)のが気になります(精度の問題?? 線が十分長い(2000とか)と気にならないのですが^^;
|
44
23
|
|
45
|
-
|
46
|
-
|
47
24
|
```Processing
|
48
|
-
|
49
25
|
import java.awt.Rectangle;
|
50
|
-
|
51
|
-
|
52
26
|
|
53
27
|
Rectangle[] faces;
|
54
28
|
|
55
29
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
30
|
void setup() {
|
60
|
-
|
61
31
|
size(400, 400);
|
62
|
-
|
63
32
|
// 色相 彩度 明るさ
|
64
|
-
|
65
33
|
colorMode(HSB, 360, 100, 100);
|
66
|
-
|
67
34
|
noFill();
|
68
35
|
|
69
|
-
|
70
|
-
|
71
36
|
faces = new Rectangle[]{ new Rectangle(100, 100), };
|
72
|
-
|
73
37
|
}
|
74
38
|
|
75
|
-
|
76
|
-
|
77
39
|
void draw() {
|
78
|
-
|
79
40
|
background(0);
|
80
|
-
|
81
|
-
|
82
41
|
|
83
42
|
faces[0].setLocation(mouseX - 50, mouseY - 50);
|
84
43
|
|
85
|
-
|
86
|
-
|
87
44
|
for (Rectangle face : faces) {
|
88
|
-
|
89
45
|
niji(face);
|
90
|
-
|
91
46
|
}
|
92
|
-
|
93
47
|
}
|
94
48
|
|
95
|
-
|
96
|
-
|
97
49
|
void niji(Rectangle rect) {
|
98
|
-
|
99
50
|
pushMatrix();
|
100
|
-
|
101
51
|
translate(rect.x + rect.width/2, rect.y + rect.height/2);
|
102
52
|
|
103
|
-
|
104
|
-
|
105
53
|
for (int j = 1; j <= 50; j++) {
|
106
|
-
|
107
54
|
// colorModeで色相を0~360に設定したので、jを度に変える 360°以上回っているので剰余をとって360内に収める
|
108
|
-
|
109
55
|
stroke(degrees(j) % 360, 100, 100);
|
110
56
|
|
111
|
-
|
112
|
-
|
113
57
|
// 周期的ノイズ 1のところを大きくすると変動が早くなる 小さくすると遅くなる
|
114
|
-
|
115
58
|
float d = cnoise(degrees(j) + frameCount * 1, 360) * 30;
|
116
|
-
|
117
59
|
// 上のforを j <= 500 とかにするとわかりやすいが、単純にnoiseだと3時の位置がスムーズに繋がらない
|
118
|
-
|
119
60
|
//float d = noise((degrees(j) % 360) * 0.05, frameCount * 0.05) * 30;
|
120
61
|
|
121
|
-
|
122
|
-
|
123
62
|
float l = 150 + d;
|
124
|
-
|
125
63
|
line(cos(j) * 50, sin(j) * 50, cos(j) * l, sin(j) * l);
|
126
|
-
|
127
64
|
}
|
128
|
-
|
129
65
|
popMatrix();
|
130
|
-
|
131
66
|
}
|
132
67
|
|
133
|
-
|
134
|
-
|
135
68
|
// [周期的ノイズについて(2020.06.12) • Koji's Site](http://koji.jpn.org/mytweetprocessing/tw20200612/)
|
136
|
-
|
137
69
|
float cnoise(float t, float c) {
|
138
|
-
|
139
70
|
float p = t * TWO_PI / c;
|
140
|
-
|
141
71
|
return noise(cos(p) + 1, sin(p) + 2);
|
142
|
-
|
143
72
|
}
|
144
|
-
|
145
73
|
```
|
74
|
+
![アプリ動画](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-29/e4251680-f768-4ee8-bbc2-647e5835cb69.gif)
|