# Vector:Dot

- **Ortam:** İstemci, Sunucu, Menü
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/Vector:Dot
- **Çeviri tarihi:** 2025-09-08

```lua
number Vector:Dot( Vector otherVector )
```

## Açıklama

Bu vektör ile parametre olarak verilen vektörün [skaler çarpımını (dot product)](https://en.wikipedia.org/wiki/Dot_product#Geometric_definition) 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](https://gmod.tr/wiki/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](https://gmod.tr/wiki/Vector) **otherVector**: Skaler çarpımın hesaplanacağı vektör

## Döndürülen Değer

1. [number](https://gmod.tr/wiki/number): İki vektör arasındaki skaler çarpım

### Örnek

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

```lua
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.

```lua
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.

```lua
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.

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/Vector:Dot
