CFrame

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

Datatype.CFrame 資料類輸入,簡稱 坐標框 ,描述 3D 位置和方向。它由 位置 零件和 1>旋轉1> 零件組成,並包含必要的 arithmetic 運算,以便在 Roblox 上使用 3D 資料。


-- 在特定位置創建 CFrame 並在 Euler 旋轉
local cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)

CFrame 資料類輸入的介紹,請參閱 CFrames

位置元件

位置元件可用為 Vector3 。 此外, 5> Datatype.CFrame5> 對物件的位置也可用在 8> Datatype.CFrame.X|X8> 、 1> Datatype.CFrame.Y|Y1>

旋轉零件

CFrame 存�

下表代表 CFrame 對物件的旋轉矩陣和與可用的量子模型屬性關係。 此外,旋轉矩陣的個別組成部分雖然罕見,但從它們得到的量子模型屬性卻非常有用。 雖然個別零件的旋轉矩陣不常用於自己,但從它們


<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、RightVectorYVector、UpVectorZVector,-LookVector
與其他人不同,LookVector 代表負數柱子零件。CFrame.LookVector 有助於因為很多
1>Class.Instance|Instances1> 如 Class.Camera|Camera 和 Class

概要

建構子

屬性

方法

建構子

new

new

參數

pos: Vector3

new

參數

pos: Vector3
lookAt: Vector3

new

參數

new

參數

new

參數

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

lookAt

參數

lookAt: Vector3
預設值:Vector3.yAxis

lookAlong

參數

direction: Vector3
預設值:Vector3.yAxis

fromRotationBetweenVectors

參數

from: Vector3

fromEulerAngles

參數

rx: number
ry: number
rz: number
預設值:Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

參數

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

參數

rx: number
ry: number
rz: number

Angles

參數

rx: number
ry: number
rz: number

fromOrientation

參數

rx: number
ry: number
rz: number

fromAxisAngle

參數

fromMatrix

參數

屬性

identity

沒有翻譯或旋轉的身份 CFrame 。此屬性是一個 常量 ,必須從個別的 CFrame 對物件進行全球存取。

Position

Datatype.CFrame 的 3D 位置。

Rotation

一個沒有翻譯的 CFrame 副本。

位置的 X 坐標。

位置的 Y 坐標。

位置的 Z 坐標。

LookVector

Datatype.CFrame 對物件的前向方向部分,相當於 ZVector 或旋轉矩陣的第三個柱。


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)

CFrame 對物件的 LookVector 添加到自己,會在其面向的任何方向產生一個 CFrame 移動到前方,以 1 個單位的速度移動。

RightVector

Datatype.CFrame 對物件的方向。相當於 XVector 或旋轉矩陣的第一個柱。


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

Datatype.CFrame 對物件的方向。相當於 YVector 或旋轉矩陣的第二個柱。


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

Datatype.CFrame 對物件的方向。與 RightVector 或旋轉矩陣的第一個柱子相等。


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

Datatype.CFrame 對物件的方向。與 UpVector 或旋轉矩陣的第二個柱子相等。


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

Datatype.CFrame 對物件的方向。與 LookVector 或旋轉矩陣的第三個柱子相等。


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)

方法

Inverse

返回 CFrame 的反向。

返回

Lerp

返回 CFramegoal 之間的交錯,由剩餘 alpha

參數

goal: CFrame
alpha: number

返回

Orthonormalize

返回 CFrame 的或者普通化的副本。BasePart.CFrame 屬性會自動應用或者普通化,但其他取用 CFrames 的 API 不會,因此此方法時間不時會需要更新 2>Datatype.CFrame2> 並使用它們。

返回

ToWorldSpace

接收一個或多個 CFrame 對象,並將它們從對象變成世界空間。相當於:

CFrame * cf

參數

返回

ToObjectSpace

接收一個或多個 CFrame 對象,並將它們從世界空間變成對象空間。類似:

CFrame:Inverse() * cf

參數

返回

PointToWorldSpace

接收一個或多個 Vector3 對象,並將它們從對象空間變成世界空間。相當於:

CFrame * v3

參數

返回

PointToObjectSpace

接收一個或多個 Vector3 對象,並將它們從世界空間變成對象空間。相當於:

CFrame:Inverse() * v3

參數

返回

VectorToWorldSpace

接收一個或多個 Vector3 對象,並將它們旋轉到對象到世界空間。與此相當:

(CFrame - CFrame.Position) * v3

參數

返回

VectorToObjectSpace

接收一個或多個 Vector3 對象,並將它們旋轉到對象空間。相當於:

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

參數

返回

GetComponents

返回值 x , y , z , 1> R0

返回

ToEulerAngles

返回準確的角度,可以用來使用 CFrame 使用可選的 Enum.RotationOrder 生成。如果您沒有提供 order,方法會使用 2>枚列順序.XYZ2>。

參數

預設值:Enum.RotationOrder.XYZ

ToEulerAnglesXYZ

返回使用 Enum.RotationOrder.XYZ 生成 CFrame 的角度。

ToEulerAnglesYXZ

返回使用 CFrame 生成的 Enum.RotationOrder.YXZ 的平均角度。

ToOrientation

ToAxisAngle

返回 Vector3 和代表旋轉角度的數字。 CFrame 在軸角代表中代表旋轉角度。

components

返回

FuzzyEq

如果其他 "Datatype.CFrame" 位於此 "Datatype.CFrame" 的位置和旋轉方向上足夠接近,true 返回,eps 值用於控制此類似性。此值是可選的,如果提供,將是一個小的正值。 2>角度2> 對於位置來說是一個快速的估算。

參數

other: CFrame
epsilon: number
預設值:0.00001 (1e-5)

返回

數學算式