LERP การแก้ไขเชิงเส้น
ฉันให้คำตอบสำหรับปัญหาที่คล้ายกันเมื่อหลายวันก่อน แต่ที่นี่เราไป:
การประมาณค่าเชิงเส้นเป็นฟังก์ชันที่ให้ตัวเลขระหว่างสองตัวเลขตามความคืบหน้า คุณทำได้จริงรับคะแนนระหว่างสองจุด
The Great Formula - วิธีการคำนวณ
สูตร LERP pu = p0 + (p1 - p0) * u
ทั่วไปจะได้รับจาก ที่ไหน:
- pu: หมายเลขผลลัพธ์
- p0: หมายเลขเริ่มต้น
- p1: หมายเลขสุดท้าย
- u: ความคืบหน้า มันจะได้รับในอัตราร้อยละระหว่าง 0 และ 1
วิธีรับเปอร์เซ็นต์
คุณอาจสงสัยว่า "ฉันจะได้เปอร์เซ็นต์นี้ได้อย่างไร!" ไม่ต้องกังวล มันเป็นเช่นนี้: กี่ครั้งที่จุดจะใช้เวลาในการเดินทางสำหรับเวกเตอร์เริ่มต้นที่จะเสร็จสิ้น? ตกลงแบ่งตามเวลาที่ผ่านไปแล้ว สิ่งนี้จะให้เปอร์เซ็นต์แก่คุณ
ดูสิสิ่งนี้: percentage = currentTime / finalTime;
กำลังคำนวณเวกเตอร์
ในการรับเวกเตอร์ผลลัพธ์สิ่งที่คุณต้องทำคือใช้สูตรสองครั้งหนึ่งรายการสำหรับองค์ประกอบ X และอีกหนึ่งองค์ประกอบ Y บางสิ่งเช่นนี้
point.x = start.x + (final.x - start.x) * progress;
point.y = start.y + (final.y - start.y) * progress;
การคำนวณเวลาผันแปร
คุณอาจต้องการให้คะแนนของคุณเดินทางด้วยความเร็ว 0.5 คะแนนใช่ไหม? สมมุติว่าระยะทางที่ไกลกว่านั้นจะเดินทางในอีกต่อไป
คุณสามารถทำได้ดังนี้
ฉันหวังว่าคุณจะรู้คณิตศาสตร์เวกเตอร์ ถ้าคุณทำไม่ได้คุณสามารถคำนวณเวกเตอร์ความยาวด้วยสูตรd = sqrt(pow(v.x, 2) + pow(v.y, 2));
นี้
เสร็จสิ้น
ข้อสังเกต:บางทีนี่อาจไม่ใช่ความเร็วที่คุณตั้งใจ แต่นี่เป็นสิ่งที่ถูกต้อง ดังนั้นคุณมีการเคลื่อนที่เชิงเส้นแม้ในแนวทแยง หากคุณต้องการทำ x + = 0.5f, y + = 0.5f ให้อ่านหนังสือคณิตศาสตร์เวกเตอร์และตรวจสอบแผนของคุณอีกครั้ง
goal_dist
ในif
สภาพของคุณ?