ฉันจะทำให้ยานพาหนะเคลื่อนที่ไปยังจุดหนึ่งและหยุดได้โดยไม่ต้องแก้ไขปัญหาหรือการแกว่ง


9

เอาล่ะลองคิดดูว่าเรามียานพาหนะเช่นเดียวกับที่ฉันอธิบายไว้ในคำตอบของคำถามนี้ด้วยตำแหน่ง 2D ความเร็วความเร็วเชิงมุมและการลาก / แรงเสียดทาน มันสามารถเร่งความเร็วและทำลายด้วยจำนวนตัวแปร แต่ไม่หยุดตายทันทีหรือเข้าถึงความเร็วสูงสุดทันที ฉันจะทำให้มันเคลื่อนที่ไปยังจุดใดจุดหนึ่งและหยุดได้อย่างไรในเวลาที่เร็วที่สุดเท่าที่จะเป็นไปได้โดยไม่ต้องแก้ไขปัญหาหรือแกว่งไปมา

ฉันกำลังคิดบางอย่างเช่น:

  • หันไปทางตำแหน่งเป้าหมาย
  • เร่งความเร็ว
  • มองไปที่ 1 ขีดล่วงหน้าถามว่า "ถ้าฉันใช้เครื่องหมายขีดถัดไปฉันจะไปเกินเป้าหมายได้หรือไม่"
  • ถ้ามันจะแหวกแนวใช้จำนวนครั้งตอนนี้

ฉันแน่ใจว่านี่เป็นปัญหาที่แก้ไขแล้วและอาจมีวิธีที่ดีกว่าวิธีที่ฉันอธิบาย

คำตอบ:


4

พฤติกรรมพวงมาลัยสำหรับตัวละครอิสระ ตรวจสอบการค้นหาและการมาถึง


1
ยอดเยี่ยมสำหรับเรือบรรทุกสินค้าหรือยานอวกาศ แต่เพื่อนำไปใช้กับฟิสิกส์ของยานพาหนะคุณต้องตีความเวกเตอร์ที่ได้และคุณจะกลับไปที่ปัญหาเดิมอีกครั้ง
tenpn

3

การใช้แคลคูลัสถ้าคุณรู้ความเร็วและอัตราการลดความเร็วสูงสุดของคุณคุณสามารถทราบระยะหยุดขั้นต่ำของคุณได้ โดยที่ในใจคุณสามารถรู้ได้อย่างแม่นยำว่าเมื่อใดที่คุณต้องใช้เบรค (ข้อผิดพลาดในการปัดเศษ / การคำนวณเชิงปริมาณ) เพื่อหยุดที่จุดใดจุดหนึ่ง

ตอนนี้หวังว่าคนที่ดีกว่าในวิชาคณิตศาสตร์กว่าฉันจะโพสต์สูตรจริง ...


2
finalPositionDelta = -0.5 * sqr(currentSpeed) / maximumDecelerationอย่างไรก็ตามสิ่งนี้ถือว่าการชะลอตัวของคุณเป็นค่าคงที่ซึ่งขึ้นอยู่กับความลึกของการจำลองของคุณอาจไม่เป็นเช่นนั้น ฉันจะไปด้วยวิธีแก้ปัญหาของ Ranieri (ขออภัยว่ามันคือการลดลง DIV ไม่ใช่โมล)
2010

ใช่วิธีนี้ยังคงมีประโยชน์แม้ว่าคุณจะวางกรอบมันเป็นปัญหาระบบควบคุมเพราะการเข้าใจการไล่ระดับสีที่เกี่ยวข้องควรช่วยหลีกเลี่ยงความไม่แน่นอนหรือความผันผวนในการวัดข้อผิดพลาด
Kylotan

3

มันเป็นปัญหาการควบคุม คุณต้องเปลี่ยนแปลงอินพุตของคุณตามสัดส่วนกับการวัด "ข้อผิดพลาด" บางประเภทเช่นระยะห่างจากเป้าหมาย ดูคำตอบสำหรับคำถามนี้ด้วย

การติดตามเป้าหมาย: เมื่อใดที่จะเร่งและลดความเร็วของป้อมปืนหมุน?


1

บางครั้งในการพัฒนาเกมคุณต้องใช้ทางลัด ปุมลัดที่นี่เรียกวา Impulse ซึ่งการพูดดานกายภาพเปนการบังคับขนาดใหญมากในเวลาอันสั้น แทนที่จะรวมเข้าด้วยกันเมื่อเวลาผ่านไปคุณเพียงนำมันไปใช้กับพารามิเตอร์เป็นการเปลี่ยนแปลงโดยตรง: ตั้งค่าความเร็วเป็น 0

คำถามคือคุณต้องการใช้ทางลัดหรือไม่?


2
ฉันไม่กังวลเกี่ยวกับการใช้ทางลัดหากผู้เล่นไม่สามารถมองเห็นได้ แต่ถ้ายานพาหนะสามารถหยุดยั้งได้ในจุดนี้มันจะดูแปลกมาก
Iain

1
นั่นเป็นเรื่องจริง แต่ก็ช่วยให้หยุดได้อย่างแม่นยำ ณ จุดที่คุณต้องการหลังจาก decelaration ดังนั้นหลีกเลี่ยงการคำนวณที่ซับซ้อนและให้แบ่งเวลาของคุณหลายครั้งเกินไป
ADB
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.