Jawaban yang ada tidak memperhitungkan bahwa titik akhir arbitrer (daripada diberikan). Jadi, ketika mengukur kelurusan kurva, tidak masuk akal untuk menggunakan titik akhir (misalnya, untuk menghitung panjang, sudut, posisi yang diharapkan). Contoh sederhana akan menjadi garis lurus dengan kedua ujungnya kincked. Jika kita mengukur dengan menggunakan jarak dari kurva dan garis lurus antara titik-titik akhir ini akan cukup besar, karena garis lurus yang kita gambar diimbangi dari garis lurus antara titik-titik akhir.
Bagaimana kita tahu seberapa lurus kurva itu? Dengan asumsi kurva cukup halus, kami ingin tahu berapa banyak, rata-rata, garis singgung kurva berubah. Untuk garis, ini akan menjadi nol (karena garis singgung adalah konstan).
Jika kita membiarkan posisi pada waktu t menjadi (x (t), y (t)), maka garis singgung adalah (Dx (t), Dy (t)), di mana Dx (t) adalah turunan dari x pada waktu t (situs ini tampaknya tidak memiliki dukungan TeX). Jika kurva tidak diparameterisasi oleh panjang busur, kita dinormalisasi dengan membaginya dengan || (Dx (t), Dy (t)) ||. Jadi kita memiliki vektor satuan (atau sudut) dari garis singgung ke kurva pada waktu t. Jadi, sudutnya adalah a (t) = (Dx (t), Dy (t)) / || (Dx (t), Dy (t)) ||
Kami kemudian tertarik pada || Da (t) || ^ 2 yang terintegrasi di sepanjang kurva.
Mengingat bahwa kemungkinan besar kita memiliki titik data diskrit daripada kurva, kita harus menggunakan perbedaan hingga untuk memperkirakan turunannya. Jadi, Da (t) menjadi (a(t+h)-a(t))/h
. Dan, a (t) menjadi ((x(t+h)-x(t))/h,(y(t+h)-y(t))/h)/||((x(t+h)-x(t))/h,(y(t+h)-y(t))/h)||
. Kemudian kita mendapatkan S dengan menjumlahkan h||Da(t)||^2
semua titik data dan mungkin menormalkan dengan panjang kurva. Kemungkinan besar, kami menggunakan h=1
, tetapi itu benar-benar hanya faktor skala yang sewenang-wenang.
Untuk mengulangi, S akan menjadi nol untuk suatu garis dan semakin besar semakin menyimpang dari suatu garis. Untuk mengonversi ke format yang diperlukan, gunakan 1/(1+S)
. Mengingat bahwa skala agak arbitrer, dimungkinkan untuk mengalikan S dengan beberapa angka positif (atau mengubahnya dengan cara lain, misalnya menggunakan bS ^ c bukan S) untuk menyesuaikan seberapa lurus kurva tertentu.