CFrame

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

CFrame veri türü, koordinat çerçevesi kısaltmasıyla, 3B konum ve yönünü tanımlar.Bir pozisyonel bileşen ve bir döndürülebilir bileşenden oluşur ve Roblox'ta 3B verilerle çalışmak için gerekli aritmetik işlemleri içerir.


-- Belirli bir konumda bir CFrame ve Euler dönüşü oluştur
local cf = CFrame.new(0, 5, 0) * CFrame.fromEulerAngles(math.rad(45), 0, 0)

CFrame veri türüne bir giriş için, CFrames görün.

Pozisyonel Bileşen

Pozisyonel bileşen bir Vector3 olarak mevcuttur.Ayrıca, bir CFrame nesnenin konumunun bileşenleri de bir X , Y ve Z özellikleri gibi bir Vector3 gibi bir özellikte mevcuttur.

Döner Bileşen

CFrame 3D dönüş verilerini 3×3 bir dönüş matrisi içinde saklar.Bu değerler, x , y ve z pozisyonel değerlerden sonra CFrame:GetComponents() fonksiyonu tarafından geri döndürülür.Bu matris, dönüşleri içeren hesaplamalar yaparken içeride kullanılır, birim olarak radyandan kullanır (birinden diğerine dönüşüm için, math.rad() veya math.deg() kullanın).Roblox Motorunun dönüşleri nasıl gerçekleştirdiğine dair daha fazla bilgi için, bakın Enum.RotationOrder .

Aşağıdaki tablo, bir CFrame nesnenin dönüş matrisinin bileşenlerini ve LookVector ve RightVector gibi mevcut vektör özellikleriyle ilişkilerini temsil eder.Döndürme matrisinin bileşenleri nadiren kendi başına yararlı olsa da, onlardan türeyen vektör özellikleri çok daha yararlıdır.


<th>YVector, UpVector</th>
<th>ZVector, -LookVector <sup>†</sup></th>
</tr>
</thead>
<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, SağVector
Diğerlerinden farklı olarak, LookVector negatif sütun bileşenlerini temsil eder.The LookVector is useful because many Instances such as the Camera and Attachments treat that vector as the direction the instance is pointing to.

Özet

Yapılandırıcılar

Özellikler

Yöntemler

Matematik İşlemleri

Yapılandırıcılar

new

Boş bir kimlik oluşturur CFrame .

new

Verilen Vector3 konumuyla hiçbir dönüşüm olmadan bir CFrame döndürür.

Parametreler

pos: Vector3

new

Dünya uzayında "yukarı" olarak kabul edilen düşünülerek yeni bir bulunur ve yönünde yerleştirilir, çünkü dünya uzayında "aşağı" olarak kabul edilir.

Bu yapıcı aşırı yüklenmesi, benzer bir hedefi gerçekleştiren CFrame.lookAt() tarafından değiştirildi, ki bu da geriye dönük uyumluluk için kaldı.

Yüksek eğim açılarında (yaklaşık 82 derece), sayısal istikrarsızlık yaşayabilirsiniz.Bu bir sorun ise veya farklı bir "yukarı" vektörü gerekiyorsa, CFrame.fromMatrix() kullanarak daha doğru bir şekilde CFrame oluşturun.Ayrıca, eğer lookAt doğrudan pos (90 derecelik eğilme açısı) üzerinde ise, "yukarı" vektörü X eksenine geçer.

Parametreler

pos: Vector3
lookAt: Vector3

new

Verilen CFrame , x ve y bileşenlerinden oluşan bir pozisyon ile birlikte bir z döndürür.

Parametreler

new

Konumdan CFrame , x , y ve z dörtlü döndürür ve kuadrans ( qX , qY , qZ , qW ).Dörtlü, geçerli bir dönüşü temsil etmek için birim uzunluğunda olması bekleniyor.Eğer durum bu değilse, kuaternasyon normalleştirilecektir.

Parametreler

new

Döndürme matrisi tarafından belirlenen bir yönle CFrame pozisyondan ( x , y , z ) bir yönlendirme oluşturur.

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

Parametreler

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

lookAt

Yeni bir CFrame ile pozisyonunu at ve lookAt yönüyle yükseliş yönünü ( up ) varsayılan olarak belirterek, isteğe bağlı olarak yukarı yönünü ( (0, 1, 0) ) özelleştirir.

Parametreler

lookAt: Vector3
Varsayılan değer: Vector3.yAxis

lookAlong

Yeni bir CFrame ile pozisyonu at ve direction boyunca yükseliş yönünü ( up ) varsayılan olarak belirterek, isteğe bağlı olarak yukarı yönünü ( (0, 1, 0) ) özelleştirir.

Bu yapıcı CFrame.lookAt(at, at + direction) 'ye eşdeğerdir.

Parametreler

direction: Vector3
Varsayılan değer: Vector3.yAxis

fromRotationBetweenVectors

Döndürülmesi gereken yönü temsil eden bir CFrame ı içerir, ilk Vector3 'dan ikinci sürüklemeye, pozisyon sıfıra ayarlanmış olarak.

Parametreler

from: Vector3

Vektör "from" yönünü temsil eder.

Nereye" yönünü temsil eden vektör.

fromEulerAngles

Açılardan CFrame döndürülmüş bir rx ve ry ve rz radyandan döndürülmüş bir döndürür.Döndürmeler, varsayılan Enum.RotationOrder ile seçilen XYZ 'e uygulanır, eşdeğer:


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

Parametreler

rx: number
ry: number
rz: number
Varsayılan değer: Enum.RotationOrder.XYZ

fromEulerAnglesXYZ

Döndürülmüş CFrame bir açıdan, rx , ve ry ve rz radyandaki radyandan Enum.RotationOrder.XYZ , eşdeğer:


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

Parametreler

rx: number
ry: number
rz: number

fromEulerAnglesYXZ

Döndürülmüş CFrame bir açıdan, rx , ve ry ve rz radyandaki radyandan Enum.RotationOrder.YXZ , eşdeğer:


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

Parametreler

rx: number
ry: number
rz: number

Angles

Parametreler

rx: number
ry: number
rz: number

fromOrientation

Parametreler

rx: number
ry: number
rz: number

fromAxisAngle

Bir birimden CFrame döndürülmüş bir Vector3 ve radyandaki bir dönüş alır.

Parametreler

fromMatrix

Bir çeviriden ve bir dönüşüm matrisinin sütunlarından bir CFrame döndürür.Eğer vZ dışlanırsa, üçüncü sütun vX:Cross(vY).Unit olarak hesaplanır.

Parametreler

pos: Vector3

CFrame 'nin 3B konumu.

RightVector eşdeğer.

UpVector eşdeğer.

Eşdeğeri - LookVector .

Özellikler

identity

Tercüme veya dönüşüm olmadan bir kimlik CFrame .Bu özellik bir sabit ve bir bireysel CFrame aracılığıyla değil, küresel olarak erişilmelidir.

Position

CFrame 'nin 3B konumu.

Rotation

Tercüme olmadan CFrame kopyası.

Konumun X koordinatı.

Konumun Y koordinatı.

Konumun Z koordinatı.

LookVector

CFrame nesnenin ileri yön bileşeni, negatif ZVector veya dönüş matrisinin negatif üçüncü sütununa eşdeğer,


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)

Bir CFrame nesnesinin kendisine LookVector eklenmesi, karşı karşıya olduğu herhangi bir yönde 1 birim ileriye taşındığında bir CFrame üretir.

RightVector

CFrame nesnenin sağ yönlü bileşeninin yönü. XVector veya dönüş matrisinin ilk sütununa eşdeğer.


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 nesnenin yönüyle ilgili yukarı yön bileşeni. YVector veya dönüş matrisinin ikinci sütununa eşdeğer.


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

CFrame nesnenin yönünün X bileşeni. Rotasyon matrisinin ilk sütununa veya RightVector eşdeğer.


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

nesnenin yönünün Y bileşeni. Rotasyon matrisinin ikinci sütunu veya eşdeğeri ile eşit.


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

CFrame nesnenin yönünün Z bileşeni. Negatif LookVector veya dönüş matrisinin üçüncü sütununa eşdeğer.


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)

Yöntemler

Inverse

CFrame 'nin tersini döndürür.

Dönüşler

Lerp

Kendisi ve goal kesir tarafından arasında yerleştirilen bir alpha arasında bir CFrame döndürür.

Parametreler

goal: CFrame
alpha: number

Dönüşler

Orthonormalize

CFrame 'nin ortonormalize edilmiş bir kopyasını döndürür.The BasePart.CFrame özelliği otomatik olarak ortonormalizasyon uygular, ancak CFrames alanındaki diğer API'ler bunu yapmaz, bu yüzden bu yöntem, bir CFrame ve onlarla birlikte kullanıldığında zaman zaman gerekli hale gelir.

Dönüşler

ToWorldSpace

Bir veya daha fazla CFrame nesne alır ve nesneden dünya uzayına dönüştürülmüş olarak geri döndürür. Eşdeğeri:

CFrame * cf

Parametreler

Dönüşler

ToObjectSpace

Bir veya daha fazla CFrame nesne alır ve onları dünyadan nesne alanına dönüştürülmüş olarak geri verir. Eşdeğeri:

CFrame:Inverse() * cf

Parametreler

Dönüşler

PointToWorldSpace

Bir veya daha fazla Vector3 nesne alır ve nesneden dünya uzayına dönüştürülmüş olarak geri döndürür. Eşdeğeri:

CFrame * v3

Parametreler

Dönüşler

PointToObjectSpace

Bir veya daha fazla Vector3 nesne alır ve onları dünyadan nesne alanına dönüştürülmüş olarak geri verir. Eşdeğeri:

CFrame:Inverse() * v3

Parametreler

Dönüşler

VectorToWorldSpace

Bir veya daha fazla Vector3 nesne alır ve nesneden dünya uzayına döndürülerek geri verir. Eşdeğeri:

(CFrame - CFrame.Position) * v3

Parametreler

Dönüşler

VectorToObjectSpace

Bir veya daha fazla Vector3 nesne alır ve dünyadan nesne alanına döndürülerek geri verir. Eşdeğeri:

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

Parametreler

Dönüşler

GetComponents

Değerleri , , , , , , , , , , ve , nerede ve ve <

Dönüşler

ToEulerAngles

Seçilen CFrame kullanarak üretilebilecek yaklaşık açıları döndürür. Enum.RotationOrder kullanarak üretilebilecek yaklaşık açıları döndürür.order sağlamazsanız, yöntem Enum.RotationOrder.XYZ kullanır.

Parametreler

Varsayılan değer: Enum.RotationOrder.XYZ

ToEulerAnglesXYZ

Kullanarak yaratılabilecek yaklaşık açıları döndürür kullanarak ile oluşturmak için.

ToEulerAnglesYXZ

Kullanarak yaratılabilecek yaklaşık açıları döndürür kullanarak ile oluşturmak için.

ToOrientation

ToAxisAngle

Bir eksen-açı temsilinde Vector3 dönüşünü temsil eden bir dizi ve CFrame eksen açı temsilinde dönüşü temsil eden bir sayı döndürür.

Dönüşler

components

Dönüşler

FuzzyEq

Diğer CFrame yeterince bu CFrame konuma ve döndürmeye yakınsa, true döndürür.epsilon değeri, bu benzerliğin toleransını kontrol etmek için kullanılır; bu değer isteğe bağlıdır ve verilirse küçük pozitif bir değer olmalıdır.Pozisyon için benzerlik bileşen bazlıdır ve dönüş, açı farkının hızlı bir yaklaşımını kullanır.

Parametreler

other: CFrame
epsilon: number
Varsayılan değer: 0.00001 (1e-5)

Dönüşler

AngleBetween

Bir CFrame ve diğerinin yönü arasındaki açıyı radyandan döndürür.Bu işlev, CFrame konumunu hesaba katmaz ve sadece mutlak yönü görür.

Parametreler

other: CFrame

Dönüşler

Matematik İşlemleri


İki CFrames 'in kompozisyonunu temsil eden yeni bir CFrame üretir.


Nesneden dünya koordinatlarına dönüştürülmüş bir Vector3 üretir.


Dünya uzayında CFrame tarafından tercüme edilmiş bir Vector3 üretir.


Dünya uzayında negatif Vector3 tarafından çevrilmiş bir CFrame üretir.