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、RightVector | YVector、UpVector | ZVector,-LookVector † |
---|
概要
建構子
- 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)
屬性
沒有翻譯或旋轉的身份 CFrame。
Datatype.CFrame 的 3D 位置。
一個沒有翻譯的 CFrame 副本。
位置的 X 坐標。
位置的 Y 坐標。
位置的 Z 坐標。
Datatype.CFrame 對物件的前向方向部分,相當於 ZVector 的負形。
Datatype.CFrame 對物件的方向。
Datatype.CFrame 對物件的方向。
相當於 RightVector 。
相當於 UpVector 。
Datatype.CFrame 對物件的方向。與旋轉矩陣的第三個柱子相等。
方法
返回 CFrame 的反向。
返回 CFrame 與 goal 之間的交錯,由剩餘 alpha 。
返回 CFrame 的或者普通化副本。
接收一個或多個 CFrame 對象,並將它們從對象變成世界空間。
接收一個或多個 CFrame 對象,並將它們從世界空間變成對象空間。
接收一個或多個 Vector3 對象,並將它們從對象變成世界空間。
接收一個或多個 Vector3 對象,並將它們從世界空間變成對象空間。
接收一個或多個 Vector3 對象,並將它們旋轉到對象到世界空間。
接收一個或多個 Vector3 對象,並將其旋轉到世界空間中的對象空間。
返回值 x , y , z , 1> R0
返回使用 CFrame 生成的 Enum.RotationOrder 的準確角度。
返回使用 Enum.RotationOrder.XYZ 生成 CFrame 的角度。
返回使用 CFrame 生成的 Enum.RotationOrder.YXZ 的平均角度。
如果另一個 true 位於此 Datatype.CFrame 的位置和方向上足夠接近,則返回 true。
建構子
new
屬性
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 個單位的速度移動。
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)
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)
方法
Orthonormalize
返回 CFrame 的或者普通化的副本。BasePart.CFrame 屬性會自動應用或者普通化,但其他取用 CFrames 的 API 不會,因此此方法時間不時會需要更新 2>Datatype.CFrame2> 並使用它們。
返回
ToEulerAngles
返回準確的角度,可以用來使用 CFrame 使用可選的 Enum.RotationOrder 生成。如果您沒有提供 order,方法會使用 2>枚列順序.XYZ2>。