回答編集履歴
2
コメント追記
test
CHANGED
@@ -214,13 +214,13 @@
|
|
214
214
|
|
215
215
|
PImage hand1;
|
216
216
|
|
217
|
-
final int refX=50;
|
217
|
+
final int refX=50; //針画像で回転の中心座標x
|
218
|
-
|
218
|
+
|
219
|
-
final int refY=180;
|
219
|
+
final int refY=180; //針画像で回転の中心座標y
|
220
|
-
|
220
|
+
|
221
|
-
final int centerX=400;
|
221
|
+
final int centerX=400; //回転の中心x
|
222
|
-
|
222
|
+
|
223
|
-
final int centerY=240;
|
223
|
+
final int centerY=240; //回転の中心y
|
224
224
|
|
225
225
|
float angle=0;
|
226
226
|
|
1
追記
test
CHANGED
@@ -155,3 +155,103 @@
|
|
155
155
|
}
|
156
156
|
|
157
157
|
```
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
---
|
162
|
+
|
163
|
+
追記 単独の針の画像で描く
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
なんだか難しいと言われてしまったのでソコだけのサンプル。
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
原理的には同じことで長針短針秒針3回描けばいいので針一本分だけ描いてみる。
|
172
|
+
|
173
|
+
```Processing
|
174
|
+
|
175
|
+
//本題とは関係ない参考:針の画像を描く
|
176
|
+
|
177
|
+
//背景を透過にするためmaskを使ってpngでsaveする
|
178
|
+
|
179
|
+
PImage img1,msk;
|
180
|
+
|
181
|
+
size(100,200);
|
182
|
+
|
183
|
+
noStroke();
|
184
|
+
|
185
|
+
fill(0);
|
186
|
+
|
187
|
+
background(255);
|
188
|
+
|
189
|
+
triangle(50,20,45,180,55,180);
|
190
|
+
|
191
|
+
circle(50,180,20);
|
192
|
+
|
193
|
+
img1=get();
|
194
|
+
|
195
|
+
msk=img1.get();
|
196
|
+
|
197
|
+
msk.filter(INVERT);
|
198
|
+
|
199
|
+
img1.mask(msk);
|
200
|
+
|
201
|
+
img1.save("hand1.png");
|
202
|
+
|
203
|
+
```
|
204
|
+
|
205
|
+
これで次の画像ファイルが生成される。
|
206
|
+
|
207
|
+
![針の画像](fdf1674fe63b0bec82085f26b192c116.png)
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
このファイルを読み込んで、ぐるぐる回せばよい
|
212
|
+
|
213
|
+
```Processing
|
214
|
+
|
215
|
+
PImage hand1;
|
216
|
+
|
217
|
+
final int refX=50;
|
218
|
+
|
219
|
+
final int refY=180;
|
220
|
+
|
221
|
+
final int centerX=400;
|
222
|
+
|
223
|
+
final int centerY=240;
|
224
|
+
|
225
|
+
float angle=0;
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
void setup(){
|
230
|
+
|
231
|
+
size(640,480);
|
232
|
+
|
233
|
+
hand1=loadImage("https://teratail-v2.storage.googleapis.com/"+
|
234
|
+
|
235
|
+
"uploads/contributed_images/fdf1674fe63b0bec82085f26b192c116.png");
|
236
|
+
|
237
|
+
//URL文字列が長くなって見にくいのが嫌で分割している。
|
238
|
+
|
239
|
+
}
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
void draw(){
|
244
|
+
|
245
|
+
background(0xc0);
|
246
|
+
|
247
|
+
translate(centerX,centerY); //centerX,centerYを新たな0,0とする
|
248
|
+
|
249
|
+
rotate(angle); //0,0を中心に座標系を回す
|
250
|
+
|
251
|
+
image(hand1,-refX,-refY); //refX,refYが0,0に来るように描画
|
252
|
+
|
253
|
+
angle+=0.01;
|
254
|
+
|
255
|
+
}
|
256
|
+
|
257
|
+
```
|