1.投影の種類
データとしては3次元で存在する図形も、表示する時は2次元に変換しなくてはなりません。
ディスプレイが2次元である以上これは避けられないことです。
3次元空間の適当な位置に投影面(スクリーン)を指定し、投影します。
この投影の方法には2種類の方法があります。
次に紹介する平行投影と透視投影です。
| 平行投影
|
図のように投射線が平行なので、遠くの物も近くの物も同じ大きさで投影されます。
遠近感は出せませんが、辺の長さや面積が実際の大きさと同じ比率になります。
この方法は、3次元CADシステムで使われています(僕はCADシステムについては良くわかりませんが)。
|
| 透視投影
|
中心投影ともいい、図のように、投影する物体から視点の1点に
全ての投射線が集中する方式です。
人間が物を見るときと同じように、遠くの物ほど小さく表示され、遠近感を出す事ができます。
3次元CGではこの方法が使われます。
|
2.投影変換
ワールド座標系上の3次元物体を2次元座標系に直すことを透視変換といいます。
ルービックキューブでは透視投影を使うので、透視投影の透視変換について考えます。
透視変換は次のように行なうことができます。
下の図のように注視点と視点を設定します。
すると図の右にある式のように、各値を決めることができます。
ここで、ワールド座標系で定義された点( xw 、yw 、zw )は、
次のように視点座標系に変換できます。 [ 詳細はここ ]
|
xe の座標に z 成分が入っていないことに注意。
|

最後に、こうして求められた視点座標系の座標を、投影面上の座標(ディスプレイの座標)に直します。
それには左図の式を使います。
( x'e 、y'e )が投影面上の座標です。
|