CFrame

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Jenis data CFrame , singkatan dari koordinasikan frame , menggambarkan posisi dan orientasi 3D. Ini terdiri dari komponen posisional dan komponen 1>rotasi1> dan termasuk operasi aritmatika dasar untuk bekerja dengan data 3D di Roblox.


-- Buat CFrame di posisi tertentu dan rotasi Euler
local cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)

Untuk pengantar ke ketikdata CFrame, lihat CFrames.

Komponen Posisi

Komponen posisional tersedia sebagai Vector3 . Selain itu, komponen dari objek CFrame objek's posisi juga tersedia dalam X , 1> Dat

Komponen Rotasi

CFrame menyimpan

Tabel di bawah ini mewakili komponen dari objek CFrame matriksi rotasi dan hubungannya dengan propinsiktor vektor yang tersedia seperti LookVector dan RightVector . Meskipun komponen individual dari matriksi rotasi tidak jarang berguna send


<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, Nilai Vector KananYVector, Up VectorZVector, -LihatVector ^ ^

^ Datatype.CFrame.LookVector|LookVector mewakili komponen kolom yang dibantah. Komponen kolom Datatype.CFrame.LookVector|LookVector berguna karena banyak 1>Class.Instance|Instances1> seperti 4>Class.Camera

Rangkuman

Konstruktor

Properti

Metode

Operasi Matematika

Konstruktor

new

Menciptakan identitas kosong CFrame .

new

Mengembalikan CFrame dengan tidak ada rotasi dengan posisi Vector3 yang diberikan.

Parameter

pos: Vector3

new

Mengembalikan CFrame baru yang berlokasi di pos dan menghadap ke arah lookAt, mengasumsikan bahwa 2>(0, 1, 0)2> dianggap sebagai “naik” di ruang dunia.

Kesalahan konstruktor ini telah digantikan oleh CFrame.lookAt() , yang mencapai tujuan serupa. Tetap untuk tujuan kompatibilitas mundur.

Pada sudut tinggi (sekitar 82 derajat), Anda mungkin mengalami ketidakstabilan numerik. Jika ini adalah masalah, atau jika Anda memerlukan vektor "up" yang berbeda, gunakan CFrame.fromMatrix() untuk membangun lebih akurasi

Parameter

pos: Vector3
lookAt: Vector3

new

Mengembalikan CFrame dengan posisi terdiri dari komponen yang disediakan x, y, dan 1> z1> .

Parameter

new

Mengembalikan CFrame dari posisi ( x , y , 1> z1> ) dan quaternion ( 4> qX4> , 7> qY</

Parameter

new

Menciptakan CFrame dari posisi ( x , y , 1> z1> ) dengan orientasi yang ditentukan oleh matriksi rotasi.

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

Parameter

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

lookAt

Mengembalikan CFrame baru dengan posisi at dan menghadap ke arah lookAt, opsi untuk menentukan arah ke atas ( 2>up2> ) dengan default 5>(0, 1, 0)5> .

Parameter

lookAt: Vector3
Nilai Default: Vector3.yAxis

lookAlong

Mengembalikan CFrame baru dengan posisi at dan menghadap ke arah direction , secara op션 menentukan arah ke atas ( 2>up2> ) dengan default 5>(0, 1, 0)5> .

Konstruktor ini setara dengan CFrame.lookAt(at, at + direction) .

Parameter

direction: Vector3
Nilai Default: Vector3.yAxis

fromRotationBetweenVectors

Mengembalikan CFrame mewakili orientasi yang dibutuhkan untuk berputar dari yang pertama Vector3 ke yang kedua, dengan posisi ditetapkan ke nol.

Parameter

from: Vector3

Vector mewakili arah "dari".

Vector mewakili arah "untuk".

fromEulerAngles

Mengembalikan CFrame berputar dari sudut rx , ry , dan 1> rz1> di radians. Rotasi diterapkan dalam opsi 4> Container.RotationOrder4> dengan default 7> XYZ7>, setara dengan:


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

Parameter

rx: number
ry: number
rz: number
Nilai Default: Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

Mengembalikan CFrame berputar dari sudut rx , ry , dan 1> rz1> di radians menggunakan 4> Enum.RotationOrder.XYZ4>, setara dengan:


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

Parameter

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

Mengembalikan CFrame berputar dari sudut rx , ry , dan 1> rz1> di radians menggunakan 4> Enum.RotationOrder.YXZ4>, setara dengan:


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

Parameter

rx: number
ry: number
rz: number

Angles

Setara dengan fromEulerAnglesXYZ() .

Parameter

rx: number
ry: number
rz: number

fromOrientation

Setara dengan fromEulerAnglesYXZ() .

Parameter

rx: number
ry: number
rz: number

fromAxisAngle

Mengembalikan CFrame berputar dari unit Vector3 dan rotasi dalam radian.

Parameter

fromMatrix

Mengembalikan CFrame dari terjemahan dan kolom-kolom dari matriks rotasi. Jika vZ dikecualikan, kolom ketiga dihitung sebagai vX:Cross(vY).Unit.

Parameter

pos: Vector3

Posisi 3D dari CFrame.

Setara dengan RightVector .

Setara dengan UpVector .

Setara dengan - LookVector .

Properti

identity

Sebuah identitas CFrame dengan tanpa terjemahan atau rotasi. Item ini adalah konstan dan harus diakses secara global daripada melalui objek CFrame individual.

Position

Posisi 3D dari CFrame.

Rotation

Sebuah salinan dari CFrame tanpa terjemahan.

Koordinat X dari posisi.

Koordinat Y dari posisi.

Koordinat Z dari posisi.

LookVector

Komponen arah ke depan dari objek CFrame objek, setara dengan negatif ZVector atau kolom negatif pada matriksi rotasi.


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)

Menambahkan objek CFrame ke dirinya sendiri menghasilkan LookVector yang pindah ke depan dalam arah mana pun yang dihadapinya dengan satu unit.

RightVector

Komponen arah kanan dari objek CFrame orientasi. Setara dengan XVector atau kolom pertama dari matriksi rotasi.


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

Komponen ke arah atas dari objek CFrame orientasi. Setara dengan YVector atau kolom kedua dari matriksi rotasi.


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

Komponen X dari objek CFrame orientasi. Setara dengan RightVector atau kolom pertama dari matriksi rotasi.


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

Komponen Y dari objek CFrame orientasi. Setara dengan UpVector atau kolom kedua dari matriksi rotasi.


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

Komponen Z dari objek CFrame orientasi. Setara dengan negatif LookVector atau kolom ketiga dari matriksi rotasi.


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)

Metode

Inverse

Mengembalikan kebalikan dari CFrame .

Memberikan nilai

Lerp

Mengembalikan 2 Datatype.CFrame antara dirinya sendiri dan goal dengan persentase alpha.

Parameter

goal: CFrame
alpha: number

Memberikan nilai

Orthonormalize

Mengembalikan salinan orttomatis dari CFrame . Propiedad BasePart.CFrame menerapkan otomatis orttomatisasi, tetapi API lain yang mengambil CFrames tidak, jadi metode ini diperlukan ketika meningkatkan secara bertahap sebuah

Memberikan nilai

ToWorldSpace

Menerima satu atau lebih objek CFrame dan mengembalikannya berubah dari objek ke ruang dunia. Setara dengan:

CFrame * cf

Parameter

Memberikan nilai

ToObjectSpace

Menerima satu atau lebih objek CFrame dan mengembalikannya berubah dari dunia ke ruang objek. Setara dengan:

CFrame:Inverse() * cf

Parameter

Memberikan nilai

PointToWorldSpace

Menerima satu atau lebih objek Vector3 dan mengembalikannya berubah dari objek ke ruang dunia. Setara dengan:

CFrame * v3

Parameter

Memberikan nilai

PointToObjectSpace

Menerima satu atau lebih objek Vector3 dan mengembalikannya berubah dari dunia ke ruang objek. Setara dengan:

CFrame:Inverse() * v3

Parameter

Memberikan nilai

VectorToWorldSpace

Menerima satu atau lebih objek Vector3 dan mengembalikannya berputar dari objek ke ruang dunia. Sama dengan:

(CFrame - CFrame.Position) * v3

Parameter

Memberikan nilai

VectorToObjectSpace

Menerima satu atau lebih objek Vector3 dan mengembalikannya berputar dari ruang dunia ke ruang objek. Sama dengan:

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

Parameter

Memberikan nilai

GetComponents

Mengembalikan nilai x , y , z , 1>

Memberikan nilai

ToEulerAngles

Mengembalikan sudut kira-kira yang dapat digunakan untuk menghasilkan CFrame menggunakan opsi Enum.RotationOrder . Jika Anda tidak menyediakan order, metode menggunakan 1> Container.RotationOrder.XYZ1> .

Parameter

Nilai Default: Enum.RotationOrder.XYZ

Memberikan nilai

ToEulerAnglesXYZ

Mengembalikan sudut kira-kira yang dapat digunakan untuk menghasilkan CFrame menggunakan Enum.RotationOrder.XYZ .

Memberikan nilai

ToEulerAnglesYXZ

Mengembalikan sudut kira-kira yang dapat digunakan untuk menghasilkan CFrame menggunakan Enum.RotationOrder.YXZ .

Memberikan nilai

ToOrientation

Memberikan nilai

ToAxisAngle

Mengembalikan tuple dari Vector3 dan nomor yang mewakili rotasi CFrame di representasi sudut-sudut.

Memberikan nilai

components

Setara dengan CFrame:GetComponents() .

Memberikan nilai

FuzzyEq

Mengembalikan true jika 'Datatype.CFrame' lainnya cukup dekat dengan 'Datatype.CFrame' ini dalam posisi dan rotasi.Nilai eps digunakan untuk mengontrol tolerans untuk kesamaan ini.Nilai ini adalah opsional dan harus menjadi nilai kecil jika diberikan.Nilai untuk posisi adalah komponen-wise, dan untuk rot

Parameter

other: CFrame
epsilon: number
Nilai Default: 0.00001 (1e-5)

Memberikan nilai

Operasi Matematika


Memproduksi CFrame baru yang mewakili komposisi dari dua CFrames .


Memproduksi Vector3 yang berubah dari objek ke koordinat dunia.


Memproduksi CFrame yang diterjemahkan dalam ruang dunia oleh Vector3 .


Memproduksi CFrame yang diterjemahkan dalam ruang dunia oleh negatif Vector3 .