Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การสร้างคลาส Projectile คำนวณความสูง ระยะแนวนอน และการลงจอดใน JavaScript

ปัญหา

เราต้องเขียนคลาส JavaScript ชื่อ Projectile ซึ่งรับ 3 อาร์กิวเมนต์ตอนสร้าง:

  • ความสูงเริ่มต้น (0 ≤ h0 < 200)
  • ความเร็วเริ่มต้น (0 < v0 < 200)
  • มุมปล่อยกระสุน (0° < a < 90° วัดเป็นองศา)

ต้องเขียนเมธอดต่อไปนี้สำหรับคลาส Projectile:

  • เมธอด horiz ซึ่งรับอาร์กิวเมนต์ t และคำนวณระยะแนวนอนที่กระสุนเคลื่อนที่ [รับ double คืน double]

ตัวอย่าง

โค้ดสำหรับคลาสนี้:

class Projectile {
  constructor(h, u, ang) {
    this.h = h;
    this.u = u;
    this.ang = ang;
  }
}
Projectile.prototype.horiz = function(t) {
  const dist = 2 * Math.cos(this.ang) * t;
  return dist;
};
const p = new Projectile(5, 2, 45);
const horizontal = p.horiz(.2);
console.log(horizontal);

ผลลัพธ์

0.2101287955270919

คำอธิบายเพิ่มเติม

โค้ดมีปัญหา: Math.cos() รับค่าเป็นเรเดียน ไม่ใช่องศา ควรแปลง: `Math.cos(this.ang * Math.PI / 180)` สูตรระยะแนวนอนจริงคือ `v0 * cos(θ) * t` ไม่ใช่ `2 * cos(θ) * t`