Vektör Toplama (Vector Addition)

Vektör toplama, hareketin temelidir. Bir nesnenin konumunu değiştirmek için konum vektörüne hız vektörünü ekleriz.

w⃗ = u⃗ + v⃗
İki vektörün toplamı yeni bir vektör verir
İki vektörün gösterimi
Şekil 1.5: İki vektör u⃗ ve v⃗ üçgen olarak gösterilmiş. Her vektörün x ve y bileşenleri var. Bu gösterim, vektörleri görsel olarak anlamak için çok faydalı: yatay kenar x bileşeni, dikey kenar y bileşeni, hipotenüs ise vektörün kendisi.

Matematiksel Olarak Toplama

İki vektörü toplamak için bileşenleri ayrı ayrı toplarız:

(a, b) + (c, d) = (a+c, b+d)
x'leri topla, y'leri topla
u⃗ = (3, 0) v⃗ = (0, 2) w⃗ = (3, 2) Toplama: u⃗ = (3, 0) v⃗ = (0, 2) w⃗ = (3+0, 0+2) = (3, 2)
// Matematiksel toplama
let u = createVector(3, 0);
let v = createVector(0, 2);

// Yeni vektör: w = u + v
let w = createVector(u.x + v.x, u.y + v.y);
// w = (3, 2)

// VEYA p5.js add() metodu ile:
let w = u.copy();  // u'nun kopyası
w.add(v);          // v'yi ekle

add() Metodu (The add() Method)

p5.Vector'ın add() metodu, vektör toplamayı çok kolaylaştırır:

let position = createVector(100, 50);
let velocity = createVector(2, 3);

// position += velocity
position.add(velocity);

// Şimdi position = (102, 53)

⚠️ add() Orijinal Vektörü Değiştirir!

position.add(velocity) dediğimizde, position değişir, velocity aynı kalır. Bu önemli - her frame'de position güncellenirken velocity sabit kalmalı!

Vektör bileşenlerinin toplanması
Şekil 1.6: Vektörleri toplamak için x ve y bileşenleri ayrı ayrı toplanır. Bu diyagram adım adım gösteriyor: önce u⃗ vektörünün bileşenleri, sonra v⃗ vektörünün bileşenleri, ve son olarak sonuç w⃗ = u⃗ + v⃗. Formül: (a, b) + (c, d) = (a+c, b+d)

Hareket Kodu: add() ile

Şimdi position.x += velocity.x yerine position.add(velocity) kullanabiliriz:

Dikkat Edin:

Satır 13
position.add(velocity) - İki satır yerine bir satır! x ve y ayrı ayrı yazmak yerine tek komut.

🔬 Deneyin:

  1. Satır 8: velocity değerlerini değiştirin: createVector(5, -2) Beklenti: Farklı yönde, farklı hızda hareket

Vektör Çıkarma (Vector Subtraction)

Toplama gibi, çıkarma da bileşen bileşen yapılır:

(a, b) - (c, d) = (a-c, b-d)
Vektör ve negatifi
Şekil 1.7: v⃗ ve -v⃗ arasındaki ilişki. Bir vektörün negatifi, aynı büyüklükte ama tam ters yönde bir vektördür. Bu kavram vektör çıkarmayı anlamak için kritik: u⃗ - v⃗ = u⃗ + (-v⃗)
Vektör çıkarma
Şekil 1.8: Vektör çıkarma, bir vektörü diğerinin ucuna ters yönde yerleştirir. Bu yöntem özellikle iki nokta arasındaki yön vektörünü bulmak için kullanılır: direction = target - position (hedeften konumu çıkar)
let a = createVector(5, 3);
let b = createVector(2, 1);

// a'dan b'yi çıkar
a.sub(b);  // a = (3, 2)

// İki nokta arasındaki vektör
let mouse = createVector(mouseX, mouseY);
let center = createVector(width/2, height/2);

// Merkezden fareye vektör
let direction = p5.Vector.sub(mouse, center);

💡 p5.Vector.sub() - Statik Metod

a.sub(b) → a değişir
p5.Vector.sub(a, b) → yeni vektör döner, a ve b aynı kalır

Örnek: Fareye Doğru İşaret Etme

Çıkarmayı kullanarak bir noktadan diğerine "yön vektörü" bulabiliriz:

Satır Satır Açıklama:

Satır 6-7
Fare ve merkez için vektörler oluşturuyoruz.
Satır 10
p5.Vector.sub(mouse, center) - Merkezden fareye doğru vektör. Statik metod kullandık çünkü orijinal vektörleri değiştirmek istemiyoruz.

📝 Bu Bölümün Özeti