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()
กลับไปที่ไอดีที่ว่างเปล่า CFrame
กลับมาพร้อมกับการหมุน CFrame โดยไม่มีการหมุนกับตำแหน่งของ Vector3 ที่ให้
กลับมาที่ CFrame ด้วยตำแหน่งของ Vector3 ตัวแรกและทิศทางที่ชี้ไปที่ตัวที่สอง
กลับมาที่ CFrame ด้วยตำแหน่งที่ประกอบด้วย x , y และ 1> z1> ส่วนประกอบ
กลับ Datatype.CFrame จากตําแหน่ง ( x , y , 1> z1> ) และ quaternion ( 4> qX4> , 7> qY7> , 0> qZ0> , 3> q
กลับมาที่ตำแหน่ง ( CFrame , x , y ด้วยการหันเฉียวของแมทริคการหมุน
กลับมาที่ CFrame ด้วยตำแหน่งของ Vector3 ตัวแรกและทิศทางที่ชี้ไปที่ตัวที่สอง
กลับมาที่ CFrame ด้วยตำแหน่งของ Vector3 ตัวแรกและทิศทางที่เป็นไปตามแนวตั้งที่สอง
- fromRotationBetweenVectors(from : Vector3,to : Vector3)
กลับมาเป็น CFrame ที่แสดงตำแหน่งที่ต้องการสำหรับการหมุนจาก Vector3 ไปยังที่สองด้วยตำแหน่งตั้งค่าเป็นศูนย์
- fromEulerAngles(rx : number,ry : number,rz : number,order : Enum.RotationOrder)
กลับรายการ CFrame ที่หมุนจากมุม rx และ ry และ 1> rz1> ในระยะโจมตี การหมุนถูกประยุกต์ใน 4> enum.RotationOrder4> โดยมีค่าเริ
- fromEulerAnglesXYZ(rx : number,ry : number,rz : number)
กลับค่า CFrame หมุนจากมุม rx และ ry และ 1> rz1> ในระยะโดยใช้ 4> Enum.RotationOrder.XYZ4> .
- fromEulerAnglesYXZ(rx : number,ry : number,rz : number)
กลับค่า CFrame หมุนจากมุม rx , ry และ 1> rz1> ในระยะโดยใช้ 4> Capacity.RotationOrder.YXZ4> .
เทียบเท่ากับ fromEulerAnglesXYZ() .
- fromOrientation(rx : number,ry : number,rz : number)
เทียบเท่ากับ fromEulerAnglesYXZ() .
- fromAxisAngle(v : Vector3,r : number)
กลับรายการ CFrame ที่หมุนจากหน่วย Vector3 และการหมุนในระดับหน่วย
- fromMatrix(pos : Vector3,vX : Vector3,vY : Vector3,vZ : Vector3)
กลับสู่ CFrame จากการแปลและคอลัมน์ของคลังของการหมุน
คุณสมบัติ
ไอดี 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
กลับมาที่ CFrame ใหม่ที่ตั้งอยู่ที่ pos และหน้าต่างของ lookAt โดยอาจเข้าใจว่า 1> (0, 1, 0)1> เป็นสิ่งขึ้นของโลก
คอนสตรักเตอร์นี้ถูกแทนที่โดย CFrame.lookAt() ซึ่งประสบความสำเร็จในเป้าหมายที่คล้ายกัน มันยังคงอยู่เพื่อความสอดคล้องกับเวลาที่ผ่านมา
ในองศาเชิงสูง (ประมาณ 82 องศา) คุณอาจได้รับความไม่เสถียรของตัวเลข หากเป็นปัญหา หรือหากคุณต้องการตัวเลือก "
fromEulerAngles
กลับรายการ CFrame ที่หมุนจากมุม rx และ ry และ 1> rz1> ในระยะการหมุน การหมุนถูกประยุกต์ใน 4> Enum.RotationOrder4> โดยมีค
CFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(0, 0, rz) -- Z
พารามิเตอร์
fromEulerAnglesYXZ
กลับ CFrame หมุนจากมุม rx และ ry และ 1> rz1> ในระยะโดยใช้ 4> Capacity.RotationOrder.YXZ4> โดยใช้ 7> Capacity.RotationOrder.YXZ7> ในระยะเทียบเท่ากับ:
CFrame.fromEulerAngles(0, ry, 0) * -- YCFrame.fromEulerAngles(rx, 0, 0) * -- XCFrame.fromEulerAngles(0, 0, rz) -- Z
fromMatrix
กลับสู่ CFrame จากการแปลและคอลัมน์ของคลื่นการหมุน หาก vZ ถูกข้างออกจะคำนวณคอลัมน์ที่สามเป็น vX:Cross(vY).Unit
พารามิเตอร์
เทียบเท่ากับ RightVector
เทียบเท่ากับ - LookVector
คุณสมบัติ
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> หากคุณไม่