Vector:Dot

  number Vector:Dot( Vector otherVector )

Açıklama

Bu vektör ile parametre olarak verilen vektörün skaler çarpımını (dot product) döndürür.

İki vektörün skaler çarpımı, büyüklüklerinin (uzunluklarının) ve aralarındaki açının kosinüsünün çarpımıdır:

a · b = |a| |b| cos(θ)

Burada a ve b vektörlerdir.

Büyüklükleri elde etmek için Vector:Length sayfasına bakın.

Eğer her iki vektör de normalleştirilmişse (normalize edilmişse), skaler çarpım sadece aralarındaki açının kosinüsünü döndürür. Eğer vektörler birbirine dik açılıysa sıfır döndürür.

Argümanlar

1 Vector otherVector
Skaler çarpımın hesaplanacağı vektör

Döndürülen Değer

1 number
İki vektör arasındaki skaler çarpım

Örnek

Birbirine zıt iki normalleştirilmiş vektörün açısını alın.

local a = Vector(0, 1, 0) local b = Vector(0, -1, 0) local dot = a:Dot(b) -- iki vektörün de uzunluğu 1 olduğu için aralarındaki açının cos(ang) değerini döndürür print("Radyan", math.acos(dot)) -- açıyı elde etmek için kosinüsün tersi print("Derece", math.deg(math.acos(dot))) -- Radyanı dereceye çevir
Çıktı: Radyan 3.1415926535898
Derece 180

Örnek

Oyuncunun bir varlığın yönüne bakıp bakmadığını hesaplar. Bu genellikle trace'lerden (ışın izleme) daha hızlıdır, ancak biraz farklı bir sonuç verir.

Eğer oyuncunun nişan alma vektörü (aimvector) ile oyuncudan varlığa giden vektör arasındaki açı 22.5 dereceden (veya pi / 8 radyandan) küçükse, oyuncu varlığın yönüne bakıyor demektir.

local directionAngCos = math.cos(math.pi / 8) local aimVector = ply:GetAimVector() -- Oyuncunun ateş etme pozisyonundan varlığın pozisyonuna giden vektör local entVector = ent:GetPos() - ply:GetShootPos() local angCos = aimVector:Dot(entVector) / entVector:Length() print(angCos >= directionAngCos)
Çıktı: Bu script, oyuncunun varlığın yönüne bakıp bakmadığını söyleyecektir.

Örnek

Oyuncunun belirli bir yöne baktığından emin olmak için bir fonksiyon.

function IsLookingAt(ply, targetVec) local diff = targetVec - ply:GetShootPos() return ply:GetAimVector():Dot(diff) / diff:Length() >= 0.95 end
Çıktı: Eğer oyuncu (ply) hedefe bakıyorsa (veya yakınına bakıyorsa) true döndürür.

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord