CFrame
*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 Eulerlocal 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, PraweVector | YVector, UpVector | ZVector, -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
- new()
Zwraca pustą tożsamość CFrame .
Zwraca CFrame z pozycją pierwszego Vector3 i kierunkiem wskazanym na drugie.
Zwraca CFrame z pozycją składającą się z dostarczonych x , y i 1> z1> komponentów.
Zwraca Datatype.CFrame z pozycji ( x , y , 1> z1> ) i kwaternii ( 4> qX4> , 7> qY7> , 0> qZ0> , CFrame3> ) .
Zwraca CFrame z pozycji ( x , y , 1> z1> ) z określonym przez matrycę obrotową orientacją.
Zwraca CFrame z pozycją pierwszego Vector3 i kierunkiem wskazanym na drugie.
Zwraca CFrame z położeniem pierwszy Vector3 i orientacją skierowaną w kierunku drugiego.
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
Zwraca CFrame, którego orientacja jest wymagana do obrotu z pierwszego Vector3 do drugiego, z ustawieniem pozycji na zero.
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
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> .
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
Zwraca obrócony CFrame z kątów rx , ry i 1> rz1> w radianach używając 4> Enum.RotationOrder.XYZ4> .
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
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 fromEulerAnglesXYZ() .
- fromOrientation(rx : number,ry : number,rz : number)
Równoznaczny z fromEulerAnglesYXZ() .
- fromAxisAngle(v : Vector3,r : number)
Zwraca obrócony CFrame z jednostki Vector3 i rotacji w stopniach.
- fromMatrix(pos : Vector3,vX : Vector3,vY : Vector3,vZ : Vector3)
Zwraca CFrame z tłumaczenia i kolumny matrycy rotacyjnej.
Właściwości
Tożsamość CFrame bez tłumaczenia lub obrotu.
Pozycja 3D CFrame .
Kopia CFrame bez tłumaczenia.
Koordynata X pozycji.
Koordynata Y pozycji.
Koordynata Z pozycji.
Przodem kierunku komponentu CFrame obiektu, równoznaczny z negatywną formą ZVector.
Komponent kierunkowy CFrame obiektu.
Komponent w górę kompozycji CFrame obiektu.
Równoznaczny z RightVector .
Równoznaczny z UpVector .
Komponent Z obiektu CFrame orientacji. Równoznaczny z trzecim kolorem kolumy rotacji.
Metody
Zwraca przeciwieństwo z CFrame .
Zwraca CFrame z interpolacją między sobą i goal przez część alpha.
Zwraca orthonormalizowaną kopię CFrame .
Otrzymuje jeden lub więcej obiektów CFrame i wszystkie zostaną przekształcone z obiektu do przestrzeni świata.
Otrzymuje jeden lub więcej obiektów CFrame i wszystkie zostaną przekształcone z obszaru świata do przestrzeni obiektu.
Otrzymuje jeden lub więcej obiektów Vector3 i wszystkie zostaną przekształcone z obiektu do przestrzeni świata.
Otrzymuje jeden lub więcej obiektów Vector3 i restituuje je przekształcone z obszaru świata do przestrzeni obiektu.
Otrzymuje jeden lub więcej obiektów Vector3 i wszystkie zwraca do świata przestrzeni obiektu.
Otrzymuje jeden lub więcej obiektów Vector3 i wszystkie zwraca do obszaru obiektu z obrotu z świata do przestrzeni obiektu.
Zwraca wartości x, y, z, 1> R0
Zwraca około kąty, które można użyć do generowania CFrame przy użyciu opcjonalnego Enum.RotationOrder .
Zwraca około kąty, które można użyć do generowania CFrame przy użyciu Enum.RotationOrder.XYZ .
Zwraca około kąty, które można użyć do generowania CFrame przy użyciu Enum.RotationOrder.YXZ.
Równoznaczny z CFrame:ToEulerAnglesYXZ() .
Zwraca Vector3 i numer, które reprezentują rotację CFrame w przedstawieniu kątowo-świetlnym.
Równoznaczny z CFrame:GetComponents() .
Wywraca true jeśli inny 'Datatype.CFrame' jest wystarczająco blisko tego 'Datatype.CFrame' w obu pozycji i obrotu.
Działania matematyczne
Konstruktorzy
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
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) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- JCFrame.fromEulerAngles(0, 0, rz) -- Z
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
Równoznaczny z RightVector .
Równoznaczny z - LookVector .
Właściwości
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
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
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
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
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