Question

Je joue un peu avec le nouveau flash 10 possibilités 3D, et a trouvé que la rotation d'une image-objet 3D est assez facile:

var card:Sprite = new MyCard()
card.x = 100
card.y = 100
card.z = 200
card.rotationX = -60
addChild(card)

Simple et efficace, ce qui montre la carte en rotation avec perspective.

Maintenant, je veux utiliser une projection orthographiques, et je n'ai pas la moindre idée où commencer. DisplayObject a un membre de perspectiveProjection, mais qui ne peut faire des projections en perspective bien sûr. Peut-être que je devrais utiliser le transform.matrix3D?

Je pense que cela ne devrait pas être trop dur, mais je ne vois pas comment aborder cette question.

Mise à jour: comme l'un des commentaires suggère: le réglage de la perspectiveProjection.fieldOfView à quelque chose proche de 0 (10 en fait un produit plus agréable résultat dans ma configuration que quelque chose comme 0,1), vous obtenez une projection qui est presque orthographiques, qui pourrait être bon assez.

Était-ce utile?

La solution

Je l'ai finalement obtenu de travail.

        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)

Maintenant tout élément ajouté à l'image-objet qui a cette transformation appliquée à elle montrera en projection isométrique. (Ce nombre est approximatif 35,264 voir http://en.wikipedia.org/wiki/Isometric_projection)

Autres conseils

Vous pouvez définir la propriété fieldOfView de PerspectiveProjection à près de 0. Je ne suis pas sûr si cela est la meilleure façon.

Référence: http://thebackbutton.com/misc/f10api/flash /geom/PerspectiveProjection.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top