日々適当

hibitekitou

sansu |2011-10-15
平面上における円の式は

x = r * cosθ
y = r *sinθ

でいいわけっすよね。角度をパラメータとして座標を出している。
これを立体に適用すると球になります。

角度は経度・緯度の二つをパラメータとします。それぞれ、θとγとします。

x = r * cosθ * cosγ
y = r * sinγ
z = r * sinθ * cosγ

yアップだと幸せなので、平面をxz、高さをyと考えている場合の式です。そのため、先の円の式のyの式はzに適用しています。x、zの値にはcosγがかけられていますけど、これは緯度が高くなるほどに緯線の円の直径が小さくなる事を表しております。yの値は緯度の高さなんで、sinγっすね。

ってことで、幅360、高さ180のグリッドを球に変形します。



素直に実装するとこんな感じ。このままだと、xyの符号が想定の逆になるんで、Negateノードかますとよいでしょ。これをどんなグリッドにも適用するなら、PointPositionが緯度・経度の値になるように補正してやればいいってことっすな。



さて。問題はこの変形途中をいかに自然にできるかってことでして。
コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。