Atölye › Pinball › 31/42. adım
Şimdi paletler yüzey hızlarını hitSegment'e verecek. Dönen bir çubuğun bir noktası ne kadar hızlı gider?
Eksenden r uzaktaki nokta, çubuk karede speed radyan dönerken karede speed × r piksel yol alır, çubuğa dik
yönde. Yani eksene yakın kısım yavaş, uç çok hızlı gider. Bir kapıyı düşün: menteşenin yanı neredeyse
kıpırdamaz, kapının kenarı ise hızla savrulur. Gerçek pinball'da da topa paletin ucuyla vurmak onu daha uzağa yollar.
```js
// A point on a turning flipper moves at speed × distance from the pivot, at right angles to it.
hitSegment(f.x, f.y, t.x, t.y, 0.3, (px, py) => ({ x: -f.speed * (py - f.y), y: f.speed * (px - f.x) }))
```(px, py) => ({ ... }). hitSegment onu en yakın nokta ile çağırır, o da o
noktanın hızını döndürür.(px - f.x, py - f.y) → eksenden noktaya giden ok.(a, b) → (-b, a). Böylece
(-(py - f.y), px - f.x) noktanın gittiği yön olur (çubuğa dik).* f.speed → yön ile dönme hızını çarp. Nokta eksenden uzaklaştıkça ok uzar, hız büyür: uç en hızlı.f.speed 0: yüzey hızı 0, palet sıradan bir duvar gibi davranır.step içindeki paletler döngüsünde hitSegment(f.x, f.y, t.x, t.y, 0.3) satırını sil; yerine yorum satırını ve
yeni satırı yaz.Beceriler: Hız ve yerçekimi