CFrame

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

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\</

Resumo

Construtores

Propriedades

Métodos

Construtores

new

new

Parâmetros

pos: Vector3

new

Parâmetros

pos: Vector3
lookAt: Vector3

new

Parâmetros

new

Parâmetros

new

Parâmetros

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

lookAt

Parâmetros

lookAt: Vector3
Valor Padrão: Vector3.yAxis

lookAlong

Parâmetros

direction: Vector3
Valor Padrão: Vector3.yAxis

fromRotationBetweenVectors

Parâmetros

from: Vector3

fromEulerAngles

Parâmetros

rx: number
ry: number
rz: number
Valor Padrão: Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

Parâmetros

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

Parâmetros

rx: number
ry: number
rz: number

Angles

Parâmetros

rx: number
ry: number
rz: number

fromOrientation

Parâmetros

rx: number
ry: number
rz: number

fromAxisAngle

Parâmetros

fromMatrix

Parâmetros

Propriedades

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 .

Devolução

Lerp

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

Parâmetros

goal: CFrame
alpha: number

Devolução

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

Devolução

ToWorldSpace

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

CFrame * cf

Parâmetros

Devolução

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

Devolução

PointToWorldSpace

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

CFrame * v3

Parâmetros

Devolução

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

Devolução

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

Devolução

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

Devolução

GetComponents

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

Devolução

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 Padrão: 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.

Devolução

components

Equivalente a CFrame:GetComponents() .

Devolução

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 Padrão: 0.00001 (1e-5)

Devolução

Operações matemáticas