回答編集履歴
3
追記
answer
CHANGED
@@ -21,4 +21,57 @@
|
|
21
21
|
y=3,i=2のとき-1077
|
22
22
|
y=3,i=1のとき-1617
|
23
23
|
...
|
24
|
-
と、多分どんどん大きな負の値になるかと思いますが、それは意図したものですか? (画像の高さに負の値を与えるとなにが表示されるんだろう? 画像がひっくり返るんだっけ?)
|
24
|
+
と、多分どんどん大きな負の値になるかと思いますが、それは意図したものですか? (画像の高さに負の値を与えるとなにが表示されるんだろう? 画像がひっくり返るんだっけ?)
|
25
|
+
|
26
|
+
---
|
27
|
+
TN8001さんの回答みてて、そう言えばgetで切り出しってできなかったっけ? ということで試してみたもの。ご参考まで。
|
28
|
+
```Processing
|
29
|
+
PImage single;
|
30
|
+
PImage quad;
|
31
|
+
int w, h;
|
32
|
+
float x = 0, vx = 0.05; //値は適宜いじってみてください
|
33
|
+
float y = 0, vy = -0.5;
|
34
|
+
|
35
|
+
void setup() {
|
36
|
+
size(640, 480);
|
37
|
+
//文字列を切っているのは単にソースコードの横幅を抑えるため
|
38
|
+
single = loadImage("https://teratail-v2.storage.googleapis.com/uploads/"+
|
39
|
+
"avatars/u10/107752/752e11b31475761a_thumbnail.png");
|
40
|
+
w=single.width; //よく使うので見やすくするため
|
41
|
+
h=single.height;
|
42
|
+
image(single, 0, 0);//4枚並べて表示
|
43
|
+
image(single, 0, h);
|
44
|
+
image(single, w, 0);
|
45
|
+
image(single, w, h);
|
46
|
+
//画面外にはみ出す場合はgetで画素が取れないので
|
47
|
+
//PGraphicsで仮想画面とか考える必要あり(今回は大丈夫)
|
48
|
+
quad=get(0, 0, w*2, h*2);//並べた画像を取り込む
|
49
|
+
background(0); //小細工の証拠隠滅
|
50
|
+
noFill();
|
51
|
+
stroke(0, 255, 0);
|
52
|
+
}
|
53
|
+
|
54
|
+
void draw() {
|
55
|
+
int x0=50;
|
56
|
+
int y0=height/2-h;//上下真ん中に表示したい
|
57
|
+
int x1=350;
|
58
|
+
int y1=height/2-h/2;
|
59
|
+
|
60
|
+
background(0);
|
61
|
+
|
62
|
+
//この2行は切り出し位置を表示しているだけ
|
63
|
+
image(quad, x0, y0);
|
64
|
+
rect(x+x0, y+y0, w, h);
|
65
|
+
|
66
|
+
//getで切り出した部分画像を表示
|
67
|
+
image(quad.get((int)x, (int)y, w, h), x1, y1);
|
68
|
+
|
69
|
+
//切り出し位置更新
|
70
|
+
x=x+vx;
|
71
|
+
if (x<0)x=w;
|
72
|
+
if (x>w)x=0;
|
73
|
+
y=y+vy;
|
74
|
+
if (y<0)y=h;
|
75
|
+
if (y>w)y=0;
|
76
|
+
}
|
77
|
+
```
|
2
訂正
answer
CHANGED
@@ -16,9 +16,9 @@
|
|
16
16
|
|
17
17
|
```
|
18
18
|
image関数の第5パラメータ、画像の高さですが、例えばいわゆるFullHDのディスプレイだったとすると
|
19
|
-
y=
|
19
|
+
y=3,i=0のとき3
|
20
|
-
y=
|
20
|
+
y=3,i=1のとき-537
|
21
|
-
y=
|
21
|
+
y=3,i=2のとき-1077
|
22
|
-
y=
|
22
|
+
y=3,i=1のとき-1617
|
23
23
|
...
|
24
24
|
と、多分どんどん大きな負の値になるかと思いますが、それは意図したものですか? (画像の高さに負の値を与えるとなにが表示されるんだろう? 画像がひっくり返るんだっけ?)
|
1
マークダウンの記号処理
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
質問の編集画面に入り、コード部分を選択して、<code>を押してください( [ヘルプ](https://teratail.com/help/question-tips#questionTips3-5-1)を参照。スマホの場合は...知りません)。そうすると、コード部分が区切られてインデントも表示され、非常に見やすくなります(というかそうでないのが見にくい)
|
2
2
|
|
3
3
|
それと、
|
4
4
|
> 範囲外に余計なものがでてきてしまう。
|
@@ -9,9 +9,11 @@
|
|
9
9
|
|
10
10
|
ちょっと質問の範囲からは外れるかも知れませんが
|
11
11
|
```Processing
|
12
|
+
//冒頭の操作(<code>)でこういう表示になります
|
12
13
|
for (int i=0; i<30; i++) {
|
13
14
|
image(img2, width*3/4, height*2/3, width/3, y-height/2*i);
|
14
15
|
}
|
16
|
+
|
15
17
|
```
|
16
18
|
image関数の第5パラメータ、画像の高さですが、例えばいわゆるFullHDのディスプレイだったとすると
|
17
19
|
y=0,i=0のとき0
|