CFrame

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Il inserisci / scrividi dati CFrame , a breve Frame di coordinamento , descrive una posizione e una orientazione 3D. È composto da un posizionale componente e un 1>rotazione1> componente e include le operazioni aritmetiche di base per il lavoro con i dati Roblox.


-- Crea un CFrame a una certa posizione e rotazione Euler
local cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)

Per un'introduzione al tipo di dati CFrame, vedi CFrames .

Componente posizionale

Il componenti posizionale è disponibile come Vector3 . Inoltre, i componenti di un oggetto CFrame la posizione sono anche disponibili nel X , 2>Datatype.CFrame.Y|Y2> e 5>

Componente di rotazione

CFrame memorizza i dati

La tabella seguente rappresenta la tabella di rotazione di un oggetto CFrame e la loro relazione con le proprietà veuttorial disponibili come LookVector e RightVector . Anche se i singoli componenti della tabella di rotazione sono raramente utili da soli, le proprietà veuttorial che deriva da loro


<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, Vectore DestraYVector, UpVectorZVector, -LookVector °

† A differenza degli altri, Datatype.CFrame.LookVector|LookVector rappresenta i componenti della colonna negata. Il Datatype.CFrame.LookVector|LookVector è utile poiché molti 1> Class.Instance|Instances1> come il 4> Class.

Sommario

Costruttori

Proprietà

Metodi

Operazioni Matematiche

Costruttori

new

Crea un'identità vuota CFrame .

new

Restituisce un CFrame con nessuna rotazione con la posizione del fornito Vector3 .

Parametri

pos: Vector3

new

Restituisce un nuovo CFrame situato a pos e rivolto verso lookAt, supponendo che 1> (0, 1, 0)1> sia considerato "up" nello Spaziodel mondo.

Questo overload del costruttore è stato sostituito da CFrame.lookAt() , che raggiunge lo stesso obiettivo. Resta per il sake of backward compatibility.

Ai più alti angoli d'attacco (circa 82 gradi), potresti sperimentare instabilità numerica. Se questo è un problema, o se richiedi un diverso vettoriale"up", usa CFrame.fromMatrix() per costruire più esattamente il CFrame . Inoltre, se

Parametri

pos: Vector3
lookAt: Vector3

new

Restituisce un CFrame con una posizione composta dal fornito x , y e 1> z1> componenti.

Parametri

new

Restituisce un CFrame dalla posizione ( x , y , 1> z1> ) e dalla quaternion ( 4> qX4> , 7> qY

Parametri

new

Crea un CFrame dalla posizione ( x , y , 1> z1> ) con un orientamento specificato dalla matrice di rotazione.

[[R00 R01 R02] [R10 R11 R12] [R20 R21 R22]]

Parametri

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

lookAt

Restituisce un nuovo CFrame con la posizione di at e rivolto verso lookAt, opzionalmente specificando la direzione in alto ( 1> up1> ) con un valore predefinito di 4> (0, 1, 0)4> .

Parametri

lookAt: Vector3
Valore predefinito: Vector3.yAxis

lookAlong

Restituisce un nuovo CFrame con la posizione di at e facendo fronte lungo direction , opzionalmente specificando la direzione in alto ( 1> up1> ) con un valore predefinito di 4> (0, 1, 0)4> .

Questo costruttore è equivalente a CFrame.lookAt(at, at + direction) .

Parametri

direction: Vector3
Valore predefinito: Vector3.yAxis

fromRotationBetweenVectors

Restituisce un CFrame rappresentante l'orientamento necessario per ruotare dal primo Vector3 al secondo, con la posizione impostata su zero.

Parametri

from: Vector3

Vettore che rappresenta la direzione "from".

Vettore che rappresenta la direzione "to".

fromEulerAngles

Restituisce un CFrame ruotato da angoli rx , ry e 1> rz1> in radiani. Le rotazioni sono applicate nell'opzionale 4> 枚列表4> con un valore predefinito di 7> XYZ7>, pari a:


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

Parametri

rx: number
ry: number
rz: number
Valore predefinito: Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

Restituisce un CFrame ruotato dagli angoli rx , ry e 1> rz1> in radiani usando 4> Capacity.RotationOrder.XYZ4>, pari a:


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

Parametri

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

Restituisce un CFrame ruotato dagli angoli rx , ry e 1> rz1> in radiani usando 4> Enum.RotationOrder.YXZ4>, pari a:


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

Parametri

rx: number
ry: number
rz: number

Angles

Equivalente a fromEulerAnglesXYZ() .

Parametri

rx: number
ry: number
rz: number

fromOrientation

Equivalente a fromEulerAnglesYXZ() .

Parametri

rx: number
ry: number
rz: number

fromAxisAngle

Restituisce un CFrame ruotato da un'unità Vector3 e una rotazione in radiani.

Parametri

fromMatrix

Restituisce un CFrame da una traduzione e dalle colonne di una matrice di rotazione. Se vZ è escluso, la terza colonna viene calcolata come vX:Cross(vY).Unit .

Parametri

pos: Vector3

La posizione 3D del CFrame .

Equivalente a RightVector .

Equivalente a UpVector .

Equivalente a - LookVector .

Proprietà

identity

Un identificatore CFrame con nessuna traduzione o rotazione. Questa proprietà è una costante e deve essere accessibile globalmente invece di attraverso un singolo oggetto CFrame .

Position

La posizione 3D del CFrame .

Rotation

Una copia del CFrame senza traduzione.

La X coordinata della posizione.

La Y coordinate della posizione.

La Z coordinata della posizione.

LookVector

La direzione avanti della componente Datatype.CFrame dell'oggetto, equivalenti al negato CFrame o alla colonna negata della matrice di rotazione.


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)

L'aggiungimento di un oggetto CFrame il suo LookVector a se stesso produce un CFrame spostato in avanti in qualsiasi direzione che sia la sua faccia in direzione di 1 unità.

RightVector

La direzione di rotazione della parte di oggetto CFrame . Equivalente a XVector o alla prima colonna della matrice di rotazione.


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 componente di direzione up del oggetto CFrame la orientazione. Equivalente a YVector o la seconda colonna della matrice di rotazione.


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

Il X component of the CFrame oggetto's orientation. Equivalente a RightVector o la prima colonna della matrice di rotazione.


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

Il Y component of the CFrame oggetto's orientation. Equivalente a UpVector o la seconda colonna della matrice di rotazione.


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

Il Z component of the CFrame oggetto's orientation. Equivalente al negato LookVector o alla terza colonna della matrice di rotazione.


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)

Metodi

Inverse

Ritorna il contrario di Datatype.CFrame .

Restituzioni

Lerp

Restituisce un CFrame interpolato tra se stesso e goal dalla frazione alpha .

Parametri

goal: CFrame
alpha: number

Restituzioni

Orthonormalize

Restituisce una copia orton normalizzata del CFrame . La proprietà BasePart.CFrame applica automaticamente orton normalizzazione, ma le altre API che prenderanno CFrames non lo faranno, quindi questo metodo è necessario a volte quando si aggiorna in modo incrementale un 1> Datatype.CFrame

Restituzioni

ToWorldSpace

Riceve uno o più oggetti CFrame e li restituisce trasformati dall'oggetto allo Spaziodi destinazione. Equivalente a:

CFrame * cf

Parametri

Restituzioni

ToObjectSpace

Riceve uno o più oggetti CFrame e li restituisce trasformati dallo Spaziodel mondo allo spazio dell'oggetto. Equivalente a:

CFrame:Inverse() * cf

Parametri

Restituzioni

PointToWorldSpace

Riceve uno o più oggetti Vector3 e li restituisce trasformati dall'oggetto allo spazio di Spazio. Equivalente a:

CFrame * v3

Parametri

Restituzioni

PointToObjectSpace

Riceve uno o più oggetti Vector3 e li restituisce trasformati dallo Spaziodel mondo allo spazio dell'oggetto. Equivalente a:

CFrame:Inverse() * v3

Parametri

Restituzioni

VectorToWorldSpace

Riceve uno o più oggetti Vector3 e li restituisce Spaziodal mondo all'oggetto. Equivalente a:

(CFrame - CFrame.Position) * v3

Parametri

Restituzioni

VectorToObjectSpace

Riceve uno o più oggetti Vector3 e li restituisce ruotati dallo Spaziodel mondo allo spazio dell'oggetto. Equivalente a:

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

Parametri

Restituzioni

GetComponents

Restituisce i valori x , y , z , 1>

Restituzioni

ToEulerAngles

Restituisce angoli approssimativi che potrebbero essere utilizzati per generare il CFrame utilizzando il Enum.RotationOrder opzionale. Se non fornisci order, il metodo usa 1> Container.RotationOrder.XYZ1> .

Parametri

Valore predefinito: Enum.RotationOrder.XYZ

Restituzioni

ToEulerAnglesXYZ

Restituisce angoli approssimativi che potrebbero essere utilizzati per generare il CFrame utilizzando Enum.RotationOrder.XYZ .

Restituzioni

ToEulerAnglesYXZ

Restituisce angoli approssimativi che potrebbero essere utilizzati per generare il CFrame utilizzando Enum.RotationOrder.YXZ .

Restituzioni

ToOrientation

Restituzioni

ToAxisAngle

Restituisce un tuplo di un Vector3 e un numero che rappresenta la rotazione del CFrame nella rappresentazione a angolo.

Restituzioni

components

Equivalente a CFrame:GetComponents() .

Restituzioni

FuzzyEq

Ritorna true se l'altro 'Datatype.CFrame' è abbastanza vicino a questo 'Datatype.CFrame' in entrambe le posizioni e le rotazioni. Il valore eps viene utilizzato per controllare la tolleranza per questa somiglianza. Questo valore è opzionale e dovrebbe essere un piccolo valore positivo se fornito. La somiglianza per la posizione è component-wise, e per la

Parametri

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

Restituzioni

Operazioni Matematiche


Produce una nuova CFrame rappresentante la composizione dei due CFrames .


Produce un Vector3 trasformato dalle coordinate dell'oggetto al mondo.


Produce un CFrame tradotto nello spazio del mondo dal Vector3 .


Produce un CFrame tradotto nello spazio del mondo dal negativo Vector3 .