CFrame

Veraltete anzeigen

*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-Rotation
local 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, RechtsVectorYVector, UpVectorZVector, -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

Eigenschaften

Methoden

Mathe-Operationen

Konstrukteure

new

Erstellt eine leere Identität CFrame .

new

Kehrt eine CFrame mit Kehung der Position des bereitgestellten Vector3 zurück.

Parameter

pos: Vector3

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

Parameter

pos: Vector3
lookAt: Vector3

new

Kehrt eine CFrame mit einer Position zurück, die aus den angegebenen x, y und 1> z1>-Komponenten besteht.

Parameter

new

Kehrt ein CFrame von der Position ( x , y , 1> z1> ) und der Quaternion ( 4> qX4> , 7> qY7>

Parameter

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]]

Parameter

R00: number
R01: number
R02: number
R10: number
R11: number
R12: number
R20: number
R21: number
R22: number

lookAt

Kehrt ein neues CFrame mit der Position von at und der Ausrichtung auf lookAt zurück, optionale Spezifikation der oberen Richtung ( 1> up1> ) mit einem Standard von 4> (0, 1, 0)4> .

Parameter

lookAt: Vector3
Standardwert: Vector3.yAxis

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).

Parameter

direction: Vector3
Standardwert: Vector3.yAxis

fromRotationBetweenVectors

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.

Parameter

from: Vector3

Vektor, der die Richtung "von" repräsentiert.

Vektor, der die Richtung "zu" repräsentiert.

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) * -- X
CFrame.fromEulerAngles(0, ry, 0) * -- J
CFrame.fromEulerAngles(0, 0, rz) -- Z

Parameter

rx: number
ry: number
rz: number
Standardwert: Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

Kehrt eine gedrehte CFrame von Angewinkeln rx , ry und 1> rz1> in Radianen mit 4> enum.RotationOrder.XYZ4> , der entspricht:


CFrame.fromEulerAngles(rx, 0, 0) * -- X
CFrame.fromEulerAngles(0, ry, 0) * -- J
CFrame.fromEulerAngles(0, 0, rz) -- Z

Parameter

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

Kehrt eine gedrehte CFrame von Angewinkeln rx , ry und 1> rz1> in Radianen mit 4> enum.RotationOrder.YXZ4> , der entspricht:


CFrame.fromEulerAngles(0, ry, 0) * -- J
CFrame.fromEulerAngles(rx, 0, 0) * -- X
CFrame.fromEulerAngles(0, 0, rz) -- Z

Parameter

rx: number
ry: number
rz: number

Angles

Äquivalent zu fromEulerAnglesXYZ() .

Parameter

rx: number
ry: number
rz: number

fromOrientation

Äquivalent zu fromEulerAnglesYXZ() .

Parameter

rx: number
ry: number
rz: number

fromAxisAngle

Kehrt eine gedrehte CFrame von einer Einheit Vector3 und einer Rotation in Radian zurück.

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

pos: Vector3

Die 3D-Position des CFrame .

Äquivalent zu RightVector .

Äquivalent zu UpVector .

Äquivalent zu - LookVector .

Eigenschaften

identity

Eine Identität CFrame mit keiner Übersetzung oder Rotation. Diese Eigenschaft ist eine Konstante und muss global zugreifbar sein, im Gegensatz zu einem einzelnen CFrame -Objekt.

Position

Die 3D-Position des CFrame .

Rotation

Eine Kopie des CFrame ohne Übersetzung.

Die X-Koordinate der Position.

Die Y-Koordinaten der Position.

Die Z-Koordinate der Position.

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

Inverse

Rückgibt das Gegenteil von CFrame .

Rückgaben

Lerp

Kehrt eine CFrame interpoliert zwischen sich und goal durch die Fraktion alpha zurück.

Parameter

goal: CFrame
alpha: number

Rückgaben

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

ToWorldSpace

Erhält ein oder mehrere CFrame Objekte und gibt sie vom Objekt zum Platzverwandelt zurück. Äquivalent zu:

CFrame * cf

Parameter

Rückgaben

ToObjectSpace

Erhält ein oder mehrere CFrame Objekte und gibt sie vom Weltraum in den Platzverwandelt zurück. Äquivalent zu:

CFrame:Inverse() * cf

Parameter

Rückgaben

PointToWorldSpace

Erhält ein oder mehrere Vector3 Objekte und gibt sie vom Objekt zum Platzverwandelt zurück. Äquivalent zu:

CFrame * v3

Parameter

Rückgaben

PointToObjectSpace

Erhält ein oder mehrere Vector3 Objekte und gibt sie vom Platzin die Objekt-Zuordnung zurück. Äquivalent zu:

CFrame:Inverse() * v3

Parameter

Rückgaben

VectorToWorldSpace

Erhält ein oder mehrere Vector3 Objekte und gibt sie in der Reihenfolge von Objekt zu Platzgedreht zurück. Äquivalent zu:

(CFrame - CFrame.Position) * v3

Parameter

Rückgaben

VectorToObjectSpace

Erhält ein oder mehrere Vector3 Objekte und gibt sie in der Reihenfolge von der Welt in den Platzgedreht zurück. Äquivalent zu:

(CFrame:Inverse() - CFrame:Inverse().Position) * v3

Parameter

Rückgaben

GetComponents

Wird die Werte x , y , z , 1> R

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

Standardwert: Enum.RotationOrder.XYZ

ToEulerAnglesXYZ

Gibt genaue Winkel zurück, die verwendet werden können, um das CFrame mit Enum.RotationOrder.XYZ zu generieren.

ToEulerAnglesYXZ

Gibt genaue Winkel zurück, die verwendet werden können, um das CFrame mit Enum.RotationOrder.YXZ zu generieren.

ToOrientation

Äquivalent zu CFrame:ToEulerAnglesYXZ() .

ToAxisAngle

Kehre ein Array von einem Vector3 und einer Zahl zurück, die dieRotation des CFrame in der Achsen-Angaben-Repräsentation darstellt.

Rückgaben

components

Äquivalent zu CFrame:GetComponents() .

Rückgaben

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.

Parameter

other: CFrame
epsilon: number
Standardwert: 0.00001 (1e-5)

Rückgaben

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.