CFrame
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
O digitarde dado CFrame , curto para quadro de coordenadas , descreve uma posição e orientação 3D.É composto por um componente posicional e um componente rotacional e inclui operações aritméticas essenciais para trabalhar com dados 3D no Roblox.
-- Crie um CFrame em uma determinada posição e rotação de Eulerlocal cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)
Para uma introdução ao digitarde dados CFrame , veja CFrames.
Componente Posicional
O componente posicional está disponível como um Vector3 .Além disso, os componentes da posição de um ObjetoCFrame também estão disponíveis nas propriedades X , Y e Z como um Vector3 .
Componente de Rotação
armazena dados de rotação 3D em uma matriz de rotação 3×3 .Esses valores são retornados pela função CFrame:GetComponents() após os valores posicionais x e y e z.Esta matriz é usada internamente ao fazer cálculos envolvendo rotações, usando radianos como sua unidade (para conversão de um para o outro, use math.rad() ou math.deg()).Para mais informações sobre como o Motor do Roblox realiza rotações, veja Enum.RotationOrder .
A tabela abaixo representa a matriz de rotação de um ObjetoCFrame e sua relação com as propriedades vetoriais disponíveis, como LookVector e RightVector.Embora os componentes individuais da matriz de rotação raramente sejam úteis por conta própria, as propriedades do vetor que se originam nelas são muito mais úteis.
<th>YVector, UpVector</th><th>ZVector, -LookVector <sup>†</sup></th></tr></thead><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, DireitoVector |
---|
Resumo
Construtores
- new()
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
- fromOrientation(rx : number,ry : number,rz : number)
- fromAxisAngle(v : Vector3,r : number)
- fromMatrix(pos : Vector3,vX : Vector3,vY : Vector3,vZ : Vector3)
Propriedades
Uma identidade CFrame.
A posição 3D do CFrame .
Uma cópia do CFrame sem tradução.
A coordenada X da posição.
A coordenada Y da posição.
A coordenada Z da posição.
O componente de direção para frente da orientação do ObjetoCFrame , equivalente à forma negada de ZVector.
O componente de direção correta da orientação do ObjetoCFrame.
O componente de direção para cima da orientação do ObjetoCFrame.
Equivalente a RightVector.
Equivalente a UpVector.
O componente Z da orientação do ObjetoCFrame . Equivalente à terceira coluna da matriz de rotação.
Métodos
Retorna o inverso do CFrame.
Retorna um CFrame interpolado entre si e goal pela fração alpha.
Retorna uma cópia ortonormalizada do CFrame.
Recebe um ou mais objetos CFrame e os retorna transformados de objeto para o espaço mundial.
Recebe um ou mais objetos CFrame e os retorna transformados do mundo para o espaço de objetos.
Recebe um ou mais objetos Vector3 e os retorna transformados de objeto para o espaço mundial.
Recebe um ou mais objetos Vector3 e os retorna transformados do mundo para o espaço de objetos.
Recebe um ou mais objetos Vector3 e os retorna girados do objeto para o espaço mundial.
Recebe um ou mais objetos Vector3 e os retorna girados do mundo para o espaço de objeto.
Retorna os valores x , y , z , R00 , R01 , R02 , R10 , R11 , R12 , R20 , R21 , e R22 , onde x``y``z ‑ CFrame ‑ R00 ‑ R22 representam a posição da matriz de rotação e ‑ representam sua matriz de rotação 3×3.
Retorna ângulos aproximados que podem ser usados para gerar o CFrame usando o opcional Enum.RotationOrder.
Retorna ângulos aproximados que podem ser usados para gerar o CFrame usando Enum.RotationOrder.XYZ.
Retorna ângulos aproximados que podem ser usados para gerar o CFrame usando Enum.RotationOrder.YXZ.
Equivalente a CFrame:ToEulerAnglesYXZ().
Retorna um tuple de um Vector3 e um número que representa a rotação do CFrame na representação do ângulo do eixo.
Equivalente a CFrame:GetComponents().
Retorna true se o outro CFrame estiver suficientemente próximo desse CFrame em ambas as posições e rotações.
Operações matemáticas
Construtores
new
fromEulerAngles
Parâmetros
Propriedades
LookVector
O componente de direção para frente da orientação do ObjetoCFrame, equivalente à coluna negada ZVector ou à coluna negada da matriz de rotação.
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)
Adicionar um objeto CFrame de um ObjetoLookVector produz um CFrame movido para a frente em qualquer direção que ele esteja enfrentando por 1 unidade.
RightVector
O componente de direção à direita da orientação do ObjetoCFrame . Equivalente a XVector ou à primeira coluna da matriz de rotação.
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
O componente de direção para cima da orientação do ObjetoCFrame . Equivalente a YVector ou à segunda coluna da matriz de rotação.
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
O componente X da orientação do ObjetoCFrame . Equivalente a RightVector ou à primeira coluna da matriz de rotação.
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
O componente Y da orientação do ObjetoCFrame . Equivalente a UpVector ou à segunda coluna da matriz de rotação.
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
O componente Z da orientação do ObjetoCFrame . Equivalente ao negado LookVector ou à terceira coluna da matriz de rotação.
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
Retorna uma cópia ortonormalizada do CFrame.A propriedade BasePart.CFrame automáticamente aplica ortonormalização, mas outras APIs que tomam CFrames não o fazem, então este método é ocasionalmente necessário ao atualizar incrementalmente um CFrame e usá-lo com eles.
Devolução
ToEulerAngles
Retorna ângulos aproximados que podem ser usados para gerar o CFrame usando o opcional Enum.RotationOrder.Se você não fornecer order, o método usa Enum.RotationOrder.XYZ.
Parâmetros
FuzzyEq
Retorna true se o outro CFrame estiver suficientemente próximo desse CFrame em ambas as posições e rotações.O valor epsilon é usado para controlar a tolerância para essa semelhança; esse valor é opcional e deve ser um pequeno valor positivo se fornecido.A semelhança para posição é componente a componente enquanto a rotação usa uma aproximação rápida da diferença de ângulo.