ดูเหมือนว่าคุณต้องการรักษาความเร็วของวัตถุไว้ที่ค่าคงที่ตลอดทั้งโค้ง - การรู้ว่าความยาวส่วนโค้งจะไม่ช่วยคุณทำสิ่งนี้ มันจะช่วยให้คุณคำนวณเวลาที่วัตถุจะไปถึงจุดสิ้นสุดถ้ามันไปที่ความเร็วนั้นดังนั้นมันจะดีกว่าที่คุณมีอยู่ตอนนี้ (วัตถุนั้นจะมีความเร็วเฉลี่ยเท่ากันระหว่างทุกจุด) แต่ ความเร็วที่แท้จริงของวัตถุจะยังคงเปลี่ยนแปลงตามที่มันเคลื่อนที่ไปรอบ ๆ โค้ง
ทางออกที่ดีกว่าคือการเปลี่ยนพารามิเตอร์พารามิเตอร์ของเรา(พารามิเตอร์ที่เปลี่ยนจาก 0 เป็น 1 ซึ่งฉันจะเรียกsเพื่อหลีกเลี่ยงความสับสนด้วยt = time)ที่อัตราตัวแปรds/dtซึ่งกำหนดโดยความเร็วที่คุณต้องการให้วัตถุเคลื่อนที่ จุดนั้นบนเส้นโค้ง ดังนั้นอาจกล่าวได้ว่าแทนการเปลี่ยนแปลงs0.01 เฟรมต่อเฟรมเราอาจเปลี่ยน 0.005 หนึ่งเฟรม 0.02 เฟรมต่อไปเป็นต้น
เราทำสิ่งนี้โดยการคำนวณอนุพันธ์ของx( dx/ds) และy( dy/ds) แต่ละเฟรมจากนั้นตั้งค่า
ds / dt = speed / sqrt ((dx / ds) 2 + (dy / ds) 2 )
นั่นคือโดยการใช้ความเร็วที่เราต้องการไปและหารด้วยความเร็วที่เราต้องการจริง ๆ ถ้าเรามีการเปลี่ยนแปลงsที่เพิ่มขึ้นคงที่
พิสูจน์
เราต้องการความเร็วของวัตถุของเราให้คงที่ speedขอให้คงที่ว่าชื่อ
เราได้เรียนรู้ในแคลคูลัสสองปีว่าสำหรับสมการตัวแปรx(s)และy(s),
ความเร็ว = sqrt ((dx / dt) 2 + (dy / dt) 2 )
เรายังได้เรียนรู้ว่า
dx / dt = dx / ds * ds / dt (กฎลูกโซ่)
ดังนั้น,
ความเร็ว = sqrt ((dx / ds) 2 (ds / dt) 2 + (dy / ds) 2 (ds / dt) 2 )
แก้เพื่อds/dtเราจะได้สมการที่ระบุ
การคำนวณอนุพันธ์
ผมไม่เคยทำงานร่วมกับเส้นโค้งโดยเฉพาะอย่างยิ่ง แต่ผมเข้าใจว่าพวกเขาเพียงแค่ให้x(s)และในแง่ของลูกบาศก์สมการy(s) sดังนั้นเราสามารถหาอนุพันธ์dx/dsได้ง่าย: ถ้า
x (s) = a * s 3 + b * s 2 + c * s + e
แล้วก็
dx / ds = 3a * s 2 + 2b * s + c
(เดียวกันdy/ds)และแน่นอนว่าคุณจะต้องรู้ค่าที่แน่นอนของa, bและcการทำเช่นนี้ ตามนี้หน้านี้ค่าเหล่านั้นหาง่าย
ในที่สุดเพื่อตอบคำถามในชื่อเรื่อง: การหาสมการความยาวส่วนโค้งของฟังก์ชันพาราเมทริกเป็นการแก้ปัญหา หนึ่งแน่นอนค่อนข้างซับซ้อน ; แม้แต่กรณีง่าย ๆ ของสมการลูกบาศก์ - โดยทั่วไปสิ่งนี้ไม่สามารถทำได้
ดังนั้นคุณจะต้องประเมินตัวเลขหนึ่ง "ตัดโค้งลง 10 เส้นตรงและข้อสรุปความยาวของพวกเขา"ตามที่คุณแนะนำคือหนึ่งในวิธีที่ง่ายมากการทำเช่นนี้ ; อย่างไรก็ตามมีวิธีการที่ซับซ้อนกว่าเล็กน้อยที่จะให้ผลลัพธ์ที่แม่นยำมากขึ้นโดยใช้เซกเมนต์บรรทัดน้อยลง