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, UpVectorZVector, -LookVector °

† โดยทั่วไปจะไม่เหมือนกับคนอื่น ๆ ในขณะที่ Datatype.CFrame.LookVector|LookVector เป็นตัวแทนของส่วนประกอบคอลั

สรุป

คอนสตรัคเตอร์

  • new()

    กลับไปที่ไอดีที่ว่างเปล่า CFrame

  • new(pos : Vector3)

    กลับมาพร้อมกับการหมุน CFrame โดยไม่มีการหมุนกับตำแหน่งของ Vector3 ที่ให้

  • new(pos : Vector3,lookAt : Vector3)

    กลับมาที่ CFrame ด้วยตำแหน่งของ Vector3 ตัวแรกและทิศทางที่ชี้ไปที่ตัวที่สอง

  • new(x : number,y : number,z : number)

    กลับมาที่ CFrame ด้วยตำแหน่งที่ประกอบด้วย x , y และ 1> z1> ส่วนประกอบ

  • new(x : number,y : number,z : number,qX : number,qY : number,qZ : number,qW : number)

    กลับ Datatype.CFrame จากตําแหน่ง ( x , y , 1> z1> ) และ quaternion ( 4> qX4> , 7> qY7> , 0> qZ0> , 3> q

  • new(x : number,y : number,z : number,R00 : number,R01 : number,R02 : number,R10 : number,R11 : number,R12 : number,R20 : number,R21 : number,R22 : number)

    กลับมาที่ตำแหน่ง ( CFrame , x , y ด้วยการหันเฉียวของแมทริคการหมุน

  • lookAt(at : Vector3,lookAt : Vector3,up : Vector3)

    กลับมาที่ CFrame ด้วยตำแหน่งของ Vector3 ตัวแรกและทิศทางที่ชี้ไปที่ตัวที่สอง

  • lookAlong(at : Vector3,direction : Vector3,up : Vector3)

    กลับมาที่ CFrame ด้วยตำแหน่งของ Vector3 ตัวแรกและทิศทางที่เป็นไปตามแนวตั้งที่สอง

  • กลับมาเป็น CFrame ที่แสดงตำแหน่งที่ต้องการสำหรับการหมุนจาก Vector3 ไปยังที่สองด้วยตำแหน่งตั้งค่าเป็นศูนย์

  • กลับรายการ CFrame ที่หมุนจากมุม rx และ ry และ 1> rz1> ในระยะโจมตี การหมุนถูกประยุกต์ใน 4> enum.RotationOrder4> โดยมีค่าเริ

  • กลับค่า CFrame หมุนจากมุม rx และ ry และ 1> rz1> ในระยะโดยใช้ 4> Enum.RotationOrder.XYZ4> .

  • กลับค่า CFrame หมุนจากมุม rx , ry และ 1> rz1> ในระยะโดยใช้ 4> Capacity.RotationOrder.YXZ4> .

  • Angles(rx : number,ry : number,rz : number)

    เทียบเท่ากับ fromEulerAnglesXYZ() .

  • เทียบเท่ากับ fromEulerAnglesYXZ() .

  • กลับรายการ 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

  • Lerp(goal : CFrame,alpha : number):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() .

  • FuzzyEq(other : CFrame,epsilon : number):bool

    กลับ true หากค่า 'Datatype.CFrame' อื่น ๆ ใกล้เคียงกับค่านี้ในตำแหน่งและการหมุนทั้งหมด

การดำเนินการทางคณิตศาสตร์

คอนสตรัคเตอร์

new

สร้างไอดีที่ว่างเปล่า CFrame .

new

กลับมาพร้อมกับการหมุน CFrame โดยไม่มีการหมุนกับตำแหน่งของ Vector3 ที่ให้

พารามิเตอร์

pos: Vector3

new

กลับมาที่ CFrame ใหม่ที่ตั้งอยู่ที่ pos และหน้าต่างของ lookAt โดยอาจเข้าใจว่า 1> (0, 1, 0)1> เป็นสิ่งขึ้นของโลก

คอนสตรักเตอร์นี้ถูกแทนที่โดย CFrame.lookAt() ซึ่งประสบความสำเร็จในเป้าหมายที่คล้ายกัน มันยังคงอยู่เพื่อความสอดคล้องกับเวลาที่ผ่านมา

ในองศาเชิงสูง (ประมาณ 82 องศา) คุณอาจได้รับความไม่เสถียรของตัวเลข หากเป็นปัญหา หรือหากคุณต้องการตัวเลือก "

พารามิเตอร์

pos: Vector3
lookAt: Vector3

new

กลับมาที่ CFrame ด้วยตำแหน่งที่ประกอบด้วย x , y และ 1> z1> ส่วนประกอบ

พารามิเตอร์

new

กลับมาที่ตำแหน่ง ( CFrame , x , y และ quaternion ( 1> qX1> , 4> y4> , 7>

พารามิเตอร์

new

สร้าง CFrame จากตําแหน่ง ( x , y , 1> z1> ) ด้วยการจัดตําแหน่งที่ระบุโดยระบบหมุน

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

พารามิเตอร์

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

lookAt

กลับมาพร้อมกับตำแหน่งใหม่ CFrame ด้วยตำแหน่ง at และหน้าต่างของ lookAt โดยอาจระบุทิศทางขึ้น ( 1> up1> ) โดยค่าเริ่มต้นของ 4> (

พารามิเตอร์

lookAt: Vector3
ค่าเริ่มต้น: Vector3.yAxis

lookAlong

กลับมาพร้อมกับตำแหน่งใหม่ CFrame ด้วยตำแหน่ง at และหน้าต่าง direction ตามแนวตั้ง 1> number1> โดยมีตัวเลือกทางด้านบน ( 4> up4> ) โดย

ตัวนี้เท่ากับ CFrame.lookAt(at, at + direction)

พารามิเตอร์

direction: Vector3
ค่าเริ่มต้น: Vector3.yAxis

fromRotationBetweenVectors

กลับมาเป็น CFrame ที่แสดงตำแหน่งที่ต้องการสำหรับการหมุนจาก Vector3 ไปยังที่สองด้วยตำแหน่งตั้งค่าเป็นศูนย์

พารามิเตอร์

from: Vector3

เวกเตอร์ที่แสดงทิศทาง "จาก"

เป็นベクトอร์ที่แสดงทิศทาง "ไปยัง"

fromEulerAngles

กลับรายการ CFrame ที่หมุนจากมุม rx และ ry และ 1> rz1> ในระยะการหมุน การหมุนถูกประยุกต์ใน 4> Enum.RotationOrder4> โดยมีค


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

พารามิเตอร์

rx: number
ry: number
rz: number
ค่าเริ่มต้น: Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

กลับ CFrame หมุนจากมุม rx และ ry และ 1> rz1> ในระยะโดยใช้ 4> Capacity.RotationOrder.XYZ4> ที่เทียบเท่ากับ:


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

พารามิเตอร์

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

กลับ CFrame หมุนจากมุม rx และ ry และ 1> rz1> ในระยะโดยใช้ 4> Capacity.RotationOrder.YXZ4> โดยใช้ 7> Capacity.RotationOrder.YXZ7> ในระยะเทียบเท่ากับ:


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

พารามิเตอร์

rx: number
ry: number
rz: number

Angles

เทียบเท่ากับ fromEulerAnglesXYZ() .

พารามิเตอร์

rx: number
ry: number
rz: number

fromOrientation

เทียบเท่ากับ fromEulerAnglesYXZ() .

พารามิเตอร์

rx: number
ry: number
rz: number

fromAxisAngle

กลับรายการ CFrame ที่หมุนจากหน่วย Vector3 และการหมุนในระดับหน่วย

พารามิเตอร์

fromMatrix

กลับสู่ CFrame จากการแปลและคอลัมน์ของคลื่นการหมุน หาก vZ ถูกข้างออกจะคำนวณคอลัมน์ที่สามเป็น vX:Cross(vY).Unit

พารามิเตอร์

pos: Vector3

ตําแหน่ง 3D ของ CFrame

เทียบเท่ากับ RightVector

เทียบเท่ากับ UpVector

เทียบเท่ากับ - LookVector

คุณสมบัติ

identity

ไอดีนี้ CFrame โดยไม่มีการแปลหรือการหมุน สิ่งนี้เป็นค่า คงที่ และต้องเข้าถึงได้ทั่วโลกในขณะที่ผ่านการเข้าถึงโดยผ่านการเข้าถึงได้ทั่วโลกผ่านการเข้าถึงโดยผ่า

Position

ตําแหน่ง 3D ของ CFrame

Rotation

คัดลอกของ CFrame โดยไม่มีคำแปล

ตำแหน่ง X

ตำแหน่ง Y

ตำแหน่ง Z

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

ส่วน Y ของวัตถุ CFrame ออกแบบตำแหน่ง เทียบเท่ากับ UpVector หรือคอลัมที่สองของแมทริคการหมุน


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

ส่วนประกอบ 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)

วิธีการ

Inverse

กลับค่าตรงกันของ CFrame

ส่งค่ากลับ

Lerp

กลับมาที่ CFrame ที่เรียบร้อยระหว่างตัวเองและ goal โดยส่วนที่ alpha โดยส่วนที่ 2> Datatype.CFrame2> ของมัน Thai:กลับมาที่ Datatype.CFrame ที่เรียบร้อยระหว่างตัวเองและ goal โดยส่ว

พารามิเตอร์

goal: CFrame
alpha: number

ส่งค่ากลับ

Orthonormalize

กลับคืนคัดลอกอธิปไตยของ CFrame อันธรรมาธิปไตย สมบูรณ์ แต่คัดลอกอธิปไตยของ BasePart.CFrame จะใช้การอธิปไตยอัตโนมัติ

ส่งค่ากลับ

ToWorldSpace

รับหนึ่งหรือมากกว่า CFrame วัตถุและนำกลับมาเปลี่ยนแปลงจากวัตถุสู่พื้นที่โลก เทียบเท่ากับ:

CFrame * cf

พารามิเตอร์

ส่งค่ากลับ

ToObjectSpace

รับหนึ่งหรือมากกว่า CFrame วัตถุและนำกลับมาเปลี่ยนแปลงจากโลกสู่พื้นที่วัตถุ เทียบเท่ากับ:

CFrame:Inverse() * cf

พารามิเตอร์

ส่งค่ากลับ

PointToWorldSpace

รับหนึ่งหรือมากกว่า Vector3 วัตถุและนำกลับมาเปลี่ยนแปลงจากวัตถุเป็นพื้นที่โลก เทียบเท่ากับ:

CFrame * v3

พารามิเตอร์

ส่งค่ากลับ

PointToObjectSpace

รับหนึ่งหรือมากกว่า Vector3 วัตถุและนำกลับมาเปลี่ยนแปลงจากโลกสู่พื้นที่วัตถุ เทียบเท่ากับ:

CFrame:Inverse() * v3

พารามิเตอร์

ส่งค่ากลับ

VectorToWorldSpace

รับหนึ่งหรือมากกว่า Vector3 วัตถุและส่งคืนพวกเขาในรูปแบบหมุนจากวัตถุสู่พื้นที่โลก เทียบเท่ากับ:

(CFrame - CFrame.Position) * v3

พารามิเตอร์

ส่งค่ากลับ

VectorToObjectSpace

รับหนึ่งหรือมากกว่า Vector3 วัตถุและนำกลับมาในรูปแบบหมุนวนจากโลกสู่พื้นที่วัตถุ เทียบเท่ากับ:

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

พารามิเตอร์

ส่งค่ากลับ

GetComponents

กลับค่า x , y , z , 1>

ส่งค่ากลับ

ToEulerAngles

กลับมุมที่ใกล้เคียงที่สามารถใช้เพื่อสร้าง CFrame โดยใช้ Enum.RotationOrder อย่างอนุรักษ์นิยม หากคุณไม่ให้ order คุณจะใช้วิธี 1> Container.RotationOrder.XYZ1> หากคุณไม่

พารามิเตอร์

ค่าเริ่มต้น: Enum.RotationOrder.XYZ

ส่งค่ากลับ

ToEulerAnglesXYZ

กลับมุมที่ใกล้เคียงที่สามารถใช้เพื่อสร้าง CFrame โดยใช้ Enum.RotationOrder.XYZ

ส่งค่ากลับ

ToEulerAnglesYXZ

กลับมุมที่ใกล้เคียงที่สามารถใช้เพื่อสร้าง CFrame โดยใช้ Enum.RotationOrder.YXZ

ส่งค่ากลับ

ToOrientation

เทียบเท่ากับ CFrame:ToEulerAnglesYXZ() .

ส่งค่ากลับ

ToAxisAngle

กลับรายการของ Datatype.Vector3 และตัวเลขที่แทนที่การหมุนของ CFrame ในการแสดงผลแนวโน้ม

ส่งค่ากลับ

components

เทียบเท่ากับ CFrame:GetComponents() .

ส่งค่ากลับ

FuzzyEq

กลับ true หาก 'Datatype.CFrame' อื่นๆ อยู่ใกล้เคียงกับ 'Datatype.CFrame' นี้ในตำแหน่งทั้งหมดและการหมุน มูลค่า eps จะใช้เพื่อควบคุมความอดทนสำหร

พารามิเตอร์

other: CFrame
epsilon: number
ค่าเริ่มต้น: 0.00001 (1e-5)

ส่งค่ากลับ

การดำเนินการทางคณิตศาสตร์


ผลิต CFrame ใหม่ที่表示การรวมกันของสอง CFrames


ผลิต Vector3 ที่แปลงจากวัตถุเป็นคู่มือโลก


ผลิต CFrame ที่แปลในพื้นที่โลกโดย Vector3


ผลิต CFrame ที่แปลในพื้นที่โลกโดย negativ Vector3