Sürtünme Nedir? (Friction)

Bir topu yuvarladığınızda sonunda durur. Neden? Sürtünme (friction) yüzünden! Sürtünme, hareket eden bir nesneyi yavaşlatan bir kuvvettir.

Sürtünme olmadan dünya çok farklı olurdu: yürüyemez, araba kullanamaz, hiçbir şeyi tutamazdınız!

Sürtünme kuvveti
Şekil 2.3: Sürtünme kuvveti, kızağın hareket yönünün tersinde etki eder

💡 Sürtünmenin Özellikleri

  • Yön: Her zaman hıza (harekete) karşı yönde
  • Büyüklük: Yüzeylerin pürüzlülüğüne bağlı
  • Etki: Hareketi yavaşlatır, durdurmaz (hızı azaltır)

Sürtünme Formülü

f⃗sürtünme = -μ × N × v̂
Sürtünme (vektör) = -(sürtünme katsayısı) × (normal kuvvet) × (hız birim vektörü)

Her Terimi Açıklayalım

-1 (eksi)
Sürtünme harekete karşı yönde. Hızın tersi yönde etki eder.
μ (mü)
Sürtünme katsayısı. Yüzeylerin ne kadar pürüzlü olduğunu gösterir.
• Buz üstünde: μ ≈ 0.01 (çok kaygan)
• Beton üstünde: μ ≈ 0.5 (normal)
• Kauçuk-asfalt: μ ≈ 0.9 (çok yapışkan)
N (Normal)
Normal kuvvet: Yüzeyin cisme uyguladığı dikey kuvvet. Düz zeminde N = m × g (ağırlık). Şimdilik N = 1 varsayabiliriz.
v̂ (birim vektör)
Hız vektörünün yönü (büyüklüğü 1). velocity.normalize() ile elde edilir.

Sürtünmeyi Kodla Uygulama

Sürtünme formülünü adım adım koda çevirelim:

// Sürtünme kuvveti hesaplama

// 1. Sürtünme katsayısı (yüzeye göre değişir)
let mu = 0.1;

// 2. Normal kuvvet (şimdilik 1 varsayıyoruz)
let N = 1;

// 3. Sürtünme büyüklüğü
let frictionMag = mu * N;

// 4. Hız yönünü al (birim vektör)
let friction = this.velocity.copy();  // Hızın kopyasını al
friction.normalize();                  // Birim vektör yap (uzunluk = 1)

// 5. Ters yöne çevir (harekete karşı)
friction.mult(-1);

// 6. Büyüklük uygula
friction.mult(frictionMag);

// 7. Kuvveti uygula
this.applyForce(friction);

normalize() Ne Yapar?

💡 Birim Vektör (Unit Vector)

normalize() bir vektörü birim vektöre çevirir: yönü aynı kalır, uzunluğu 1 olur.

let v = createVector(3, 4);  // uzunluk = 5
v.normalize();                // uzunluk = 1, yön aynı
// v artık (0.6, 0.8)

Bunu yapıyoruz çünkü sadece yönü istiyoruz, hızın büyüklüğü sürtünmeyi etkilememeli.

Örnek: Basit Sürtünme

Bir topu yatay düzlemde hareket ettirin. Sürtünme olmadan sonsuza kadar gider, sürtünmeyle yavaşça durur.

Kodun Açıklaması:

velocity.copy()
Hız vektörünün kopyasını alıyoruz. Orijinal hızı bozmamak için!
mult(-1)
Vektörü tersine çevir. Hareket sağaysa, sürtünme sola.
mu = 0.05
Düşük sürtünme katsayısı = kaygan yüzey. Değeri artırın, top daha hızlı durur.

🔬 Deneyin:

  1. Canvas'a tıklayarak topu itin, sonra bırakın. Top yavaşça durur
  2. mover.js Satır 22: mu = 0.2 yapın. Top çok daha hızlı durur (pürüzlü zemin)
  3. mover.js Satır 22: mu = 0.01 yapın. Top uzun süre kayar (buz gibi)

Örnek: Farklı Yüzeyler

Gerçek dünyada farklı yüzeyler farklı sürtünme katsayılarına sahiptir. Bir topu buzdan kuma sürükleyelim!

Önemli Noktalar:

İki bölge
Sol yarı: düşük sürtünme (μ=0.01, buz gibi). Sağ yarı: yüksek sürtünme (μ=0.3, kum gibi).
applyFriction(mu)
Sürtünme fonksiyonu artık parametre alıyor. Konuma göre farklı μ uyguluyoruz.

🔬 Deneyin:

  1. Canvas'a tıklayarak topu sağa itin. Kuma geçtiğinde ne oluyor?
  2. Sağ bölgenin sürtünmesini artırın: applyFriction(0.5)
  3. Üç bölge yapın: buz, normal, kum.

Bonus: Statik vs Kinetik Sürtünme

Gerçekte iki tür sürtünme var:

Statik sürtünme genellikle daha büyüktür. Bu yüzden bir kutuyu itmeye başlamak, ittikten sonra hareket ettirmekten daha zordur!

🎮 Oyunlarda

Basit oyunlarda genellikle sadece kinetik sürtünme kullanılır. İleri seviye simülasyonlarda statik sürtünme de eklenebilir.

📝 Bu Bölümün Özeti