CFrame
*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 Eulerlocal 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 Kanan | YVector, Up Vector | ZVector, -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
- new()
Mengembalikan identitas kosong CFrame .
Mengembalikan CFrame dengan tidak ada rotasi dengan posisi Vector3 yang diberikan.
Mengembalikan CFrame dengan posisi dari Vector3 pertama dan orientasi yang menunjuk ke arah kedua.
Mengembalikan CFrame dengan posisi terdiri dari komponen yang disediakan x, y, dan 1> z1> .
Mengembalikan Datatype.CFrame dari posisi ( x , y , 1> z1> ) dan kuaternion ( 4> qX4> , 7> qY7> , 0> qZ0> , CFrame3> ) .
Mengembalikan CFrame dari posisi ( x , y , 1> z1> ) dengan orientasi yang ditentukan oleh matriksi rotasi.
Mengembalikan CFrame dengan posisi dari Vector3 pertama dan orientasi yang menunjuk ke arah kedua.
Mengembalikan CFrame dengan posisi dari Vector3 pertama dan orientasi yang diarahkan di sepanjang kedua.
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
Mengembalikan CFrame mewakili orientasi yang dibutuhkan untuk berputar dari yang pertama Vector3 ke yang kedua, dengan posisi ditetapkan ke nol.
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
Mengembalikan CFrame berputar dari sudut rx , ry , dan 1> rz1> di radians. Rotasi diterapkan dalam opsi 4> Enum.RotationOrder4> dengan default 7> XYZ7> .
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
Mengembalikan CFrame berputar dari sudut rx , ry , dan 1> rz1> di radians menggunakan 4> Enum.RotationOrder.XYZ4> .
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
Mengembalikan CFrame berputar dari sudut rx , ry , dan 1> rz1> di radians menggunakan 4> Enum.RotationOrder.YXZ4> .
Setara dengan fromEulerAnglesXYZ() .
- fromOrientation(rx : number,ry : number,rz : number)
Setara dengan fromEulerAnglesYXZ() .
- fromAxisAngle(v : Vector3,r : number)
Mengembalikan CFrame berputar dari unit Vector3 dan rotasi dalam radian.
- fromMatrix(pos : Vector3,vX : Vector3,vY : Vector3,vZ : Vector3)
Mengembalikan CFrame dari terjemahan dan kolom dari matriks rotasi.
Properti
Sebuah identitas CFrame tanpa terjemahan atau rotasi.
Posisi 3D dari CFrame.
Sebuah salinan dari CFrame tanpa terjemahan.
Koordinat X dari posisi.
Koordinat Y dari posisi.
Koordinat Z dari posisi.
Komponen arah depan dari objek CFrame orientasi, setara dengan bentuk negatif dari ZVector .
Komponen arah kanan dari objek CFrame objek.
Komponen ke arah atas dari objek CFrame orientasi.
Setara dengan RightVector .
Setara dengan UpVector .
Komponen Z dari objek CFrame orientasi. Setara dengan kolom ketiga dari matriksi rotasi.
Metode
Mengembalikan kebalikan dari CFrame .
Mengembalikan 2 Datatype.CFrame antara dirinya sendiri dan goal dengan persentase alpha.
Mengembalikan salinan ortimal dari CFrame .
Menerima satu atau lebih CFrame objek dan mengembalikannya berubah dari objek ke ruang dunia.
Menerima satu atau lebih CFrame objek dan mengembalikannya berubah dari dunia ke ruang objek.
Menerima satu atau lebih Vector3 objek dan mengembalikannya berubah dari objek ke ruang dunia.
Menerima satu atau lebih Vector3 objek dan mengembalikannya berubah dari dunia ke ruang objek.
Menerima satu atau lebih Vector3 objek dan mengembalikannya berputar dari objek ke ruang dunia.
Menerima satu atau lebih objek Vector3 dan mengembalikannya berputar dari ruang dunia ke ruang objek.
Mengembalikan nilai x , y , z , 1>
Mengembalikan sudut kira-kira yang dapat digunakan untuk menghasilkan CFrame menggunakan Enum.RotationOrder yang opcional.
Mengembalikan sudut kira-kira yang dapat digunakan untuk menghasilkan CFrame menggunakan Enum.RotationOrder.XYZ .
Mengembalikan sudut kira-kira yang dapat digunakan untuk menghasilkan CFrame menggunakan Enum.RotationOrder.YXZ .
Setara dengan CFrame:ToEulerAnglesYXZ() .
Mengembalikan tuple dari Vector3 dan nomor yang mewakili rotasi CFrame di representasi sudut-sudut.
Setara dengan CFrame:GetComponents() .
Mengembalikan true jika 'Datatype.CFrame' lainnya cukup dekat dengan 'Datatype.CFrame' ini dalam posisi dan rotasi.
Operasi Matematika
Konstruktor
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
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) .
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) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(0, 0, rz) -- Z
Parameter
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) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(0, 0, rz) -- Z
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) * -- YCFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, 0, rz) -- Z
fromMatrix
Mengembalikan CFrame dari terjemahan dan kolom-kolom dari matriks rotasi. Jika vZ dikecualikan, kolom ketiga dihitung sebagai vX:Cross(vY).Unit.
Parameter
Setara dengan RightVector .
Setara dengan - LookVector .
Properti
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
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
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
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