Kütle (Mass) Neden Önemli?
Şimdiye kadar kütleyi görmezden geldik (mass = 1 varsaydık).
Ama gerçek dünyada kütle (mass) çok önemli!
Newton'un 2. yasasını hatırlayalım:
Bu formülden şunu anlıyoruz: Aynı kuvvet, farklı kütlelere farklı ivme verir.
- Küçük kütle → Büyük ivme (hafif nesneler kolay hareket eder)
- Büyük kütle → Küçük ivme (ağır nesneleri hareket ettirmek zor)
💡 Örnek: Bowling Topu vs Ping-Pong Topu
Aynı kuvvetle (10N diyelim) iki farklı topu iterseniz:
- Ping-pong topu (m=0.003 kg): a = 10 / 0.003 = 3333 m/s² 🚀
- Bowling topu (m=7 kg): a = 10 / 7 = 1.4 m/s² 🐢
Ping-pong topu 2000 kat daha fazla ivmelenir!
applyForce() Fonksiyonunu Güncelleme
Mover sınıfımıza mass (kütle) ekleyelim ve
applyForce() fonksiyonunu güncelleyelim:
class Mover {
constructor(x, y, mass) {
this.position = createVector(x, y);
this.velocity = createVector(0, 0);
this.acceleration = createVector(0, 0);
this.mass = mass; // Kütle eklendi!
}
applyForce(force) {
// Newton'un 2. yasası: a = F / m
// Kuvveti kütleye bölüyoruz!
let f = p5.Vector.div(force, this.mass);
this.acceleration.add(f);
}
}
Neden p5.Vector.div() Kullanıyoruz?
⚠️ Çok Önemli: force'u Değiştirmemek!
force.div(this.mass) yazsaydık, orijinal force vektörünü
değiştirirdik! Bu tehlikeli çünkü aynı force birden fazla nesneye uygulanabilir.
p5.Vector.div(force, this.mass) ise yeni bir vektör
oluşturur, orijinal force'a dokunmaz.
// ❌ YANLIŞ - orijinal vektörü değiştirir!
applyForce(force) {
force.div(this.mass); // gravity değişti!
this.acceleration.add(force);
}
// ✅ DOĞRU - yeni vektör oluşturur
applyForce(force) {
let f = p5.Vector.div(force, this.mass); // yeni vektör
this.acceleration.add(f);
}
// Neden önemli?
let gravity = createVector(0, 0.2);
// Eğer yanlış yöntem kullanırsak:
mover1.applyForce(gravity); // gravity artık (0, 0.1) oldu (mass=2 ise)
mover2.applyForce(gravity); // mover2 yanlış gravity alıyor!
Örnek: Farklı Kütleler
Şimdi farklı kütlelere sahip topların nasıl davrandığını görelim. Aynı yerçekimi kuvveti, farklı hızlarda hareket yaratacak.
Kodun Açıklaması:
mass parametresi alıyoruz. Çap da kütleye bağlı
(mass * 16) - büyük kütle = büyük top.
p5.Vector.div(force, this.mass).
Ağır toplar daha az ivmelenir.
random(0.5, 4) ile 0.5 ile 4 arasında kütle veriyoruz.
Her top farklı boyutta ve ağırlıkta.
🔬 Deneyin:
- Gözlem: Tüm toplar aynı anda düşüyor mu? Evet! Yerçekiminde kütle fark etmez (Galileo'nun keşfi)
-
Rüzgar ekleyin:
mouseIsPressedile rüzgar ekleyin. Hafif toplar daha çok etkilenir! -
Çok kütle:
random(0.1, 10)yapın. Daha dramatik farklar görürsünüz
Gerçek Yerçekimi ve Kütle
İlginç bir şey fark ettiniz mi? Farklı kütleli toplar aynı hızda düşüyor! Bu, Galileo'nun ünlü deneyinin sonucu.
💡 Galileo'nun Keşfi
1589'da Galileo, Pisa Kulesi'nden farklı ağırlıkta topları bıraktı (efsaneye göre). Hepsi aynı anda yere düştü!
Neden? Yerçekimi kuvveti kütleyle orantılı (F = m × g),
ama ivme de kütleyle ters orantılı (a = F / m). İkisi birbirini götürür!
Matematiksel İspat
// Yerçekimi kuvveti (gerçek fizik)
// F = m × g (g = yerçekimi ivmesi = 9.8 m/s²)
// Newton'un 2. yasası
// a = F / m = (m × g) / m = g
// Kütle sadeleşiyor! İvme hep g'ye eşit.
Ama rüzgar gibi kuvvetlerde kütle önemli! Rüzgar kuvveti kütleyle orantılı değil, bu yüzden hafif nesneler daha çok etkilenir.
Örnek: Rüzgar ve Kütle
Şimdi rüzgar ekleyerek kütlenin etkisini görelim. Hafif toplar rüzgardan çok etkilenecek!
Dikkat Edilecekler:
F = m × g yerine sabit F kullanıyoruz.
🔬 Deneyin:
- Canvas'a tıklayın ve rüzgarı gözlemleyin.
- Hangi toplar daha çok etkileniyor? Küçükler mi, büyükler mi?
-
Rüzgar gücünü artırın:
createVector(0.5, 0)
Bonus: Gerçek Yerçekimi Formülü
Daha gerçekçi bir simülasyon için yerçekimini de kütleye bağlı yapabiliriz:
// Gerçek yerçekimi: F = m × g
// g = yerçekimi ivmesi (simülasyonda ~0.1)
function draw() {
for (let mover of movers) {
// Her mover için kendi kütlesine göre yerçekimi
let g = 0.1;
let gravityForce = createVector(0, mover.mass * g);
mover.applyForce(gravityForce);
// Rüzgar (kütleden bağımsız)
if (mouseIsPressed) {
let wind = createVector(0.1, 0);
mover.applyForce(wind);
}
mover.update();
mover.checkEdges();
mover.show();
}
}
Bu durumda tüm toplar aynı hızda düşer (Galileo'nun dediği gibi), ama rüzgardan farklı etkilenirler.
📝 Bu Bölümün Özeti
- Kütle (mass): Nesnenin "hareket ettirme zorluğu"
- a = F / m: Büyük kütle = küçük ivme
- p5.Vector.div(): Orijinal vektörü değiştirmeden bölme
- Yerçekimi: Gerçekte tüm kütleler aynı hızda düşer
- Diğer kuvvetler: Rüzgar gibi kuvvetlerde kütle fark eder