La méthode
La méthode
Cette méthode peut être utilisée en combinaison avec la méthode
La classe Vector3D peut également représenter une direction, une flèche pointant de l’origine des coordonnées, par exemple (0,0,0), vers un point de fin ; ou un composant à virgule flottante du modèle de couleur RVB (Rouge, Vert, Bleu).
La notation quaternion introduit un quatrième élément, la propriété
L’addition des deux vecteurs résulte en un autre vecteur. Pour visualiser le résultat, il suffit de tracer un vecteur de l’origine ou la queue du premier vecteur jusqu’à la fin ou la tête du second vecteur. Le vecteur résultant est la distance entre le point d’origine du premier vecteur et le point de fin du second.
La méthode
Pour convertir un degré en radian, vous pouvez utiliser la formule suivante :
Vous pouvez utiliser le produit vectoriel normalisé de deux sommets d’une surface polygonale par le vecteur normalisé du point de vue de la caméra ou de l’oeil pour obtenir un produit scalaire. La valeur du produit scalaire indique si la surface d’un objet tridimensionnel est invisible pour le point de vue.
La méthode
Si l’objet Vector3D actuel résulte de la multiplication d’un objet Vector3D par un objet Matrix3D de projection, la propriété
La notation quaternion emploie un angle comme quatrième élément dans son calcul de la rotation tridimensionnelle. La propriété
De plus, la propriété
To support a camera viewpoint and motion, create a camera class that keeps a Matrix3D object for
handling the movement of the display objects relative to the camera. In the camera space, the display objects
move in the opposite direction of the camera movement. For example, when the camera moves closer, the objects
become bigger. In other words, if the camera moves down the world z axis, the objects moves up
the z axis. One way to produce this effect is by setting the Matrix3D object of the camera class
to the inverse of the display objects' transformation. If the display objects are children of the root
display object, the Matrix3D object of the camera class can be set to the inverse of the root
display object. Another option is to have the display objects as children of a camera object.
Une seule matrice peut combiner plusieurs transformations et les appliquer simultanément à un objet d’affichage 3D. Par exemple, une matrice peut être appliquée à des coordonnées 3D et effectuer une rotation, puis une translation.
Lorsque vous définissez de façon explicite la propriété
Vous pouvez accéder à l’objet Matrix3D d’un objet d’affichage 3D par le biais de la propriété
La valeur de la propriété
Remarque : si le même objet Matrix3D est attribué à deux objets d’affichage distincts, une erreur d’exécution est renvoyée.
La classe Matrix3D utilise une matrice carrée 4x4 : une table de quatre lignes et colonnes de nombres qui contiennent les données de la transformation. Les trois premières lignes de la matrice contiennent les données de chaque axe 3D (x,y,z). Les informations de translation sont dans la dernière colonne. Les données d’orientation et de mise à l’échelle sont dans les trois premières colonnes. Les facteurs de mise à l’échelle sont les nombres situés dans les diagonales des trois premières colonnes. Voici une représentation d’éléments Matrix3D :
Il n’est pas nécessaire de comprendre les mathématiques matricielles pour pouvoir utiliser la classe Matrix3D. Elle offre des méthodes spécifiques qui simplifient la tâche de la transformation et de la projection :
Les objets d’affichage mettent en cache les propriétés de rotation de leurs axes pour obtenir une rotation distincte pour chaque axe et gérer les différentes combinaisons de rotation. Lorsqu’une méthode d’un objet Matrix3D est appelée pour transformer un objet d’affichage, le cache de la rotation de l’objet est invalidé.
Si aucun paramètre n’est défini, le constructeur produit un objet Matrix3D d’identité ou unitaire. Dans la notation des matrices, une matrice d’identité a une valeur de un pour tous les éléments situés sur la diagonale principale et une valeur de zéro pour tous les autres éléments. La valeur de la propriété
La rotation de l’objet d’affichage est définie par un axe, un degré incrémentiel de rotation autour de l’axe et un point de pivot facultatif pour le centre de la rotation de l’objet. L’axe peut être toute direction générale. Les axes courants sont
L’ordre des transformations a son importance. Une rotation suivie d’une transformation de translation n’a pas le même effet qu’une translation suivie d’une transformation de rotation.
L’effet de la rotation n’est pas absolu. Il est relatif à la position et à l’orientation actuelles. Pour apporter une modification absolue à la matrice de transformation, utilisez la méthode
Lorsque la transformation de la méthode
Pour qu’un objet d’affichage pivote autour d’un point spécifique par rapport à son emplacement, une méthode consiste à définir la translation de l’objet sur le point spécifié, à faire pivoter l’objet avec la méthode
L’échelle est définie comme un ensemble de trois modifications incrémentielles le long des trois axes (x,y,z). Vous pouvez multiplier chaque axe par un nombre différent. Lorsque des modifications d’échelle sont appliquées à un objet d’affichage, la taille de l’objet augmente ou diminue. Par exemple, définir les axes x, y et z sur deux double la taille de l’objet, alors que définir les axes sur
La méthode
L’ordre des transformations a son importance. Un redimensionnement suivi d’une transformation de translation n’a pas le même effet qu’une translation suivie d’une transformation de redimensionnement.
La translation est définie comme un ensemble de trois modifications incrémentielles le long des trois axes (x,y,z). Lorsque la transformation est appliquée à un objet d’affichage, celui-ci se déplace de son point d’origine le long des axes x, y et z, tel que spécifié par les paramètres. Pour être certain que la translation n’affecte qu’un axe spécifique, définissez les autres paramètres sur zéro. Un paramètre de valeur zéro signifie qu’aucune modification n’a lieu le long de l’axe spécifique.
Les modifications de translation ne sont pas absolues. Elles sont relatives à la position et à l’orientation actuelles de la matrice. Pour apporter une modification absolue à la matrice de transformation, utilisez la méthode
Les multiplications de matrices diffèrent des additions de matrices. La multiplication de matrices n’est pas commutative. En d’autres termes, A fois B n’est pas égal à B fois A. Avec la méthode
La première fois que la méthode
La méthode
Certaines méthodes Matrix3D, par exemple
Pour modifier la transformation de la matrice avec une image de référence de parent absolu, récupérez les paramètres avec la méthode
Le paramètre de la méthode
Vous pouvez utiliser la méthode
Un objet transformé par l’application d’une matrice d’identité n’effectue aucune transformation. En d’autres termes, lorsqu’une matrice est multipliée par une matrice d’identité, le résultat est une matrice identique à la matrice d’origine.
La méthode
Les prochains appels à la méthode
La méthode
Les prochains appels à la méthode
L’inverse d’une matrice peut être utilisé pour diviser une matrice par une autre. Une manière de diviser une matrice A par une matrice B consiste à multiplier la matrice A par l’inverse de la matrice B. La matrice inverse peut également être utilisée avec un espace de caméra. Lorsque la caméra se déplace dans l’espace monde, l’objet présent dans le monde doit se déplacer dans le sens opposé pour passer de l’espace monde à l’espace de la caméra ou à l’espace visuel. Par exemple, si la caméra se rapproche, les objets deviennent plus gros. En d’autres termes, si la caméra se déplace vers le bas de l’axe z du monde, l’objet se déplace vers le haut de ce même axe.
La méthode
L’objet Matrix3D doit être réversible.
La méthode
Remarque : si vous utilisez la méthode
La rotation de l’objet d’affichage est définie par un axe, un degré incrémentiel de rotation autour de l’axe et un point de pivot facultatif pour le centre de la rotation de l’objet. L’axe peut être toute direction générale. Les axes courants sont
L’ordre des transformations a son importance. Une rotation suivie d’une transformation de translation n’a pas le même effet qu’une translation suivie d’une rotation.
L’effet de la rotation n’est pas absolu. L’effet est relatif à l’objet, relatif à l’image de référence de la position et de l’orientation d’origine. Pour apporter une modification absolue à la transformation, utilisez la méthode
Lorsque la transformation de la méthode
Pour qu’un objet d’affichage pivote autour d’un point spécifique par rapport à son emplacement, une méthode consiste à définir la translation de l’objet sur le point spécifié, à faire pivoter l’objet avec la méthode
L’échelle est définie comme un ensemble de trois modifications incrémentielles le long des trois axes (x,y,z). Vous pouvez multiplier chaque axe par un nombre différent. Lorsque des modifications d’échelle sont appliquées à un objet d’affichage, la taille de l’objet augmente ou diminue. Par exemple, définir les axes x, y et z sur deux double la taille de l’objet, alors que définir les axes sur
La méthode
L’ordre des transformations a son importance. Un redimensionnement suivi d’une transformation de translation n’a pas le même effet qu’une translation suivie d’une transformation de redimensionnement.
La translation définit la distance sur laquelle l’objet d’affichage se déplace, depuis son emplacement actuel le long des axes x, y et z. La méthode
Les modifications de translation ne sont pas absolues. L’effet est relatif à l’objet, relatif à l’image de référence de la position et de l’orientation d’origine. Pour apporter une modification absolue à la matrice de transformation, utilisez la méthode
Les multiplications de matrices diffèrent des additions de matrices. La multiplication de matrices n’est pas commutative. En d’autres termes, A fois B n’est pas égal à B fois A. Avec la méthode
Les modifications apportées par la méthode
La méthode
Pour modifier la transformation de la matrice avec une image de référence de parent absolu, récupérez les paramètres avec la méthode
Le paramètre de la méthode
Si le résultat de la méthode
La méthode
Une matrice orthogonale est une matrice carrée dont la transposition est égale à son inverse.
Un objet Matrix3D doit être réversible. Pour être certain qu’un objet Matrix3D est réversible, vous pouvez utiliser la propriété
Seule une matrice carrée, telle que la classe Matrix3D, possède une propriété determinant.
La propriété
Une exception est renvoyée si la propriété
Pour appliquer les transformations de couleur : créez un objet ColorTransform, définissez les réglages de couleur à l’aide des méthodes et des propriétés de l’objet, puis affectez la propriété
Pour appliquer des transformations bidimensionnelles : créez un objet Matrix, définissez la transformation bidimensionnelle de la matrice, puis affectez la propriété
Pour appliquer des transformations tridimensionnelles : partez d’un objet d’affichage tridimensionnel. Un objet d’affichage tridimensionnel a une propriété
Pour modifier la projection de la perspective de la scène ou de l’objet racine : utilisez la propriété
Comme les objets PerspectiveProjection et Matrix3D transforment tous deux la perspective, ne les affectez pas ensemble à un objet d’affichage. Utilisez l’objet PerspectiveProjection pour les modifications de la longueur focale et du centre de projection. Pour contrôler encore davantage la transformation de la perspective, créez un objet de projection de perspective Matrix3D.
blueColorTransform
to
the Transform object trans
. This ColorTransform converts the color of the MovieClip
rect
from red to blue.
blueColorTransform
is then applied to the Transform object parentTrans
which
adjusts the color of both parent and child MovieClips towards blue. Notice how child.concatenatedColorTransform
is the
combination of parentTrans
and childTrans
.
scaleMatrix
is then applied to the Transform object parentTrans
which
scales both parent and child MovieClips. Notice how child.concatenatedMatrix
is the
combination of parentTrans
and childTrans
.
Si la propriété
scaleMatrix
to the Transform
object trans
. This Matrix scales the MovieClip rect
by a factor of two.
Si la propriété
A partir du champ de vision et des proportions (dimensions) de la scène, un objet PerspectiveProjection est affecté par défaut à l’objet racine.
trans
and traces out
its pixelBounds
. Notice that pixel bounds returns a bounding box with values
equal to MovieClip's getBounds()
and getRect()
methods.
Associés, ces types de transformations sont connus sous le nom de transformations affines. Les transformations affines préservent la rectitude des lignes au cours de la transformation, de sorte que les lignes parallèles restent parallèles.
Pour appliquer une matrice de transformation à un objet d’affichage, vous créez un objet Transform, réglez sa propriété
Un objet de matrice de transformation est considéré comme étant une matrice 3 x 3 comprenant le contenu suivant :
Dans le cas des matrices de transformation classiques, les propriétés
Vous pouvez obtenir et définir les valeurs des six autres propriétés d’un objet Matrix :
La classe Matrix prend en charge les quatre principaux types de transformations : translation, redimensionnement, rotation et inclinaison. Vous pouvez définir trois de ces transformations à l’aide de méthodes spécialisées, tel que décrit dans le tableau ci-dessous.
Chaque fonction de transformation modifie les propriétés de matrice actuelles, ce qui vous permet d’associer plusieurs transformations. Pour ce faire, il vous suffit d’appeler plusieurs fonctions de transformation avant d’appliquer la matrice à son objet d’affichage cible (à l’aide de la propriété
Utilisez le constructeur
Si vous ne transmettez aucun paramètre au constructeur
a = 1
b = 0
c = 0
d = 1
tx = 0
ty = 0
Dans la notation des matrices, la matrice d’identité a l’aspect suivant :
clonedMatrix
from myMatrix
.
Notice that the Matrix class does not have an equals method, so the following example
uses a custom written function to test the equality of two Matricies.
rotate45Matrix
and doubleScaleMatrix
are applied to the two rectangles
rectangleMc_1
and rectangleMc_2
. Then, the third
Matrix is created using the concat()
method on rotate45Matrix
and
doubleScaleMatrix
to create scaleAndRotateMatrix
.
This Matrix is then applied to rectangleMc_3
to scale and rotate it.
Par exemple, si la matrice
Cette méthode permet de remplacer la matrice source par la matrice concaténée. Si vous souhaitez concaténer deux matrices sans modifier les deux matrices source, copiez d’abord la matrice source via la méthode
L’utilisation de la méthode
Par exemple, supposons un dégradé possédant les caractéristiques suivantes:
Les illustrations suivantes représentent des dégradés dans lesquels la matrice a été définie à l’aide de la méthode
width = 25; height = 25; rotation = 0; tx = 0; ty = 0;
width = 25; height = 25; rotation = 0; tx = 25; ty = 0;
width = 50; height = 50; rotation = 0; tx = 0; ty = 0;
width = 50; height = 50; rotation = Math.PI / 4; // 45 degrees tx = 0; ty = 0;
deltaTransformPoint()
method
to create deltaTransformedPoint
from myPoint
. Notice that
the translate()
method has no affect on the position of deltaTransformedPoint
.
In the example, however, scale()
does affect the position. It
increases the original x
value by a factor of three from 50 to 150.
Faisant suite à l’appel de la méthode
Dans la notation des matrices, la matrice d’identité a l’aspect suivant :
rotate()
method rotates rectangleMc
30 degrees clockwise. Notice that applying myMatrix
to rectangleMc
resets its _x value leaving us to reset it to 100 manually.
_x
property of the MovieClip object
to position rectangleMc
. Generally, when dealing with Matrix
positioning, mixing positioning techniques is considered bad style. The
example above written in good style would concatenate a translation Matrix to
myMatrix
to change the horizontal location of rectangleMc
.
The following example demonstrates this.
La méthode
scale()
method to
scale myMatrix
by a factor of 3 horizontally and a factor of 4
vertically.
La méthode
myMatrix
and converts its values
to a String in the format of (a=A, b=B, c=C, d=D, tx=TX, ty=TY).
transformPoint()
method
to create transformedPoint
from myPoint
. Notice that
the translate()
method does have an affect on the position of transformedPoint
.
In the example, scale()
increases the original x
value by a factor of three from 50 to 150, and translate()
increases
x
by 300 for a total value of 450.
translate()
method to position
rectangleMc
x:100 and y:50. Notice that translate()
affects
the translate values tx
and ty
but not a
, b
,
c
, or d
.
La méthode
Les propriétés
Les méthodes et propriétés suivantes utilisent les objets Rectangle :
Vous pouvez utiliser le constructeur
Remarque : la classe Rectangle ne définit pas un objet d’affichage Shape rectangulaire. Pour dessiner un objet Shape rectangulaire à l’écran, utilisez la méthode
clone
member.
Les deux exemples de code suivants donnent le même résultat :
width
by 16 ~~ 2 (32) and it's height
by 32 ~~ 2 (64)
rect_1
between rect_2
?
rect_1
intersect with rect_2
?
Cette méthode règle les valeurs des propriétés
rect_1
with some helpful
debugging text.
For example, consider a rectangle with properties x=20
, y=50
, width=60
, and
height=30
(20, 50, 60, 30) and a second rectangle with properties (150, 130, 50, 30).
The union of these two rectangles would be a larger rectangle encompassing the two rectangles
with the properties (20, 50, 180, 110).
Remarque : la méthode
rect.right
is also
changed.
width
property
from 10 to 20. Notice that rect.right
also
changes.
rect.left
is also changed.
La valeur de la propriété
rect.top
is also changed.
La valeur de la propriété
bottomRight
property as a Point object.
rect.height
is also
changed.
rect.x
is also changed.
La valeur de la propriété
rect.width
is also
changed.
size
,
changes the size
and sets the new values on the Rectangle instance.
It is critical to remember that the Point
object used by size
uses x and y values to represent the width
and height
properties
of the Rectangle.
topLeft
property as a Point object.
rect.y
is also changed.
La valeur de la propriété
Lorsqu’un objet ColorTransform est appliqué à un objet d’affichage, une nouvelle valeur est calculée de la manière suivante pour chaque canal de couleur :
Toute valeur de canal de couleur supérieure à 255 après le calcul est ramenée à 255. Si elle est inférieure à 0, elle est réglée sur 0.
Vous pouvez utiliser les objets ColorTransform comme suit :
Vous devez utiliser le constructeur
Les transformations de couleurs ne s’appliquent pas à la couleur d’arrière-plan d’un clip (tel qu’un objet SWF chargé). Elles s’appliquent uniquement aux graphiques et symboles associés au clip.
colorTrans_2
to colorTrans_1
resulting in a full red offset combined with a .5 alpha multiplier.
colorTrans
and calls its toSting()
method. This method results in a string with the format
(redMultiplier=RM, greenMultiplier=GM, blueMultiplier=BM, alphaMultiplier=AM, redOffset=RO, greenOffset=GO, blueOffset=BO, alphaOffset=AO).
colorTrans
and adjusts its alphaMultiplier
from 1 to .5.
Définir directement la valeur de transparence alpha d’un objet d’affichage à l’aide de la propriété
colorTrans
and adjusts its alphaOffset
from 0 to -128.
colorTrans
and adjusts its blueMultiplier
from 1 to .5.
colorTrans
and adjusts its blueOffset
from 0 to 255.
colorTrans
and adjusts its greenMultiplier
from 1 to .5.
colorTrans
and adjusts its greenOffset
from 0 to 255.
colorTrans
and adjusts its redMultiplier
from 1 to .5.
colorTrans
and adjusts its redOffset
from 0 to 255.
my_mc
. To see this code work, place a movie clip on the Stage with the instance name my_mc
. Then place the following code on Frame 1 in the main Timeline and select Control > Test Movie:
var my_color:Color = new Color(my_mc);
my_color.setRGB(0xFF0000); // my_mc turns red
La définition de cette propriété entraîne la modification des trois valeurs de décalage de couleur (
Lorsque vous définissez la valeur de cette propriété, utilisez le format 0xRRGGBB. Les valeurs RR, GG et BB se composent chacune de deux chiffres hexadécimaux qui spécifient le décalage de chaque composant de couleur. La valeur 0x indique au compilateur ActionScript que le nombre est une valeur hexadécimale.
Le code suivant crée un point à (0,0) :
Les méthodes et propriétés des classes suivantes utilisent des objets Point :
Vous pouvez utiliser le constructeur
point_1
with the default constructor.
point_2
with the coordinates x = 1 and y = 2.
resultPoint
by adding point_2
to
point_1
.
clonedPoint
from the values found in
myPoint
. The clonedPoint
contains all the
the values from myPoint
but is not the same object.
interpolatedPoint
) half way (50%) between point_1
and point_2
.
normalizedPoint
object from 5 to 10.
cartesianPoint
from the value of angleInRadians
and a line length of 5. The angleInRadians
value equal to Math.atan(3/4)
is used because of the characteristics of right triangles with sides that
have ratios of 3:4:5.
Math.PI
, consider using the Math.round()
function, as shown
in the following example.
point_3
by subtracting point_2
from point_1
.
myPoint
and gets myX
from myPoint.x
.
myPoint
and gets myY
from myPoint.y
.
myPoint
, and determines the length of a line from (0, 0) to that Point.
Les méthodes
Les angles d’Euler entraînent parfois des erreurs d’animation à cause de problèmes tels que des singularités lors de la rotation autour de l’axe x ou gimbal lock (perte d’un degré de liberté). Par exemple, comme avec les angles d’Euler chaque axe est géré indépendamment, la singularité gimbal lock peut survenir en cas de rotation autour de plusieurs axes. Les axes peuvent alors s’aligner, ce qui entraîne des résultats inattendus.
Les propriétés de rotation des axes de l’objet d’affichage effectuent la rotation des angles d’Euler.
La méthode
La projection est un moyen de représenter un objet tridimensionnel dans un espace à deux dimensions, par exemple un cube projeté sur l’écran d’un ordinateur. La projection de perspectives utilise un affichage frustum (pyramide rectangulaire) pour modeler et projeter un monde tridimensionnel et ses objets sur l’écran. L’affichage frustum devient de plus en plus large au fur et à mesure qu’il s’éloigne de l’origine du point de vue. L’origine du point de vue peut être un appareil photo ou les yeux d’un observateur faisant face à l’écran. La perspective projetée donne l’illusion d’un espace à trois dimensions, avec profondeur et distance, où les objets proches de l’écran semblent plus gros que les objets éloignés.
Tout objet PerspectiveProjection par défaut est une structure définie pour la transformation de perspective de l’objet racine, basée sur le champ de vision et les proportions (dimensions) de la scène. Le centre de la projection, ou point de fuite, est défini au centre de la scène, ce qui signifie que les objets d’affichage tridimensionnels disparaissent vers le centre de la scène lorsqu’ils reculent sur l’axe z. Le point de vue par défaut est au point (0,0), regardant vers l’axe z positif. L’axe y pointe vers le bas de l’écran. Vous pouvez accéder aux paramètres de projection de perspective de l’objet d’affichage
Vous pouvez également définir un paramètre de projection de perspective différent pour un objet d’affichage via la projection de perspective du parent. Commencez par créer un objet PerspectiveProjection et définissez ses propriétés
Un objet d’affichage, tel que l’objet racine, peut avoir un objet PerspectiveProjection sans que la propriété Matrix3D ne soit définie pour ses transformations. En fait, pour spécifier la transformation de la perspective, servez-vous d’un objet PerspectiveProjection ou Matrix3D. Si, lorsque vous utilisez l’objet PerspectiveProjection, un objet Matrix3D est nécessaire, la méthode
Une valeur proche de
Une valeur proche de
La propriété