คำตอบที่มีอยู่ไม่ได้คำนึงถึงว่าจุดสิ้นสุดนั้นเป็นไปตามอำเภอใจ (มากกว่าที่กำหนด) ดังนั้นเมื่อทำการวัดความตรงของเส้นโค้งมันไม่สมเหตุสมผลที่จะใช้จุดสิ้นสุด (ตัวอย่างเช่นในการคำนวณความยาวมุมตำแหน่งที่คาดหวัง) ตัวอย่างง่ายๆจะเป็นเส้นตรงที่มีปลายทั้งสอง kincked หากเราวัดระยะทางจากเส้นโค้งและเส้นตรงระหว่างจุดสิ้นสุดสิ่งนี้จะค่อนข้างใหญ่เนื่องจากเส้นตรงที่เราวาดนั้นถูกชดเชยจากเส้นตรงระหว่างจุดสิ้นสุด
เราจะบอกได้อย่างไรว่าเส้นโค้งเป็นอย่างไร สมมติว่าเส้นโค้งเรียบพอเราอยากรู้ว่าโดยเฉลี่ยแล้วการเปลี่ยนแทนเจนต์กับเส้นโค้งนั้นเปลี่ยนไปเท่าไหร่ สำหรับบรรทัดนี่จะเป็นศูนย์ (เนื่องจากแทนเจนต์คงที่)
ถ้าเราปล่อยให้ตำแหน่งในเวลา t เป็น (x (t), y (t)), แล้วแทนเจนต์คือ (Dx (t), Dy (t)), ที่ Dx (t) คืออนุพันธ์ของ x ณ เวลา t (ไซต์นี้ดูเหมือนว่าขาดการสนับสนุน TeX) หากเส้นโค้งไม่ได้แปรตามความยาวส่วนโค้งเราจะทำให้เป็นมาตรฐานโดยการหารด้วย || (Dx (t), Dy (t)) || เรามีเวกเตอร์หน่วย (หรือมุม) ของแทนเจนต์กับส่วนโค้งในเวลา t ดังนั้นมุมคือ (t) = (Dx (t), Dy (t)) / || (Dx (t), Dy (t)) | |
เรามีความสนใจใน | | Da (t) || ^ 2 รวมอยู่ในเส้นโค้ง
เนื่องจากเราน่าจะมีจุดข้อมูลที่แยกจากกันมากกว่าเป็นโค้งเราต้องใช้ความแตกต่างแน่นอนเพื่อประมาณอนุพันธ์ ดังนั้นดา (t) (a(t+h)-a(t))/h
จะกลายเป็น และเป็น (t) ((x(t+h)-x(t))/h,(y(t+h)-y(t))/h)/||((x(t+h)-x(t))/h,(y(t+h)-y(t))/h)||
จะกลายเป็น จากนั้นเราจะได้ S โดยการสรุปh||Da(t)||^2
สำหรับดาต้าพอยน์ทั้งหมดและอาจทำให้ปกติเป็นความยาวของส่วนโค้ง เป็นไปได้มากที่เราใช้h=1
แต่จริงๆแล้วมันเป็นเพียงตัวคูณสเกลโดยพลการ
หากต้องการย้ำอีกครั้ง S จะเป็นศูนย์สำหรับหนึ่งบรรทัดและยิ่งใหญ่กว่าก็จะเบี่ยงเบนจากบรรทัดมากขึ้น 1/(1+S)
แปลงที่จำเป็นต้องใช้รูปแบบการใช้งาน เนื่องจากสเกลนั้นค่อนข้างเป็นการสุ่มคุณสามารถคูณ S ด้วยจำนวนบวกบางส่วน (หรือแปลงด้วยวิธีอื่นเช่นใช้ bS ^ c แทนที่จะเป็น S) เพื่อปรับว่าเส้นโค้งบางเส้นตรงเป็นอย่างไร