Nesnenin hızını tüm eğri üzerinde sabit bir değerde tutmak istediğiniz gibi görünüyor - yay uzunluğunu bilmek bunu yapmanıza yardımcı olmaz. Bu nesne son noktasına ulaşmak istiyorum saat kaçta hesaplamak yardımcı olacaktır eğer o hızda gittiğini daha iyi sen andan daha (nesne tüm noktalar arasında aynı ortalama hızı olacaktır) olacaktır, böylece, ancak nesnenin gerçek hızı, eğri etrafında hareket ettikçe değişecektir.
Daha iyi bir çözüm, parametrik parametremizi (0'dan 1'e giden, s
karışıklığı önlemek için arayacağım parametre t = time
) değişken bir ds/dt
hızda, nesnenin hangi hızda hareket etmesini istediğinize göre belirlenen bir değişken oranında değiştirmek olacaktır. eğri üzerinde o nokta. Başka bir deyişle, s
her bir kareyi 0,01 değiştirmek yerine onu 0,005 bir kare, bir sonraki 0,02 vb. Değiştirebiliriz.
Bunu , her bir karenin x
( dx/ds
) ve y
( dy/ds
) türevlerini hesaplayıp
ds / dt = hız / sqrt ((dx / ds) 2 + (dy / ds) 2 )
Yani, gitmek istediğimiz hızı alarak ve s
sabit bir artışla değişseydik aslında gideceğimiz hıza bölerek .
Kanıt
Nesnemizin hızının sabit olmasını istiyoruz; sabitin adını verelim speed
.
Biz ikinci sınıf matematik olduğunu, parametrik denklemler için öğrenmek x(s)
ve y(s)
,
hız = sqrt ((dx / dt) 2 + (dy / dt) 2 )
Ayrıca şunu öğreniyoruz
dx / dt = dx / ds * ds / dt (zincir kuralı)
Böylece,
hız = sqrt ((dx / ds) 2 (ds / dt) 2 + (dy / ds) 2 (ds / dt) 2 )
Çözerek ds/dt
, belirtilen denklemi alırız.
Türevlerin hesaplanması
Bu özel yivlerle hiç çalışmadım, ama sadece verdiğini x(s)
ve y(s)
kübik denklemleri açısından anladım s
. Böylece, türevi dx/ds
kolayca bulabiliriz :
x (s) = a * s 3 + b * s 2 + c * s + e
sonra
dx / ds = 3a * s 2 + 2b * s + c
(Aynı için dy/ds
) Tabii ki, tam değerlerinin bilinmesi gerekir a
, b
ve c
bunu yapmak için. Bu sayfaya göre , bu değerleri bulmak kolaydır.
Son olarak, başlıktaki soruyu cevaplamak için: bir parametrik fonksiyonun yay uzunluğu denklemini bulmak, oldukça karmaşık belirli bir integralin ; basit bir kübik denklem durumunda bile, bu genellikle yapılamaz.
Böylece, integrali sayısal olarak tahmin etmeniz gerekir . “Spline'ı 10 düz çizgiye ayırmak ve uzunluklarını toplamak” önerdiğiniz gibi bunu yapmanın çok basit bir yolu ; ancak, daha az çizgi segmenti kullanarak size çok daha doğru sonuçlar verecek biraz daha karmaşık yöntemler vardır.