hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。 |
ドラッグで移動するカメラを考える際、直交座標ではなく極座標を用いた方が作りやすくなります。 極座標についてはこちらのページをご覧ください(未作成)。
カメラの座標(r,θ,φ)のうち、角度θおよび角度φをドラッグした距離に応じて変化させます。
マウスカーソルの座標はmousex,mouseyで調べても構いませんが、ginfo_mx,ginfo_my(マウスカーソルの画面上の位 置)を使えばカーソルが画面から出ても使えます。
さてd3moduleでは直交座標系を使うので、極座標を直交座標へ変換する必要があります。
最も簡単なものは変換の公式
を利用する方法です。例えばカメラを(r, t, p)に移動させる場合は
1 |
|
となります。
その他にも、d3moduleに用意されているd3vrotateを利用する方法があります。のベクトルをY軸を中心に角度pだけ回転させ、その後Z軸を中心に角度tだけ回転させればのベクトルに変化することを利用する方法です。例えばカメラを(r, t, p)に移動させる場合は
1 2 3 4 |
|
となります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| - - | | | ! | | ! |
|