フラッシュ10正投影
-
21-08-2019 - |
質問
私は新しいフラッシュ10の3Dの可能性を少しプレーしてきた、と3dにスプライトを回転することは非常に簡単であることが判明します:
var card:Sprite = new MyCard()
card.x = 100
card.y = 100
card.z = 200
card.rotationX = -60
addChild(card)
簡単で効果的な、これが視点で回転カードを示している。
今、私は正投影を使用したい、と私はどこから始めれば見当もつかない。 DisplayObjectはのPerspectiveProjectionメンバーを持っているが、それはコースのみの透視投影を行うことができます。たぶん私はtransform.matrix3Dを使用する必要がありますか?
私は、これはあまりにも難しいことではありませんだと思うだろうが、私はこの問題に取り組むためにどのように表示されません。
UPDATE:コメントの1のとおり:0に近いものにperspectiveProjection.fieldOfViewを設定する(10が実際に0.1のようなものよりも、私のセットアップでよりよい結果を生成する)あなたが良いかもしれませんほぼ正投影された投影を取得十分ます。
解決
私は最終的に取り組んでそれを得ています。
var m:Matrix3D = new Matrix3D()
var v3:Vector.<Vector3D> = new Vector.<Vector3D>(3);
v3 = m.decompose();
v3[2] = new Vector3D(1,1,0);
m.recompose(v3)
transform.matrix3D.appendRotation( -90, Vector3D.X_AXIS );
transform.matrix3D.appendRotation( -45, Vector3D.Y_AXIS );
transform.matrix3D.appendRotation( 35.264, Vector3D.X_AXIS );
transform.matrix3D.append(m)
は、今、どの要素がこの等角図に表示されます、それに適用される変換しているスプライトに追加しました。 (35.264番号であることを近似が見 http://en.wikipedia.org/wiki/Isometric_projection)
他のヒント
あなたはNEAR 0にのPerspectiveProjectionのfieldOfViewプロパティを設定することができます。 これが最善の方法である場合、私はわからないんです。
参考: http://thebackbutton.com/misc/f10api/flash /geom/PerspectiveProjection.htmlする