CFrame
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Die CFrame eingeben, kurz für Koordinatenraum, beschreibt eine 3D-Position und Ausrichtung. Es besteht aus einem positionellen Komponenten und einem 2>rotierenden2> Komponenten und enthält alle notwendigen Arithmetikbeträge für die Arbeit mit 3D-Daten auf Roblox.
-- Erstellen Sie ein CFrame an einer bestimmten Position und Euler-Rotationlocal cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)
Für eine Einführung in die CFrame eingeben, siehe CFrames .
Positionskomponente
Der positoriale Komponente ist als Vector3 verfügbar. Darüber hinaus sind die Komponenten einer CFrame -Objekt-Position auch in den X , 1> Datatype.CFrame.Y|Y
Drehungskomponente
CFrame speichert 3D-
Die folgende Tabelle repräsentiert die Komponenten einer CFrame-Objekt-Rotation-Matrix und ihre Beziehung zu den verfügbaren Vektor-Eigenschaften wie LookVector und RightVector. Obwohl die einzelnen Komponenten der Rotationsmatrix selten nützlich sind, sind die Vector-Eig
<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, RechtsVector | YVector, UpVector | ZVector, -LookVector ° |
---|
† Anders als die anderen repräsentiert das Datatype.CFrame.LookVector|LookVector die negierten Spaltenkomponenten. Der Datatype.CFrame.LookVector|LookVector ist nützlich, da viele 1>Class.Instance|Instances1> wie die 4>Class.Camera|
Zusammenfassung
Konstrukteure
- new()
Kehre eine leere Identität zurück CFrame.
Kehrt eine CFrame mit Kehung der Position des bereitgestellten Vector3 zurück.
Kehrt eine CFrame mit der Position des ersten Vector3 und einer Ausrichtung, die auf die zweite Zeile zeigt.
Kehrt eine CFrame mit einer Position zurück, die aus den angegebenen x, y und 1> z1>-Komponenten besteht.
Rückgibt ein Datatype.CFrame von der Position ( x , y , 1> z1> ) und der Quaternion ( 4> qX 4> , 7> qY7> , 0> qZ0> , CFrame3> ) .
Kehrt ein CFrame von der Position ( x , y , 1> z1> ) mit einer Ausrichtung, die von der Rotationsmatrix angegeben ist, zurück.
Kehrt eine CFrame mit der Position des ersten Vector3 und einer Ausrichtung, die auf die zweite Zeile zeigt.
Kehrt eine CFrame mit der Position des ersten Vector3 und einer Ausrichtung, die entlang der zweiten ausgerichtet ist.
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
Kehrt eine CFrame zurück, die die Ausrichtung darstellt, die für die Drehung von der ersten Vector3 bis zur zweiten mit der Position auf Null festgelegt ist.
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
Kehrt eine gedrehte CFrame von Angewinkeln rx , ry und 1> rz1> in Radianen an. Rotationen werden in der optionalen 4> enum.RotationOrder4> mit einem Standard von 7> xyz7> angewendet.
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
Kehrt eine gedrehte CFrame von Angewinkeln rx , ry und 1> rz1> in Radian mit 4> EnumerateRotationOrder.XYZ4> .
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
Kehrt einen gedrehten CFrame von Angewinkeln rx , ry und 2>rz2> in Radianen mit 5>Enumerate.RotationOrder.YXZ5> .
Äquivalent zu fromEulerAnglesXYZ() .
- fromOrientation(rx : number,ry : number,rz : number)
Äquivalent zu fromEulerAnglesYXZ() .
- fromAxisAngle(v : Vector3,r : number)
Kehrt eine gedrehte CFrame von einer Einheit Vector3 und einer Rotation in Radian zurück.
- fromMatrix(pos : Vector3,vX : Vector3,vY : Vector3,vZ : Vector3)
Kehrt ein CFrame von einer Übersetzung und den Spalten einer Rotationsmatтриze zurück.
Eigenschaften
Eine Identität CFrame mit keiner Übersetzung oder Rotation.
Die 3D-Position des CFrame .
Eine Kopie des CFrame ohne Übersetzung.
Die X-Koordinate der Position.
Die Y-Koordinaten der Position.
Die Z-Koordinate der Position.
Die vorwärtsgerichtete Komponente der Orientierung des CFrame Objekts, entspricht der negativen Form von ZVector .
Die Richtungskomponente der CFrame-Objektsteuerung.
Die Richtungskomponente der CFrame-Objektsteuerung.
Äquivalent zu RightVector .
Äquivalent zu UpVector .
Der Z-Komponente des CFrame-Objekts. Äquivalent der dritten Säule der Rotationsmatte.
Methoden
Rückgibt das Gegenteil von CFrame .
Kehrt eine CFrame interpoliert zwischen sich und goal durch die Fraktion alpha zurück.
Kehrt eine orthon Normalisierte Kopie des CFrame zurück.
Erhält ein oder mehrere CFrame Objekte und gibt sie vom Objekt zum Platzverwandelt zurück.
Erhält ein oder mehrere CFrame Objekte und gibt sie vom Weltraum in den Platzverwandelt zurück.
Erhält ein oder mehrere Vector3 Objekte und gibt sie vom Objekt in PlatzWelt zurück.
Erhält ein oder mehrere Vector3 Objekte und gibt sie vom Weltraum zum Platzverwandelt zurück.
Erhält ein oder mehrere Vector3 Objekte und gibt sie von Objekt zu Objekt gedreht zurück.
Erhält ein oder mehrere Vector3 Objekte und gibt sie in der Welt von der Position in der Welt zu Platzzurück.
Wird die Werte x , y , z , 1> R
Gibt genaue Winkel zurück, die verwendet werden können, um den CFrame mit dem optionalen Enum.RotationOrder zu generieren.
Gibt genaue Winkel zurück, die verwendet werden können, um das CFrame mit Enum.RotationOrder.XYZ zu generieren.
Gibt genaue Winkel zurück, die verwendet werden können, um das CFrame mit Enum.RotationOrder.YXZ zu generieren.
Äquivalent zu CFrame:ToEulerAnglesYXZ() .
Kehre ein Array von einem Vector3 und einer Zahl zurück, die dieRotation des CFrame in der Achsen-Angaben-Repräsentation darstellt.
Äquivalent zu CFrame:GetComponents() .
Gibt true zurück, wenn der andere 'Datatype.CFrame' in beider Position und Rotation nahe genug ist.
Mathe-Operationen
Erzeugt eine neue CFrame , die die Zusammensetzung der beiden CFrames repräsentiert.
Produziert eine Vector3 transformierte von Objekt zu Weltkoordinaten.
Produziert eine CFrame in der Welt, die von der Vector3 übersetzt wurde.
Erzeugt eine CFrame in der Welt, die vom negativen Vector3 übersetzt in den Weltraum übersetzt.
Konstrukteure
new
Kehrt ein neues CFrame an den pos und zeigt in Richtung lookAt, an, dass 1> (0, 1, 0)1> als „oben“ im Platzangesehen wird.
Dieser Konstrukteur-Overload wurde durch CFrame.lookAt() ersetzt, das ein ähnliches Ziel erzielt. Es bleibt für die sake of backward compatibility.
Bei hohen Tonhöhen (etwa 82 Grad) können Sie numerische Unstabilitäten erleiden. Wenn dies ein Problem ist, oder wenn Sie einen anderen "up"Vektorkraftbenötigen, verwenden Sie CFrame.fromMatrix() , um den CFrame besser zu konstruieren. Darüber hinaus, wenn
new
Erstellt einen CFrame von der Position ( x , y , 1> z1> ) mit einer Ausrichtung, die von der Rotationsmatrix angegeben ist.
[[R00 R01 R02] [R10 R11 R12] [R20 R21 R22]]
lookAlong
Kehrt ein neues CFrame mit der Position von at und der Ausrichtung auf direction und zurück mit 1> dir1> optionale Spezifikation der oberen Richtung ( 4> up4> ) mit einem Standard von 7> (0, 1, 0)7> zurück.
Dieser Konstruktor entspricht CFrame.lookAt(at, at + direction).
fromEulerAngles
Kehrt eine gedrehte CFrame von Angewinkeln rx , ry und 1> rz1> in Radian ein. Rotationen werden in der optionalen 4> enum.RotationOrder4> mit einem Standard von 7> xyz7> angewendet, der entspricht:
CFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- JCFrame.fromEulerAngles(0, 0, rz) -- Z
Parameter
fromMatrix
Kehrt ein CFrame von einer Übersetzung und den Spalten einer Rotationsmatтриze zurück. Wenn vZ ausgeschlossen ist, wird die dritte Spalte als vX:Cross(vY).Unit berechnet.
Parameter
Äquivalent zu RightVector .
Äquivalent zu - LookVector .
Eigenschaften
LookVector
Die Vorwärtsrichtungskomponente der CFrame -Objekt's Ausrichtung, entspricht der negierten ZVector oder der negierten dritten Säule der Rotationsmatte.
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)
Das Hinzufügen eines CFrame -Objekts의 LookVector zu sich selbst erzeugt ein CFrame , das in der Richtung, in die es zeigt, um 1 Einheit bewegt wird.
RightVector
Die Rechtschreibkomponente der Ausrichtung des CFrame-Objekts. Äquivalent zu XVector oder der ersten Spalte der Rotationsmatte.
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
Die Richtungskomponente der CFrame -Objekt's Ausrichtung. Äquivalent zu YVector oder der zweiten Säule der Rotationsmatte.
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
Die X-Komponente der CFrame-Objekt-Orientalität. Äquivalent zu RightVector oder der ersten Spalte der Rotationsmatte.
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
Die Y-Komponente der CFrame-Objektorientierung. Äquivalent zu UpVector oder der zweiten Säule der Rotationsmatrix.
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
Der Z-Komponente des CFrame-Objekts. Äquivalent zum negierten LookVector oder der dritten Säule der Rotationsmatte.
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)
Methoden
Orthonormalize
Gibt eine orthonormalisierte Kopie des CFrame zurück. Die BasePart.CFrame -Eigenschaft wendet automatisch eine Orthonormalisierung an, aber andere APIs, die CFrames nehmen, verwenden nicht, so dass diese Methode gelegentlich erforderlich ist, wenn Sie ein 1> Datatype.C
Rückgaben
ToEulerAngles
Gibt genaue Winkel zurück, die verwendet werden können, um den CFrame mit dem optionalen Enum.RotationOrder zu generieren. Wenn Sie keine order bereitstellen, verwendet die Methode 2>Enumerate.RotationOrder.XYZ2>.
Parameter
FuzzyEq
Kehrt true wenn der andere 'Datatype.CFrame' in beider Position und Rotation nahe genug ist. Der eps Wert wird verwendet, um die Toleranz für diese Ähnlichkeit zu steuern. Dieser Wert ist optional und sollte ein kleiner positiver Wert sein, wenn er angegeben wird. Die Ähnlichkeit für die Position ist komponentenweise und für die Rotation verwendet eine schnelle Annahme des Winkels.