|
|
@@ -0,0 +1,24 @@
|
|
|
+求弓箭发射到指定坐标所需要的角度,如果没有解,则按弓的角度发射。
|
|
|
+已知初速度大小V,重力g,起始坐标(a1,a2),目标坐标(b1,b2)。
|
|
|
+解:
|
|
|
+1、列出关系式
|
|
|
+Δx = b1 - a1;
|
|
|
+Δy = b2 - a2;
|
|
|
+Vx = V * cos(angle)
|
|
|
+Vy = V * sin(angle)
|
|
|
+Vy * t + 1/2 * g * t^2 = Δy
|
|
|
+Vx * t = Δx
|
|
|
+t = Δx / Vx
|
|
|
+2、推导过程
|
|
|
+(V * sin(angle)) * Δx / (V * cos(angle)) + 1/2 * g * Δx^2 / (V^2*cos(angle)^2) = Δy
|
|
|
+tan(angle) * Δx + 1/2 * g * Δx^2 / (V^2*cos(angle)^2) = Δy
|
|
|
+tan(angle) * Δx + 1/2 * g * (Δx^2 / V^2) * (1 + tan(angle)^2) = Δy
|
|
|
+3、根据求根公式得出结论
|
|
|
+a = 1/2 * g * Δx^2 / V^2
|
|
|
+b = Δx
|
|
|
+c = a - Δy
|
|
|
+d = tan(angle) = (-b ± (b^2 - 4*a*c)^0.5) / (2*a)
|
|
|
+angle = atan(d)
|
|
|
+
|
|
|
+
|
|
|
+
|