弓箭发射角度.txt 721 B

123456789101112131415161718192021222324
  1. 求弓箭发射到指定坐标所需要的角度,如果没有解,则按弓的角度发射。
  2. 已知初速度大小V,重力g,起始坐标(a1,a2),目标坐标(b1,b2)。
  3. 解:
  4. 1、列出关系式
  5. Δx = b1 - a1;
  6. Δy = b2 - a2;
  7. Vx = V * cos(angle)
  8. Vy = V * sin(angle)
  9. Vy * t + 1/2 * g * t^2 = Δy
  10. Vx * t = Δx
  11. t = Δx / Vx
  12. 2、推导过程
  13. (V * sin(angle)) * Δx / (V * cos(angle)) + 1/2 * g * Δx^2 / (V^2*cos(angle)^2) = Δy
  14. tan(angle) * Δx + 1/2 * g * Δx^2 / (V^2*cos(angle)^2) = Δy
  15. tan(angle) * Δx + 1/2 * g * (Δx^2 / V^2) * (1 + tan(angle)^2) = Δy
  16. 3、根据求根公式得出结论
  17. a = 1/2 * g * Δx^2 / V^2
  18. b = Δx
  19. c = a - Δy
  20. d = tan(angle) = (-b ± (b^2 - 4*a*c)^0.5) / (2*a)
  21. angle = atan(d)