CFrame
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Le taperde données CFrame, court pour cadre de coordonnée, décrit une position et une orientation 3D. Il est composé d'un composant positional et d'un composant 2>rotational2> et inclut les opérations arithmétiques de base pour travailler avec les données 3D sur Roblox.
-- Créer un CFrame à une certaine position et rotation Eulerlocal cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)
Pour une introduction au taperde données CFrame, voir CFrames .
Composant positionnel
Le composant positionnel est disponible comme un Vector3 . En outre, les composants d'un objet de position CFrame sont également disponibles dans le X , 1> Datatype.CFrame.Y|Y1> et <
Composant de rotation
CFrame stocke les données
Le tableau ci-dessous représente la rotation de la matrice de rotation d'un objet CFrame et sa relation avec les propriétés de vécteur disponibles telles que LookVector et RightVector. Bien que les composantes individuelles de la rotation de la matrice soient rarement utiles par elles-mêmes, les propriétés
<tbody><tr><td>R00</td><td>R01</td><td>R02</td></tr><tr><td>R10</td><td>R11</td><td>R12</td></tr><tr><td>R20</td><td>R21</td><td>R22</td></tr></tbody>
XVector, Vecteur de droite | YVector, UpVector | ZVector, -LookVector ^ |
---|
^ Datatype.CFrame.LookVector|LookVector représente les composantes de colonne négées. Le Datatype.CFrame.LookVector|LookVector est utile parce que de nombreux 1> Class.Instance|Instances1> tels que le <figcaption>4> Class.Camera|Camera</figcaption>4> et le
Résumé
Constructeurs
- new()
Retourne une identité vide CFrame .
Retourne un CFrame avec aucune rotation avec la position du fournisseur Vector3 .
Retourne un CFrame avec la position du premier Vector3 et une orientation vers la deuxième.
Retourne un CFrame avec une position composée des composants fournis x, y et 2>z2>.
Retourne un Datatype.CFrame de position ( x , y , 1> z1> ) et quaternion ( 4> qX4> , 7> qY7> , 0> qZ0> , CFrame3> ) .
Retourne un CFrame de position ( x , y , 1> z1> ) avec une orientation spécifiée par la matrice de rotation.
Retourne un CFrame avec la position du premier Vector3 et une orientation vers la deuxième.
Retourne un CFrame avec la position du premier Vector3 et une orientation dirigée le long du deuxième.
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
Retourne un CFrame représentant l'orientation nécessaire pour faire pivoter le premier Vector3 vers le second, avec la position définie à zéro.
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
Retourne un CFrame pivoté à partir des angles rx, ry et 1> rz1> dans les radians. Les rotations sont appliquées dans le 4> 枚.RotationOrder4> optionnel avec un 7> X7> par défaut.
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
Retourne un CFrame pivoté à partir des angles rx, ry et 1> rz1> dans les radians en utilisant 4> Amount.RotationOrder.XYZ4>.
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
Retourne un CFrame tourné à partir des angles rx, ry et 1> rz1> en utilisant 4> Amount.RotationOrder.YXZ4>.
Équivalent à fromEulerAnglesXYZ() .
- fromOrientation(rx : number,ry : number,rz : number)
Équivalent à fromEulerAnglesYXZ() .
- fromAxisAngle(v : Vector3,r : number)
Retourne un CFrame pivoté d'une unité Vector3 et une rotation en radians.
- fromMatrix(pos : Vector3,vX : Vector3,vY : Vector3,vZ : Vector3)
Retourne un CFrame d'une traduction et des colonnes d'une matrice de rotation.
Propriétés
Une identité CFrame avec aucune traduction ou rotation.
La position 3D du CFrame .
Une copie du CFrame sans traduction.
La position X.
La position de coordonnée Y.
La position de coordonnée Z.
La direction vers l'avant de l'objet CFrame , équivalente à la forme négative de ZVector .
La direction de la droite de l'objet CFrame l'orientation.
La direction vers le haut du composant de l'objet CFrame.
Équivalent à RightVector .
Équivalent à UpVector.
Le composant Z de l'objet CFrame l'orientation. Équivalent à la troisième colonne de la matrice de rotation.
Méthodes
Renvoie le contraire de CFrame .
Retourne un CFrame interpolé entre lui et goal par la fraction alpha.
Renvoie une copie orthenormale du CFrame .
Reçoit un ou plusieurs objets CFrame et les renvoie transformés du monde objet à l'espace du monde.
Reçoit un ou plusieurs objets CFrame et les renvoie transformés de l'espace mondial à l'espace d'objet.
Reçoit un ou plusieurs objets Vector3 et les renvoie transformés du monde objet à l'espace du monde.
Reçoit un ou plusieurs objets Vector3 et les renvoie transformés de l'espace mondial à l'espace d'objet.
Reçoit un ou plusieurs objets Vector3 et les renvoie pivotés du monde à espace'objet.
Reçoit un ou plusieurs objets Vector3 et les renvoie dans l'espace de l'objet du monde vers l'espace d'objet.
Retourne les valeurs x, y, z, 1> R0
Retourne des angles environnants qui pourraient être utilisés pour générer le CFrame à l'aide du Enum.RotationOrder optionnel.
Renvoie des angles environnants qui pourraient être utilisés pour générer le CFrame à l'aide de Enum.RotationOrder.XYZ .
Renvoie des angles environnants qui pourraient être utilisés pour générer le CFrame à l'aide de Enum.RotationOrder.YXZ .
Équivalent à CFrame:ToEulerAnglesYXZ() .
Retourne un tableau d'un Vector3 et un nombre qui représente la rotation du CFrame dans la représentation d'angle.
Équivalent à CFrame:GetComponents() .
Renvoie true si l'autre « Datatype.CFrame » est assez proche de ce « Datatype.CFrame » dans les positions et les rotations.
Opérations Maths
Constructeurs
new
Retourne un nouveau CFrame situé à pos et face vers lookAt, en supposant que 1> (0, 1, 0)1> est considéré comme «décalé» dans l'espace du monde.
Ce surchargement de constructeur a été remplacé par CFrame.lookAt() , qui atteint le même objectif. Il reste pour l'amour de la compatibilité avec l'ancienne version.
À des angles de haut degré (environ 82 degrés), vous pouvez expérimenter des instabilités numériques. Si c'est un problème, ou si vous avez besoin d'un autre force vectorielle« up », utilisez CFrame.fromMatrix() pour plus de précision construire le CFrame . De plus,
lookAlong
Retourne un nouveau CFrame avec la position de at et tourné vers la direction direction , optionnellement spécifiant la direction vers le haut ( 1> up1> ) par défaut de 4> (0, 1, 0)4> .
Ce constructeur est équivalent à CFrame.lookAt(at, at + direction) .
fromEulerAngles
Retourne un CFrame tourné à partir des angles rx, ry et 1> rz1> dans les radians. Les rotations sont appliquées dans le 4> 枚.RotationOrder4> optionnel avec un 7> xyz7> par défaut, équivalent à :
CFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(0, 0, rz) -- Z
Paramètres
fromEulerAnglesXYZ
Retourne un CFrame tourné à partir des angles rx, ry et 1> rz1> dans les radians en utilisant 4> Amount.RotationOrder.XYZ4>, équivalent à :
CFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(0, 0, rz) -- Z
fromEulerAnglesYXZ
Retourne un CFrame pivoté à partir des angles rx, ry et 1> rz1> dans les radians en utilisant 4> Enum.RotationOrder.YXZ4>, équivalent à :
CFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, 0, rz) -- Z
fromMatrix
Retourne un CFrame d'une traduction et des colonnes d'une matrice de rotation. Si vZ est exclu, la troisième colonne est calculée comme vX:Cross(vY).Unit.
Paramètres
Équivalent à RightVector .
Équivalent à - LookVector .
Propriétés
LookVector
La direction de l'avant du composant de l'objet CFrame , équivalente à la direction négative ZVector ou à la colonne négative de la matrice de rotation.
local cf = CFrame.new(0, 0, 0)local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()print(cf.LookVector) --> (-0, -0, -1)print(-cf.ZVector) --> (-0, -0, -1)print(-R02, -R12, -R22) --> (-0 -0 -1)
Ajouter un objet CFrame à lui-même produit un LookVector qui se déplace en avant dans n'importe quelle direction qu'il soit face à 1 unité.
RightVector
La direction de la pièce de CFrame objet. Équivalent à XVector ou à la première colonne de la matrice de rotation.
local cf = CFrame.new(0, 0, 0)local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()print(cf.RightVector) --> (1, 0, 0)print(cf.XVector) --> (1, 0, 0)print(R00, R10, R20) --> (1 0 0)
UpVector
La direction vers le haut de l'objet CFrame l'orientation. Équivalent à YVector ou la deuxième colonne de la matrice de rotation.
local cf = CFrame.new(0, 0, 0)local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()print(cf.UpVector) --> (0, 1, 0)print(cf.YVector) --> (0, 1, 0)print(R01, R11, R21) --> (0 1 0)
XVector
La X component of the CFrame objet's orientation. Equivalent à RightVector ou la première colonne de la matrice de rotation.
local cf = CFrame.new(0, 0, 0)local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()print(cf.XVector) --> (1, 0, 0)print(cf.RightVector) --> (1, 0, 0)print(R00, R10, R20) --> (1 0 0)
YVector
Le Y de l'orientation de l'objet CFrame. Équivalent à UpVector ou à la deuxième colonne de la matrice de rotation.
local cf = CFrame.new(0, 0, 0)local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()print(cf.YVector) --> (0, 1, 0)print(cf.UpVector) --> (0, 1, 0)print(R01, R11, R21) --> (0 1 0)
ZVector
Le composant Z de l'objet CFrame l'orientation. Équivalent à la négation LookVector ou à la troisième colonne de la matrice de rotation.
local cf = CFrame.new(0, 0, 0)local x, y, z, R00, R01, R02, R10, R11, R12, R20, R21, R22 = cf:GetComponents()print(cf.ZVector) --> (0, 0, 1)print(-cf.LookVector) --> (0, 0, 1)print(R02, R12, R22) --> (0 0 1)
Méthodes
Orthonormalize
Retourne une copie orthonormalisée du CFrame . La propriété BasePart.CFrame applique automatiquement l'orthonormalisation, mais d'autres API qui prennent CFrames ne le font pas, donc cette méthode est nécessaire occasionnellement lors de l'actualisation d'un 1> Datatype.CFrame
Retours
ToEulerAngles
Retourne des angles environnants qui pourraient être utilisés pour générer le CFrame en utilisant le Enum.RotationOrder. Si vous n'avez pas fourni de order, la méthode utilise 2>Enregistrement.RotationOrder.XYZ2>.
Paramètres
FuzzyEq
Renvoie true si l'autre « Datatype.CFrame » est assez proche de ce « Datatype.CFrame » dans les positions et les rotations. La valeur eps est utilisée pour contrôler la tolérance pour cette similitude. Cette valeur est optionnelle et doit être une petite valeur positive si elle est fournie. La tolérance pour la position est comprise dans le composant, et pour la rotation, une approximation