CFrame
*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 Eulerlocal 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 Destra | YVector, UpVector | ZVector, -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
- new()
Restituisce un'identità vuota CFrame .
Restituisce un CFrame con nessuna rotazione con la posizione del fornito Vector3 .
Restituisce un CFrame con la posizione del primo Vector3 e una orientazione puntata verso il secondo.
Restituisce un CFrame con una posizione composta dal fornito x , y e 1> z1> componenti.
Restituisce un Datatype.CFrame dalla posizione ( x , y , 1> z1> ) e dalla quaternion ( 4> qX4> , 7> qY7> , 0> qZ0> , CFrame3> ) .
Restituisce un CFrame dalla posizione ( x , y , 1> z1> ) con un orientamento specificato dalla matrice di rotazione.
Restituisce un CFrame con la posizione del primo Vector3 e una orientazione puntata verso il secondo.
Restituisce un CFrame con la posizione del primo Vector3 e una orientazione diretta lungo il secondo.
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
Restituisce un CFrame rappresentante l'orientamento necessario per ruotare dal primo Vector3 al secondo, con la posizione impostata su zero.
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
Restituisce un CFrame ruotato da angoli rx, ry e 1> rz1> in radiani. Le rotazioni sono applicate nell'opzionale 4> enum.RotationOrder4> con un valore predefinito di 7> xyz7>.
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
Ritorna un CFrame ruotato dagli angoli rx, ry e 2> rz2> in radiani usando 5> enum.RotationOrder.XYZ5> .
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
Ritorna un CFrame ruotato dagli angoli rx, ry e 2> rz2> in radiani usando 5> Capacity.RotationOrder.YXZ5> .
Equivalente a fromEulerAnglesXYZ() .
- fromOrientation(rx : number,ry : number,rz : number)
Equivalente a fromEulerAnglesYXZ() .
- fromAxisAngle(v : Vector3,r : number)
Restituisce un CFrame ruotato da un'unità Vector3 e una rotazione in radiani.
- fromMatrix(pos : Vector3,vX : Vector3,vY : Vector3,vZ : Vector3)
Restituisce un CFrame da una traduzione e dalle colonne di una matrice di rotazione.
Proprietà
Un identificatore CFrame con nessuna traduzione o rotazione.
La posizione 3D del CFrame .
Una copia del CFrame senza traduzione.
La X coordinata della posizione.
La Y coordinate della posizione.
La Z coordinata della posizione.
La direzione avanti della componente CFrame di orientamento dell'oggetto, equivalente alla forma negata di ZVector .
La direzione di rotazione della parte di CFrame oggetto.
La direzione di avanzamento della componente up-dir di oggetto CFrame .
Equivalente a RightVector .
Equivalente a UpVector .
Il Z component of the CFrame oggetto's orientation. Equivalente alla terza colonna della matrice di rotazione.
Metodi
Ritorna il contrario di Datatype.CFrame .
Restituisce un CFrame interpolato tra se stesso e goal dalla frazione alpha .
Restituisce una copia ortonormizzata del CFrame .
Riceve uno o più oggetti CFrame e li restituisce trasformati dall'oggetto allo Spaziodel mondo.
Riceve uno o più oggetti CFrame e li restituisce trasformati dallo spazio del mondo allo Spaziodell'oggetto.
Riceve uno o più oggetti Vector3 e li restituisce trasformati dall'oggetto allo Spaziodel mondo.
Riceve uno o più oggetti Vector3 e li restituisce trasformati dallo spazio del mondo allo Spaziodell'oggetto.
Riceve uno o più oggetti Vector3 e li restituisce ruotati dall'oggetto allo Spaziodel mondo.
Riceve uno o più oggetti Vector3 e li restituisce ruotati dal mondo allo Spaziodi oggetto.
Restituisce i valori x , y , z , 1>
Restituisce angoli approssimativi che potrebbero essere utilizzati per generare il CFrame utilizzando il Enum.RotationOrder opzionale.
Restituisce angoli approssimativi che potrebbero essere utilizzati per generare il CFrame utilizzando Enum.RotationOrder.XYZ .
Restituisce angoli approssimativi che potrebbero essere utilizzati per generare il CFrame utilizzando Enum.RotationOrder.YXZ .
Equivalente a CFrame:ToEulerAnglesYXZ() .
Restituisce un tuplo di un Vector3 e un numero che rappresenta la rotazione del CFrame nella rappresentazione a angolo.
Equivalente a CFrame:GetComponents() .
Restituisce true se l'altro 'Datatype.CFrame' è abbastanza vicino a questo 'Datatype.CFrame' in entrambe le posizioni e le rotazioni.
Operazioni Matematiche
Costruttori
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
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) .
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) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(0, 0, rz) -- Z
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
Equivalente a RightVector .
Equivalente a - LookVector .
Proprietà
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
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
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
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