4次元の点を描画

4d01.gif

 4次元の点の位置データファイルを読み込んで、それを回転し描画するプログラムです。4次元で奥にあるものほど黒く、そして線が下に伸びるようにして、手前のものほど白く、線は上に伸びるようにしました。回転は4次元(視点の回転)でも行なっていますが、3次元への投影は正射影なので単に4次元目の要素(以下w軸とする)を無視してるだけです。

例えばここに四次元の点[3, 4, 5, 6]があったとするとw軸の要素6を無視して、3次元の点[3, 4, 5]として処理してることになります。これだと、4次元の意味がないような感じがしますが、それ以前にwを含む面(wx平面、wy平面, wz平面)での回転を行なっているので4次元の影響は出ます。

具体的にはwx平面でθ回転した場合、回転の行列変換は
[x', y', z', w'] = [x, y, z, w] *
_              _
|  cosθ  0  0 sinθ |
|   0   1   0  0   |
|   0   0   1  0   |
|_-sinθ  0  0  cosθ_|

となるので回転後のx座標x'は
  x' = x*cosθ - w*sinθ
となって移動します。これはxz平面での回転(y軸回転)の
  x' = x*cosθ - z*sinθ
とほぼ同じ、wかzかの違いだけです。

加えて今回は、面にテクスチャを張ってるわけでもなく、ドット単位の点や線で表示しているので、3次元の奥行き感がまったく出ません。なので、3次元で回転しても、4次元で回転しても、このプログラムではまったく同じように見えてしまうわけです。

しかしCAVEの場合は3次元の奥行き感を立体視で感じることができるので、少しはわかりやすくなると期待しているのですが・・・・・。どのみち大きさの変らない点や線はやめようとは考えてます。

投稿者 robosheep : 2005年10月27日 13:49

トラックバック

このエントリーのトラックバックURL:
http://render.s73.xrea.com/mt/mt-tb.cgi/534