Vector
Vektörleri işlemek için olası tüm fonksiyonların listesi.
Vector tarafından oluşturulur.
| Tür | İsim | Açıklama |
|---|---|---|
| number | x veya 1 |
Vektörün X bileşeni. |
| number | y veya 2 |
Vektörün Y bileşeni. |
| number | z veya 3 |
Vektörün Z bileşeni. |
| Metametot | İkinci İşlenen | Açıklama |
|---|---|---|
__add |
Vector | Toplama işleminin sonucuyla yeni bir Vector döndürür. |
__div |
number veya Vector | Bölme işleminin sonucuyla yeni bir Vector döndürür. |
__eq |
any | 2 işleneni karşılaştırır, eğer ikisi de Vector ise her bir bileşeni ayrı ayrı karşılaştırır. |
__index |
number veya string | Vector'ün bileşenini alır. Bir number döndürür. |
__mul |
number veya Vector | Çarpma işleminin sonucuyla yeni bir Vector döndürür. |
__newindex |
number veya string | Vector'ün bileşenini ayarlar. number ve string kabul eder. |
__sub |
Vector | Çıkarma işleminin sonucuyla yeni bir Vector döndürür. |
__tostring |
x y z döndürür. |
|
__unm |
Olumsuzlama (negasyon) işleminin sonucuyla yeni bir Vector döndürür. |
Metotlar
Argüman olarak verilen vektörün değerlerini orijinal vektöre ekler. Bu fonksiyon, yeni bir vektör nesnesi oluşturmadan, nesne oluşturma ve çöp toplama (garbage collection) adımlarını atlayarak vector1 + vector2 ile aynıdır.
Bu vektörün (normalleştirilmiş) açısını döndürür, ancak 'yukarı' yönünün Vector( 0, 0, 1 ) olduğunu varsaymak yerine (Vector:Angle'ın yaptığı gibi), açı için hangi yönün 'yukarı' olduğunu belirleyebilirsiniz.
Bu vektör ile parametre olarak verilen vektörün çapraz çarpımını (cross product) hesaplar.
İki vektörün çapraz çarpımı, her ikisine de dik (sağ el kuralına göre) bir yöne sahip ve büyüklüğü, bu iki vektörün oluşturduğu paralelkenarın alanına eşit olan 3 boyutlu bir vektördür. Bu, büyüklüklerinin çarpımı, aralarındaki açının sinüsü ve sağ el kuralı ile tanımlanan birim (normal) vektör n olarak tanımlanır:
:a × b = |a| |b| sin(θ) n̂
burada a ve b vektörler, n̂ ise her ikisine de dik olan birim vektördür (büyüklüğü 1).
Vektör ile diğer vektör arasındaki Öklid mesafesini döndürür.
Bu fonksiyon, Vector:DistToSqr'dan daha maliyetlidir. Ancak, karesi alınmış mesafeler Öklid mesafeleriyle aynı olmadığından, Vector:DistToSqr kullanmadan önce notlarına bakınız.
Vektör ile diğer vektör arasındaki Öklid mesafesini 2D uzayda döndürür. Z ekseni yok sayılır.
Bu fonksiyon, Vector:Distance2DSqr'dan daha maliyetlidir. Ancak, karesi alınmış mesafeler Öklid mesafeleriyle aynı olmadığından, Vector:Distance2DSqr kullanmadan önce notlarına bakınız.
Z eksenini yok sayarak 2 vektör arasındaki karesi alınmış mesafeyi 2D uzayda döndürür. Bu, karekök hesaplamanın maliyetli bir işlem olması nedeniyle Vector:Distance2D'den daha hızlıdır.
Karesi alınmış mesafeler toplanmamalıdır. Mesafeleri toplamanız gerekiyorsa, Vector:Distance2D kullanın.
Bir mesafe kontrolü yaparken, karşılaştırılan mesafenin karesinin alındığından emin olun.
2 vektörün karesi alınmış mesafesini döndürür. DistToSqr'ın karekök hesaplamasına gerek duymaması (ki bu maliyetli bir işlemdir) nedeniyle bu fonksiyonu çağırmak Vector:Distance'dan daha hızlıdır.
Karesi alınmış mesafeler toplanmamalıdır. Mesafeleri toplamanız gerekiyorsa, Vector:Distance kullanın.
Bir mesafe kontrolü yaparken, karşılaştırılan mesafenin karesinin alındığından emin olun. Aşağıdaki örnek koda bakınız.
Vektörü verilen sayıya böler, bu da x, y ve z'nin bu değere bölüneceği anlamına gelir. Bu, orijinal vektörün değerini değiştirecektir, değeri değiştirmeden bölme işlemi için örnek 2'ye bakın.
Bu vektör ile parametre olarak verilenin noktasal çarpımını (dot product) döndürür.
İki vektörün noktasal çarpımı, büyüklüklerinin (uzunluklarının) çarpımı ile aralarındaki açının kosinüsüdür:
a · b = |a| |b| cos(θ)
burada a ve b vektörlerdir.
Büyüklükleri elde etmek için Vector:Length'e bakın.
Eğer her iki vektör de normalleştirilmişse, noktasal çarpım sadece aralarındaki açının kosinüsünü, vektörler birbirine dik ise sıfır döndürür.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu, Vector:Dot'un bir takma adıdır. Onun yerine onu kullanın.
İki vektörün noktasal çarpımını döndürür.
Vector Vector:GetNegated()
Bu vektörün negatif versiyonunu, yani her bileşeni kendisinin negatif değerine sahip bir vektörü döndürür.
Ayrıca bakınız: Vector:Negate.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bunun yerine Vector:GetNormalized kullanın.
Vektörün normalleştirilmiş bir versiyonunu döndürür. Bu, Vector:GetNormalized'ın bir takma adıdır.
Vector Vector:GetNormalized()
Vektörün normalleştirilmiş bir versiyonunu döndürür. Normalleştirilmiş, aynı yöne sahip ancak 1 uzunluğunda bir vektör anlamına gelir.
Bu, üzerinde çağırdığınız vektörü etkilemez; bunu yapmak için Vector:Normalize kullanın.
Vektörün, verilen toleransla başka bir vektöre eşit olup olmadığını döndürür.
Vektörün Öklid uzunluğunu döndürür: √(x² + y² + z²).
Karekök kullandığı için bu nispeten maliyetli bir işlemdir. Mümkün olduğunda Vector:LengthSqr kullanmanız tavsiye edilir.
Vektörün Z ekseni olmadan iki boyuttaki uzunluğunu döndürür.
Karekök kullandığı için bu nispeten maliyetli bir işlemdir. Mümkün olduğunda Vector:Length2DSqr kullanmanız tavsiye edilir.
number Vector:Length2DSqr()
Vektörlerin x ve y değerlerinin karesi alınmış uzunluğunu döndürür, x² + y².
Karekök hesaplamanın maliyetli bir işlem olması nedeniyle bu, Vector:Length2D'den daha hızlıdır.
Vektörün karesi alınmış uzunluğunu döndürür, x² + y² + z².
Karekök hesaplamanın maliyetli bir işlem olması nedeniyle bu, Vector:Length'den daha hızlıdır.
Vektörü verilen sayı (bu, x, y ve z'nin bu değerle çarpılacağı anlamına gelir), bir Vektör (her vektörün X, Y ve Z'si çarpılır) veya bir VMatrix (vektörü matrisin döndürme/öteleme bilgisiyle dönüştürür) ile ölçekler.
Vector:Negate()
Bu vektörü olumsuzlar, yani her bileşeni kendisinin negatif değerine ayarlar. Vector( -vec.x, -vec.y, -vec.z ) ile aynıdır.
Vector:Normalize()
Verilen vektörü normalleştirir. Bu, üzerinde çağırdığınız vektörü değiştirir; orijinali etkilemeden normalleştirilmiş bir kopya döndürmek istiyorsanız, Vector:GetNormalized kullanın.
Bu Vektör nesnesinin her bir elemanını rastgele hale getirir.
Bir vektörü verilen açı kadar döndürür.
Herhangi bir şey döndürmez, bunun yerine orijinal vektörü değiştirir.
Vektörün x, y ve z değerlerini ayarlar.
İkinci vektörün değerlerini orijinal vektörden çıkarır, bu fonksiyon çöp toplamayı (garbage collection) önlemek için kullanılabilir.
Vektörü (0 ile 1 arasında değişen değerler) bir Renge (Color) dönüştürür. Bu aynı zamanda değer aralığını 0 - 1'den 0 - 255'e çevirecektir.
x * 255 -> r
y * 255 -> g
z * 255 -> b
Bu, Color:ToVector'un tersidir.
Belirtilen pozisyon vektörünün ekranda nerede görüneceğini döndürür. İlgili bir fonksiyon, 2D bir koordinatı 3D bir yöne dönüştüren gui.ScreenToVector'dur.
Doğru çalışması için bir 3D render ortamından veya cam.Start3D'den sonra çağrılmalıdır. Bir render kancasındaki hatalar, oyuncu oyununu yeniden başlatana kadar bu değerin yanlış olmasına neden olabilir. Sorun Takipçisi: 462
cam.Start3D veya varsayılan olmayan parametrelerle 3D bağlamında cam.Start, bu fonksiyon için referans FOV'u yanlış ayarlar ve bu da yanlış dönüş değerlerine neden olur. Bu, varsayılan bir 3D bağlamı oluşturup sonlandırarak (argümansız cam.Start3D) düzeltilebilir. Sorun Takipçisi: 1404
Verilen vektörün, diğer 2 vektör tarafından oluşturulan bir kutunun içinde olup olmadığını döndürür.
Vector:Zero()
x, y ve z'yi 0 olarak ayarlar.
Örnek
İsimlendirilmiş bileşene göre dizinleme.
Çıktı: 1 2 3
Örnek
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord