回答編集履歴

1

改善

2020/01/02 13:26

投稿

thkana
thkana

スコア7639

test CHANGED
@@ -114,10 +114,6 @@
114
114
 
115
115
 
116
116
 
117
- fill(#959592);
118
-
119
- rect(0, 1030, 2000, 50);
120
-
121
117
  break EXIT;
122
118
 
123
119
  }
@@ -126,6 +122,10 @@
126
122
 
127
123
  }
128
124
 
125
+ fill(#959592);
126
+
127
+ rect(0, 1030, 2000, 50);
128
+
129
129
  }
130
130
 
131
131
  ```
@@ -133,3 +133,53 @@
133
133
  おおよそ梢のあたりでランダムに生成した点がいずれかの梢の末端から距離20以内だったら描画する、としてみた。
134
134
 
135
135
  どうでしょうね。![サンプル](31759eecd4189dd7bac1d0ca8d4db7e0.jpeg)
136
+
137
+
138
+
139
+ ---
140
+
141
+ 改善案
142
+
143
+ 乱数で「ハズレだったらもう一度」方式は、現実的には大丈夫だけどリクツの上では「永遠に欲しい値が得られない」という可能性があるので、あまり気持ちよくない。
144
+
145
+ 「梢の一つを乱数で選んで、そこから半径20の範囲のどこかに円を描く」に変えてみる。実用上ほぼ変わらないけれど。
146
+
147
+ それと全く質問に関係ない変更をひとつ。
148
+
149
+ ```Processing
150
+
151
+ void draw() {
152
+
153
+ int n=(int)random(0, bow.size());
154
+
155
+ float r=random(0, 20);
156
+
157
+ float th=random(0, PI*2);
158
+
159
+ x=bow.get(n).x+r*cos(th);
160
+
161
+ y=bow.get(n).y+r*sin(th);
162
+
163
+
164
+
165
+ noStroke();
166
+
167
+ colorMode(HSB,255,255,255,100);
168
+
169
+ fill(random(255), 255, 255, 50);//HSBでこうした方が色が華やかになるかな
170
+
171
+ ellipse(x, y, 10, 10);
172
+
173
+ colorMode(ARGB);
174
+
175
+
176
+
177
+ fill(#959592);
178
+
179
+ rect(0, 1030, 2000, 50);
180
+
181
+ }
182
+
183
+ ```
184
+
185
+ ![サンプル2](2190bc069b1605356055f3baf275737a.jpeg)