CFrame
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
El introducirde datos CFrame , cortesía de coordinar marco, describe una posición y orientación 3D. Está compuesto por un posicional componente y un 2>rotación2> componente y incluye operaciones aritméticas esenciales para trabajar con datos 3D en Roblox.
-- Crear un CFrame en una posición específica y rotación Eulerlocal cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)
Para una introducción al tipo de datos CFrame, véase CFrames .
Componente posicional
El componente posicional está disponible como un Vector3 . Además, las posiciones de los componentes de un objeto CFrame también están disponibles en el X , 1> Datatype.CFrame.Y|Y1>
Componente de Rotación
CFrame almacena los datos
La tabla a continuación representa la tabla de rotación de un objeto de CFrame y su relación con las propiedades de vectores disponibles, como LookVector y RightVector . Aunque las propiedades de vectores que se obtienen de ellos son raramente útiles por sí mismas, las propiedades de vectores
<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, Vector derecho | YVector, UpVector | ZVector, -LookVector ^ |
---|
† A diferencia de los demás, Datatype.CFrame.LookVector|LookVector representa los componentes de la columna negada. El Datatype.CFrame.LookVector|LookVector es útil porque muchos 1> Class.Instance|Instances1> como el 4> Class.Camera|Camera\</
Resumen
Constructores
- new()
Devuelve una identidad en blanco CFrame .
Regresa un CFrame con sin rotación con la posición de Vector3 proporcionada.
Regresa un CFrame con la posición del primer Vector3 y una orientación apuntando hacia el segundo.
Regresa un CFrame con una posición que consta de los elementos proporcionados x, y y 1> z1> .
Devuelve un Datatype.CFrame de posición ( x , y , 1> z1> ) y cuaternión ( 4> qX4> , 7> qY7> , 0> qZ0> , CFrame3> ) .
Regresa un CFrame desde la posición ( x , y , 1> z1> ) con una orientación especificada por la matriz de rotación.
Regresa un CFrame con la posición del primer Vector3 y una orientación apuntando hacia el segundo.
Regresa un CFrame con la posición de la primera Vector3 y una orientación dirigida a lo largo de la segunda.
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
Retorna un CFrame representando la orientación necesaria para rotar desde el primer Vector3 hasta el segundo, con la posición establecida a cero.
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
Devuelve un CFrame giratorio desde ángulos rx, ry y 1> rz1> en radianes. Las rotaciones se aplican en el opcional 4> 枚.RotationOrder4> con un valor predeterminado de 7> XYZ7>.
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
Devuelve un rx giratorio desde ángulos ry, 1> ry1> y 4> rz4> en radianes usando 7> Amount.RotationOrder.XYZ7>.
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
Devuelve un rx giratorio desde ángulos ry, 1> ry1> y 4> rz4> en radianes usando 7> Amount.RotationOrder.YXZ7>.
Equivalente a fromEulerAnglesXYZ() .
- fromOrientation(rx : number,ry : number,rz : number)
Equivalente a fromEulerAnglesYXZ() .
- fromAxisAngle(v : Vector3,r : number)
Devuelve un rotado CFrame de una unidad Vector3 y una rotación en radianes.
- fromMatrix(pos : Vector3,vX : Vector3,vY : Vector3,vZ : Vector3)
Devuelve un Datatype.CFrame de una traducción y las columnas de una matriz de rotación.
Propiedades
Una identidad CFrame sin traducción o rotación.
La posición 3D de la CFrame .
Una copia del CFrame sin traducción.
La X coordenada de la posición.
La Y coordenada de la posición.
La Z coordenada de la posición.
La orientación del componente de avance de la CFrame objeto, que es la forma negada de ZVector .
La dirección de la dirección correcta del objeto CFrame objeto.
La dirección de la subida del objeto CFrame
Equivalente a RightVector .
Equivalente a UpVector .
El Z del objeto CFrame objeto de orientación. Equivalente a la tercera columna de la matriz de rotación.
Métodos
Devuelve lo contrario del CFrame .
Regresa un Datatype.CFrame interpolado entre sí y goal por la fracción alpha .
Regresa una copia ortonormalizada del CFrame .
Recibe uno o más objetos CFrame y los devuelve transformados del objeto al espacio del mundo.
Recibe uno o más objetos CFrame y los devuelve transformados del espacio del mundo al espacio del objeto.
Recibe uno o más objetos Vector3 y los devuelve transformados del objeto al espacio del mundo.
Recibe uno o más objetos Vector3 y los devuelve transformados del espacio del mundo al espacio del objeto.
Recibe uno o más objetos Vector3 y los devuelve girados desde el objeto al espacio del mundo.
Recibe uno o más objetos Vector3 y los devuelve girados desde el espacio del mundo a la zona de objeto.
Restablece los valores x, y, z, 1> R0
Restaura ángulos aproximados que se podrían usar para generar el CFrame usando el opcional Enum.RotationOrder .
Restaura ángulos aproximados que se podrían usar para generar el CFrame usando Enum.RotationOrder.XYZ .
Restaura ángulos aproximados que se podrían usar para generar el CFrame usando Enum.RotationOrder.YXZ .
Equivalente a CFrame:ToEulerAnglesYXZ() .
Retorna un tutorial de un Vector3 y un número que representa la rotación del CFrame en la representación de ángulo-ejes.
Equivalente a CFrame:GetComponents() .
Devuelve true si el otro 'Datatype.CFrame' está lo suficientemente cerca de este 'Datatype.CFrame' en ambas posiciones y rotación.
Operaciones de matemáticas
Constructores
new
Retorna un nuevo CFrame que se encuentra en pos y que se enfrenta hacia lookAt, suponiendo que 1> (0, 1, 0)1> es considerado "arriba" en el espacio del mundo.
Este error de construcción ha sido reemplazado por CFrame.lookAt() , que logra el mismo propósito. Se mantiene para el beneficio de la compatibilidad con versiones anteriores.
En ángulos de altura (alrededor de 82 grados), puede experimentar inestabilidad numérica. Si este es un problema, o si requiere un fuerza vectorialde diferente "up" (véase CFrame.fromMatrix() para construir más precisamente el CFrame . Además, si lookAt
lookAlong
Regresa un nuevo CFrame con la posición de at y hacia adelante direction , opcionalmente especificando la dirección hacia arriba ( 1> up1> ) con un valor predeterminado de 4> (0, 1, 0)4> .
Este constructor es equivalente a CFrame.lookAt(at, at + direction) .
fromEulerAngles
Devuelve un CFrame giratorio desde ángulos rx, ry y 1> rz1> en radianes. Las rotaciones se aplican en el 4> 枚.RotationOrder4> opcional con un valor predeterminado de 7> XYZ7>, que es equivalente a:
CFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(0, 0, rz) -- Z
Parámetros
fromEulerAnglesXYZ
Devuelve un CFrame girado desde ángulos rx, ry y 2>rz2> en radianes usando 5>Amount.RotationOrder.XYZ5>, lo que es equivalente a:
CFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(0, 0, rz) -- Z
fromEulerAnglesYXZ
Devuelve un CFrame giratorio desde ángulos rx, ry y 2> rz2> en radianes usando 5> Enum.RotationOrder.YXZ5>, lo que es equivalente a:
CFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, 0, rz) -- Z
fromMatrix
Devuelve un CFrame de una traducción y las columnas de una matriz de rotación. Si se excluye vZ, la tercera columna se calcula como vX:Cross(vY).Unit.
Parámetros
Equivalente a RightVector .
Equivalente a - LookVector .
Propiedades
LookVector
La orientación del componente de avance del objeto CFrame que es la orientación de la columna negada del objeto ZVector o la columna negada de la matriz de rotación.
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)
Añadir un objeto de CFrame a sí mismo produce un LookVector movido hacia delante en cualquier dirección en la que se enfrenta por 1 unidad.
RightVector
La orientación de la dirección de la CFrame objeto. Equivalente a XVector o la primera columna de la matriz de rotación.
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 orientación de la dirección de la CFrame objeto. Equivalente a YVector o la segunda columna de la matriz de rotación.
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 del objeto CFrame de orientación. Equivalente a RightVector o la primera columna de la matriz de rotación.
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
La Y component del objeto CFrame de orientación. Equivalente a UpVector o la segunda columna de la matriz de rotación.
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
El componente Z de la orientación del objeto CFrame . Equivalente al negado LookVector o la tercera columna de la matriz de rotación.
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étodos
Orthonormalize
Regresa una copia ortonormalizada de la CFrame . La propiedad BasePart.CFrame aplica automáticamente la ortonormalización, pero otras API que toman CFrames no, por lo que este método se hace necesario ocasionalmente cuando se actualiza ortonormalmente un 2>Datatype.CFrame2> y se utiliza
Devuelve
ToEulerAngles
Regresa ángulos aproximados que se pueden usar para generar el CFrame usando el orden opcional Enum.RotationOrder. Si no proporciona order, el método usa 2>Enumeración.RotaciónOrder2>.
Parámetros
FuzzyEq
Devuelve true si el otro 'Datatype.CFrame' está lo suficientemente cerca de este 'Datatype.CFrame' en ambas posiciones y rotación. El valor eps se usa para controlar la tolerancia para esta similitud. Este valor es opcional y debe ser un valor positivo pequeño si se proporciona. La similitud para la posición es component-wise, y para la rotación se usa una aproximación rápida de la difer