/// 問題 I | プログラミング実習 |
☆ ☆ ☆ 問 題 I ☆ ☆ ☆
【1】画像を描画する座標をxとyで記憶している。また、画面上の方向は次のように示すこととする。各設問に答えよ。
@ 画像を座標(100,120)に描画する。式を完成せよ。
x =
y =
A 画像を東へ20ピクセルずつ移動させる。式を答えよ。
B 画像を北へ20ピクセルずつ移動させる。式を答えよ。
C 画像を東へ20ピクセル移動させた後、南へ20ピクセル移動させた。その結果、画像が移動した方向を答えよ。
D 画像を次の式で移動させる。画像が移動する方向を答えよ。
x = x - 10
y = y - 10
【2】図のようなウィンドウに32×32ピクセルの画像を描画する。描画する座標はpxとpyで記憶しており、移動量はdxとdyで記憶しているものとする。各設問に答えよ。
(1) 画像が西の枠に到達したとき、移動量dxの正負を変える命令を完成せよ。
If @ Then
dx = dx * A
End If
(2) 画像が北の枠に到達したとき、移動量dyの正負を変える命令を完成せよ。
If B Then
dy = C
End If
(3) 図をヒントに、画像が東の枠に到達したとき、移動量dxの正負を変える命令を完成せよ。
If D Then
E
End If
(4) 画像が南の枠に到達したとき、移動量dyの正負を変える命令を完成せよ。
If F Then
G
End If
【3】次の各プログラムは、実習I3と同じように、画像を四角形に並ぶように配置するものである。設問に答えよ。
(1)
space_x = Int((picField.Width - 5 * 32) / (5 + 1))
space_y = Int((picField.Height - 7 * 16) / (7 + 1))
For n = 0 To kosuu - 1
Gx(n) = (My.Resources.right1.Width + space_x) * (n Mod 5) + space_x
Gy(n) = (My.Resources.right1.Height + space_y) * Int(n / 5) + space_y
Next
Gr.Clear(Color.White)
For n = 0 To kosuu - 1
Gr.DrawImage(My.Resources.right1, Gx(n), Gy(n))
Next
picField.Refresh()
(2)
space_x = Int((picField.Width - 28 * 8) / 29)
space_y = Int((picField.Height - 12 * 12) / 13)
For n = 0 To kosuu - 1
Gx(n) = (My.Resources.right1.Width + space_x) * (n Mod ) + space_x
Gy(n) = (My.Resources.right1.Height + space_y) * Int(n / ) + space_y
Next
Gr.Clear(Color.White)
For n = 0 To kosuu - 1
Gr.DrawImage(My.Resources.right1, Gx(n), Gy(n))
Next
picField.Refresh()
/// 問題 I | Copyright©2015 Hiroshi Masuda |