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

建立空白的身份 CFrame

new

返回 CFrame ,但不旋轉位置為提供的 Vector3

參數

pos: Vector3

new

返回新位置在 CFramepos 面向的新 lookAt,假設 1>(0, 1, 0)1> 是世界空間中的「上」。

此構造器過載已被 CFrame.lookAt() 取代,達到相同的目標。它剩下是為了向後兼容。

在高抬頭角度 (約 82 度) 時,您可能會發生數學不穩定性。如果這是問題,或者您需要一個不同的「上」向向量力,請使用 CFrame.fromMatrix() 更準確地建造 CFrame 。此外,如

參數

pos: Vector3
lookAt: Vector3

new

返回 CFrame ,其位置包含提供的 xy 和 1> z1> 零件。

參數

new

從位置 ( CFramexy 和 quaternion ( 1> qX1> 、 4> qY4> 、 7> qZ7>

參數

new

從位置創建 CFramexy 、 1> z1> )與指定旋轉矩陣的方向。

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

參數

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

lookAt

返回一個新的 CFrame ,其位置是 at ,並且面向 lookAt ,可選擇向上方向 ( 1> up1> ) ,其預設值為 4> (0, 1, 0)4> 。

參數

lookAt: Vector3
預設值:Vector3.yAxis

lookAlong

返回一個新的 CFrame ,其位置是 at ,並且面向 direction ,可選擇向上方向 ( 1> up1> ) ,其預設值為 4> (0, 1, 0)4> 。

此建造器相當於 CFrame.lookAt(at, at + direction)

參數

direction: Vector3
預設值:Vector3.yAxis

fromRotationBetweenVectors

返回 CFrame 代表需要旋轉從第一個 Vector3 到第二個,位置設為零。

參數

from: Vector3

代表 "從" 方向的向量。

代表 "to" 方向的向量。

fromEulerAngles

從角度 CFramerxry 在角度中返回旋轉 2>Datatype.CFrame2>。旋轉在可選的 5>enum.RotationOrder5> 中,其預設值為 8>XYZ8> ,與以下等同:


CFrame.fromEulerAngles(rx, 0, 0) * -- X
CFrame.fromEulerAngles(0, ry, 0) * -- Y
CFrame.fromEulerAngles(0, 0, rz) -- Z

參數

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

fromEulerAnglesXYZ

返回角度 rxry 和 1> dz1> 的旋轉 0> Datatype.CFrame0> 從角度 3> px3> 、6> py6> 和 CFrame9> 在使用 CFrame2> 、相當於:


CFrame.fromEulerAngles(rx, 0, 0) * -- X
CFrame.fromEulerAngles(0, ry, 0) * -- Y
CFrame.fromEulerAngles(0, 0, rz) -- Z

參數

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

返回從角度 rxry 和 1> rz1> 在使用 4> enum.RotationOrder.YXZ4> 、等同於:


CFrame.fromEulerAngles(0, ry, 0) * -- Y
CFrame.fromEulerAngles(rx, 0, 0) * -- X
CFrame.fromEulerAngles(0, 0, rz) -- Z

參數

rx: number
ry: number
rz: number

Angles

相當於 fromEulerAnglesXYZ()

參數

rx: number
ry: number
rz: number

fromOrientation

相當於 fromEulerAnglesYXZ()

參數

rx: number
ry: number
rz: number

fromAxisAngle

從單位 CFrame 和旋轉 Vector3 返回旋轉的 Datatype.CFrame。

參數

fromMatrix

從翻譯和旋轉矩陣的柱中返回 CFrame 。如果 vZ 被排除,第三個柱將作為 vX:Cross(vY).Unit 計算。

參數

pos: Vector3

Datatype.CFrame 的 3D 位置。

相當於 RightVector

相當於 UpVector

相當於 - LookVector .

屬性

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)

返回

數學算式


產生一個新的 CFrame 代表兩個 CFrames 的組合。


Vector3 從對象變成世界坐標。


產生一個 CFrame 在世界空間由 Vector3 翻譯。


產生一個 CFrame 在世界空間中由負 Vector3 翻譯。