CFrame

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Typ danych CFrame , skrót koordynować ramę, opisuje pozycję i orientację 3D. Jest składany z komponentu pozycyjnego i komponentu 2>rotacyjnego2> i zawiera niezbędne operacje arytmetyczne do pracy z d danymi na Roblox.


-- Utwórz CFrame na pewnym położeniu i obrocie Euler
local cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)

Aby zapoznać się z CFrame wpisywaćdanych, zobacz Kadry.

Komponent pozycyjny

Komponent pozycyjny jest dostępny jako Vector3. Ponadto pozycja komponentów CFrame jest również dostępna w X, 1> Datatype.CFrame.Y|Y1>

Komponent rotacyjny

CFrame przechowuje 3

Poniższy tabela reprezentuje matrycę rotacji obiektu CFrame i jej związek z dostępnymi właściwościami wectora, takimi jak LookVector i RightVector. Mesk pojedynczych komponentów rotacji matrycy jest rzadko użyteczne sam w sobie, ale w


<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, PraweVectorYVector, UpVectorZVector, -LookVector

^ Spróbuj ponownie Datatype.CFrame.LookVector|LookVector przedstawia komponenty kolumy negowanej. Datatype.CFrame.LookVector jest użyteczny, ponieważ wiele 1> Class.Instance|Instances1> takich jak 4> Class.

Podsumowanie

Konstruktorzy

Właściwości

Metody

Działania matematyczne

Konstruktorzy

new

Utworzy pustą tożsamość CFrame .

new

Zwraca CFrame bez obrotu z pozycją dostarczonego Vector3 .

Parametry

pos: Vector3

new

Zwraca nowy CFrame położony w pos i twarz w kierunku lookAt, z założeniem, że 1> (0, 1, 0)1> jest uważany za "w górę" w przestrzeni świata.

Ten konstruktor overload został zastąpiony przez CFrame.lookAt() , które osiąga podobny cel. pozostaje dla celu zgodności z poprzednimi wersjami.

W wysokich kątach nachoszenia (około 82 stopnie) możesz doświadczyć niesprawidłowej stabilności liczbowej. Jeśli jest to problem lub wymagasz innego wektora "w górę" użyj CFrame.fromMatrix() , aby lepiej zbudować Datatype.CFrame

Parametry

pos: Vector3
lookAt: Vector3

new

Zwraca CFrame z pozycją składającą się z dostarczonych x , y i 1> z1> komponentów.

Parametry

new

Zwraca CFrame z pozycji ( x , y , 1> z1> ) i kwaternionu ( 4> qX4> , 7> qY

Parametry

new

Tworzy CFrame z pozycji ( x , y , 1> z1> ) z określonym przez matrycę obrotową orientacją.

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

Parametry

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

lookAt

Zwraca nowy CFrame z pozycją at i oblicie w kierunku lookAt, opcjonalnie określając kierunek w górę ( 1> up1> ) z domyślną wartością 4> (0, 1, 0)4> .

Parametry

lookAt: Vector3
Wartość domyślna: Vector3.yAxis

lookAlong

Zwraca nowy CFrame z pozycją at i oblicie direction , opcjonalnie określając kierunek w górę ( 1> up1> ) z domyślnym 4> (0, 1, 0)4> .

Ten konstruktor jest równoznaczny z CFrame.lookAt(at, at + direction) .

Parametry

direction: Vector3
Wartość domyślna: Vector3.yAxis

fromRotationBetweenVectors

Zwraca CFrame, którego orientacja jest wymagana do obrotu z pierwszego Vector3 do drugiego, z ustawieniem pozycji na zero.

Parametry

from: Vector3

Wektor przedstawiający kierunek "z".

Wektor przedstawiający kierunek "do".

fromEulerAngles

Zwraca obrócony CFrame z kątów rx , ry i 1> rz1> w stopniach. Obroty są stosowane w opcjonalnym 4> Enum.RotationOrder4> z domyślnym 7> XYZ7> , równającym się z:


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

Parametry

rx: number
ry: number
rz: number
Wartość domyślna: Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

Zwraca obrócony CFrame z kątów rx , ry i 1> rz1> w radianach używając 4> Enum.RotationOrder.XYZ4>, równoznaczny z:


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

Parametry

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

Zwraca obrócony CFrame z kątów rx , ry i 1> rz1> w radianach używając 4> Enum.RotationOrder.YXZ4>, równoznaczny z:


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

Parametry

rx: number
ry: number
rz: number

Angles

Równoznaczny z fromEulerAnglesXYZ() .

Parametry

rx: number
ry: number
rz: number

fromOrientation

Równoznaczny z fromEulerAnglesYXZ() .

Parametry

rx: number
ry: number
rz: number

fromAxisAngle

Zwraca obrócony CFrame z jednostki Vector3 i rotacji w stopniach.

Parametry

fromMatrix

Zwraca CFrame z tłumaczenia i kolumny matrycy rotacyjnej. Jeśli vZ jest wykluczony, trzecia kolumna jest obliczana jako vX:Cross(vY).Unit.

Parametry

pos: Vector3

Pozycja 3D CFrame .

Równoznaczny z RightVector .

Równoznaczny z UpVector .

Równoznaczny z - LookVector .

Właściwości

identity

Tożsamość CFrame bez tłumaczenia lub obrotu. Ta właściwość jest konstytucją i musi być dostępna globalnie, w przeciwieństwie do indywidualnego obiektu CFrame.

Position

Pozycja 3D CFrame .

Rotation

Kopia CFrame bez tłumaczenia.

Koordynata X pozycji.

Koordynata Y pozycji.

Koordynata Z pozycji.

LookVector

Komponent kierunku przodu obiektu CFrame , równoznaczny z negowanym ZVector lub negowaną trzecią kolumną matrycy rotacyjnej.


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)

Dodawanie obiektu CFrame z LookVector do siebie wytwarza CFrame przesuniętą w przód w kierunku, w którym znajduje się przez 1 jednostkę.

RightVector

Komponent kierunku prawego obiektu CFrame . Równoznaczny z XVector lub pierwszą kolumną matrycy rotacyjnej.


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

Komponent w górę CFrame obiektu. Równoznaczne z YVector lub drugą kolumną matrycy rotacji.


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

Komponent X obiektu CFrame orientacji. Równoznaczne z RightVector lub pierwszą kolumną matrycy rotacyjnej.


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

Komponent Y w obiekcie CFrame orientacji. Równoznaczne z UpVector lub drugą kolumną matrycy rotacyjnej.


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

Komponent Z obiektu CFrame orientacji. Równoznaczny z negowanym LookVector lub trzecim kolumem matrycy rotacyjnej.


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)

Metody

Inverse

Zwraca przeciwieństwo z CFrame .

Zwroty

Lerp

Zwraca CFrame z interpolacją między sobą i goal przez część alpha.

Parametry

goal: CFrame
alpha: number

Zwroty

Orthonormalize

Zwraca orthonormalizowaną kopię CFrame . Właściwość BasePart.CFrame automatycznie stosuje orthonormalizację, ale inne API, które przyjmują CFrames, nie, więc ten metod jest czasami niezbędny, gdy aktualizujesz 2>Datatype.CFrame2> i

Zwroty

ToWorldSpace

Otrzymuje jeden lub więcej obiektów CFrame i wypatryuje ich przekształconych z obiektu do przestrzeni świata. Równoznaczne z:

CFrame * cf

Parametry

Zwroty

ToObjectSpace

Otrzymuje jeden lub więcej obiektów CFrame i wszystkie zostaną przekształcone z obszaru świata do przestrzeni obiektu. Równoznaczne z:

CFrame:Inverse() * cf

Parametry

Zwroty

PointToWorldSpace

Otrzymuje jeden lub więcej obiektów Vector3 i wypatryuje ich przekształconych z obiektu do przestrzeni świata. Równoznaczne z:

CFrame * v3

Parametry

Zwroty

PointToObjectSpace

Otrzymuje jeden lub więcej obiektów Vector3 i wszystkie zostaną przekształcone z obszaru świata do przestrzeni obiektu. Równoznaczne z:

CFrame:Inverse() * v3

Parametry

Zwroty

VectorToWorldSpace

Otrzymuje jeden lub więcej obiektów Vector3 i wszystkie zwraca do obiektu w przestrzeni obiektu. Równoznaczne z:

(CFrame - CFrame.Position) * v3

Parametry

Zwroty

VectorToObjectSpace

Otrzymuje jeden lub więcej obiektów Vector3 i wypatryuje ich w obszarze obiektu z obrotu z świata do przestrzeni obiektu. Równoznaczne z:

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

Parametry

Zwroty

GetComponents

Zwraca wartości x, y, z, 1> R0

Zwroty

ToEulerAngles

Zwraca około kąty, które można użyć do generowania CFrame przy użyciu opcjonalnego Enum.RotationOrder. Jeśli nie dostarczasz order, metoda używa 1> Container.RotationOrder.XYZ1>.

Parametry

Wartość domyślna: Enum.RotationOrder.XYZ

ToEulerAnglesXYZ

Zwraca około kąty, które można użyć do generowania CFrame przy użyciu Enum.RotationOrder.XYZ .

ToEulerAnglesYXZ

Zwraca około kąty, które można użyć do generowania CFrame przy użyciu Enum.RotationOrder.YXZ.

ToOrientation

Równoznaczny z CFrame:ToEulerAnglesYXZ() .

ToAxisAngle

Zwraca Vector3 i numer, które reprezentują rotację CFrame w przedstawieniu kątowo-świetlnym.

components

Równoznaczny z CFrame:GetComponents() .

Zwroty

FuzzyEq

Wykonuje true jeśli inny "Datatype.CFrame" jest wystarczająco blisko tego "Datatype.CFrame" w obu pozycji i obrotu. Wartość eps jest używana do kontroli tolerancji dla tej podobieństwa. Ta wartość jest opcjonalna i powinna być małą pozytywną wartością, jeśli zostanie dostarczona. W

Parametry

other: CFrame
epsilon: number
Wartość domyślna: 0.00001 (1e-5)

Zwroty

Działania matematyczne


Produkuje nowy CFrame reprezentujący kompozycję dwóch CFrames.


Produces a Vector3 transformed from object to world coordinates.


Produces a CFrame translated in world space by the Vector3 .


Produces a CFrame translated in world space by the negative Vector3 .