回答編集履歴
1
改善
answer
CHANGED
@@ -56,13 +56,38 @@
|
|
56
56
|
fill(random(255), random(255), random(255), 50);
|
57
57
|
ellipse(x, y, 10, 10);
|
58
58
|
|
59
|
-
fill(#959592);
|
60
|
-
rect(0, 1030, 2000, 50);
|
61
59
|
break EXIT;
|
62
60
|
}
|
63
61
|
}
|
64
62
|
}
|
63
|
+
fill(#959592);
|
64
|
+
rect(0, 1030, 2000, 50);
|
65
65
|
}
|
66
66
|
```
|
67
67
|
おおよそ梢のあたりでランダムに生成した点がいずれかの梢の末端から距離20以内だったら描画する、としてみた。
|
68
|
-
どうでしょうね。
|
68
|
+
どうでしょうね。
|
69
|
+
|
70
|
+
---
|
71
|
+
改善案
|
72
|
+
乱数で「ハズレだったらもう一度」方式は、現実的には大丈夫だけどリクツの上では「永遠に欲しい値が得られない」という可能性があるので、あまり気持ちよくない。
|
73
|
+
「梢の一つを乱数で選んで、そこから半径20の範囲のどこかに円を描く」に変えてみる。実用上ほぼ変わらないけれど。
|
74
|
+
それと全く質問に関係ない変更をひとつ。
|
75
|
+
```Processing
|
76
|
+
void draw() {
|
77
|
+
int n=(int)random(0, bow.size());
|
78
|
+
float r=random(0, 20);
|
79
|
+
float th=random(0, PI*2);
|
80
|
+
x=bow.get(n).x+r*cos(th);
|
81
|
+
y=bow.get(n).y+r*sin(th);
|
82
|
+
|
83
|
+
noStroke();
|
84
|
+
colorMode(HSB,255,255,255,100);
|
85
|
+
fill(random(255), 255, 255, 50);//HSBでこうした方が色が華やかになるかな
|
86
|
+
ellipse(x, y, 10, 10);
|
87
|
+
colorMode(ARGB);
|
88
|
+
|
89
|
+
fill(#959592);
|
90
|
+
rect(0, 1030, 2000, 50);
|
91
|
+
}
|
92
|
+
```
|
93
|
+

|