CFrame
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
ข้อมูลชนิด CFrame สั้น ๆ สำหรับ Robloxอธิบายตำแหน่งและการจัดเรียง มันประกอบด้วยส่วนประกอบ positional และส่วนประกอบ 1>rotational
-- สร้าง CFrame ที่ตำแหน่งที่กำหนดและ Euler การหมุนlocal cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)
สำหรับการแนะนำรูปแบบข้อมูล CFrame ให้ดูที่ CFrames
ส่วนประกอบที่ตำแหน่ง
ส่วนประกอบตำแหน่งสามารถใช้ได้ในรูปแบบ Vector3 นอกจากนี้, ส่วนประกอบของวัตถุ CFrame ยั
ส่วนประกอบการหมุน
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, เวกเตอร์ขวา | YVector, UpVector | ZVector, -LookVector ° |
---|
† โดยทั่วไปจะไม่เหมือนกับคนอื่น ๆ ในขณะที่ Datatype.CFrame.LookVector|LookVector เป็นตัวแทนของส่วนประกอบคอลั
สรุป
คอนสตรัคเตอร์
- new()
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
- fromOrientation(rx : number,ry : number,rz : number)
- fromAxisAngle(v : Vector3,r : number)
- fromMatrix(pos : Vector3,vX : Vector3,vY : Vector3,vZ : Vector3)
คุณสมบัติ
ไอดี CFrame โดยไม่มีการแปลหรือการหมุน
ตําแหน่ง 3D ของ CFrame
คัดลอกของ CFrame โดยไม่มีคำแปล
ตำแหน่ง X
ตำแหน่ง Y
ตำแหน่ง Z
ส่วนประกอบทิศทางหน้าของวัตถุ CFrame มีความเหมาะสมกับรูปร่างเชิงบวกของวัตถุ ZVector
ส่วนประกอบทางด้านขวาของวัตถุ CFrame นี้
ส่วนประกอบขึ้นของ CFrame ระบบทิศทาง
เทียบเท่ากับ RightVector
เทียบเท่ากับ UpVector
ส่วน Z ของวัตถุ CFrame ออกแบบตำแหน่ง. เทียบเท่ากับสามคอลัมของคลื่นสี่
วิธีการ
กลับค่าตรงกันของ CFrame
กลับมาที่ CFrame ที่เรียบร้อยระหว่างตัวเองและ goal โดยส่วนที่ alpha โดยส่วนที่ 2> Datatype.CFrame2> ของมัน Thai:กลับมาที่ Datatype.CFrame ที่เรียบร้อยระหว่างตัวเองและ goal โดยส่ว
กลับคัดลอกที่เป็นปกติของ CFrame
รับหนึ่งหรือมากกว่า CFrame วัตถุและนำกลับมาเปลี่ยนแปลงจากโลกสู่พื้นที่โลก
รับหนึ่งหรือมากกว่า CFrame วัตถุและนำกลับมาเปลี่ยนแปลงจากโลกสู่พื้นที่วัตถุ
รับหนึ่งหรือมากกว่า Vector3 วัตถุและนำกลับมาเปลี่ยนแปลงจากโลกสู่พื้นที่โลก
รับหนึ่งหรือมากกว่า Vector3 วัตถุและนำกลับมาเปลี่ยนแปลงจากโลกสู่พื้นที่วัตถุ
รับหนึ่งหรือมากกว่า Vector3 วัตถุและนำกลับมาให้หมุนจากวัตถุสู่พื้นที่โลก
รับหนึ่งหรือมากกว่า Vector3 วัตถุและนำกลับมาให้หมุนจากพื้นที่โลกสู่พื้นที่วัตถุ
กลับค่า x , y , z , 1>
กลับมุมที่ใกล้เคียงที่สามารถใช้เพื่อสร้าง CFrame โดยใช้ Enum.RotationOrder อย่างอนุรักษ์นิยม
กลับมุมที่ใกล้เคียงที่สามารถใช้เพื่อสร้าง CFrame โดยใช้ Enum.RotationOrder.XYZ
กลับมุมที่ใกล้เคียงที่สามารถใช้เพื่อสร้าง CFrame โดยใช้ Enum.RotationOrder.YXZ
เทียบเท่ากับ CFrame:ToEulerAnglesYXZ() .
กลับรายการของ Datatype.Vector3 และตัวเลขที่แทนที่การหมุนของ CFrame ในการแสดงผลแนวโน้ม
เทียบเท่ากับ CFrame:GetComponents() .
กลับ true หากค่า 'Datatype.CFrame' อื่น ๆ ใกล้เคียงกับค่านี้ในตำแหน่งและการหมุนทั้งหมด
การดำเนินการทางคณิตศาสตร์
คอนสตรัคเตอร์
new
fromEulerAngles
พารามิเตอร์
คุณสมบัติ
LookVector
ส่วนประกอบทิศทางหน้าของวัตถุ 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 เพิ่มขึ้น ในทิศทางที่มันหันไป โดย 1 หน่วย
RightVector
ส่วนประกอบทิศทางขวาของวัตถุ 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
ส่วนประกอบขึ้นแนวนอกของวัตถุ 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
ส่วน X ของวัตถุ 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
ZVector
ส่วนประกอบ Z ของวัตถุ CFrame การจัดตำแหน่งของมัน เทียบเท่ากับ negated 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)
วิธีการ
Orthonormalize
กลับคืนคัดลอกอธิปไตยของ CFrame อันธรรมาธิปไตย สมบูรณ์ แต่คัดลอกอธิปไตยของ BasePart.CFrame จะใช้การอธิปไตยอัตโนมัติ
ส่งค่ากลับ
ToEulerAngles
กลับมุมที่ใกล้เคียงที่สามารถใช้เพื่อสร้าง CFrame โดยใช้ Enum.RotationOrder อย่างอนุรักษ์นิยม หากคุณไม่ให้ order คุณจะใช้วิธี 1> Container.RotationOrder.XYZ1> หากคุณไม่