CFrame

Mostrar obsoleto

*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 Euler
local 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 derechoYVector, UpVectorZVector, -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

Propiedades

Métodos

Operaciones de matemáticas

Constructores

new

Crea una identidad en blanco CFrame .

new

Regresa un CFrame con sin rotación con la posición de Vector3 proporcionada.

Parámetros

pos: Vector3

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

Parámetros

pos: Vector3
lookAt: Vector3

new

Regresa un CFrame con una posición que consta de los elementos proporcionados x, y y 1> z1> .

Parámetros

new

Regresa un CFrame desde la posición ( x , y , 1> z1> ) y la quaternión ( 4> qX4> , 7> qY

Parámetros

new

Crea un CFrame desde la posición ( x , y , 1> z1> ) con una orientación especificada por la matriz de rotación.

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

Parámetros

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

lookAt

Regresa un nuevo CFrame con la posición de at y hacia la dirección de lookAt, opcionalmente especificando la dirección hacia arriba ( 1> up1> ) con un valor predeterminado de 4> (0, 1, 0)4> .

Parámetros

lookAt: Vector3
Valor predeterminado: Vector3.yAxis

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

Parámetros

direction: Vector3
Valor predeterminado: Vector3.yAxis

fromRotationBetweenVectors

Retorna un CFrame representando la orientación necesaria para rotar desde el primer Vector3 hasta el segundo, con la posición establecida a cero.

Parámetros

from: Vector3

Vectores que representan la dirección "de".

Vectores que representan la dirección "a".

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

Parámetros

rx: number
ry: number
rz: number
Valor predeterminado: Enum.RotationOrder.XYZ

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

Parámetros

rx: number
ry: number
rz: number

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

Parámetros

rx: number
ry: number
rz: number

Angles

Equivalente a fromEulerAnglesXYZ() .

Parámetros

rx: number
ry: number
rz: number

fromOrientation

Equivalente a fromEulerAnglesYXZ() .

Parámetros

rx: number
ry: number
rz: number

fromAxisAngle

Devuelve un rotado CFrame de una unidad Vector3 y una rotación en radianes.

Parámetros

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

pos: Vector3

La posición 3D de la CFrame .

Equivalente a RightVector .

Equivalente a UpVector .

Equivalente a - LookVector .

Propiedades

identity

Una identidad CFrame sin traducción o rotación. Esta propiedad es una constante y debe accederse globalmente en lugar de a través de un objeto individual CFrame .

Position

La posición 3D de la CFrame .

Rotation

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.

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

Inverse

Devuelve lo contrario del CFrame .

Devuelve

Lerp

Regresa un Datatype.CFrame interpolado entre sí y goal por la fracción alpha .

Parámetros

goal: CFrame
alpha: number

Devuelve

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

ToWorldSpace

Recibe uno o más objetos CFrame y los devuelve transformados del objeto al espacio del mundo. Equivalente a:

CFrame * cf

Parámetros

Devuelve

ToObjectSpace

Recibe uno o más objetos CFrame y los devuelve transformados del espacio del mundo al espacio del objeto. Equivalente a:

CFrame:Inverse() * cf

Parámetros

Devuelve

PointToWorldSpace

Recibe uno o más objetos Vector3 y los devuelve transformados del objeto al espacio del mundo. Equivalente a:

CFrame * v3

Parámetros

Devuelve

PointToObjectSpace

Recibe uno o más objetos Vector3 y los devuelve transformados del espacio del mundo al espacio del objeto. Equivalente a:

CFrame:Inverse() * v3

Parámetros

Devuelve

VectorToWorldSpace

Recibe uno o más objetos Vector3 y los devuelve girados desde el objeto al espacio del mundo. Equivalente a:

(CFrame - CFrame.Position) * v3

Parámetros

Devuelve

VectorToObjectSpace

Recibe uno o más objetos Vector3 y los devuelve girados desde el espacio del mundo a la zona de objeto. Equivalente a:

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

Parámetros

Devuelve

GetComponents

Restablece los valores x, y, z, 1> R0

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

Valor predeterminado: Enum.RotationOrder.XYZ

ToEulerAnglesXYZ

Restaura ángulos aproximados que se podrían usar para generar el CFrame usando Enum.RotationOrder.XYZ .

ToEulerAnglesYXZ

Restaura ángulos aproximados que se podrían usar para generar el CFrame usando Enum.RotationOrder.YXZ .

ToOrientation

ToAxisAngle

Retorna un tutorial de un Vector3 y un número que representa la rotación del CFrame en la representación de ángulo-ejes.

components

Equivalente a CFrame:GetComponents() .

Devuelve

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

Parámetros

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

Devuelve

Operaciones de matemáticas


Produce una nueva CFrame representando la composición de los dos CFrames .


Produce un Vector3 transformado desde el objeto a los coordenadas mundiales.


Produce un CFrame traducido en el espacio del mundo por el Vector3 .


Produce un CFrame traducido en el espacio del mundo por el negativo Vector3 .