Flo*_*rin 2 java math trigonometry vector
我们正在尝试获取 v 和 u 之间的 cos 值,但我们得到的结果远高于 1 或低于 0
在哪里 :
vx = in.nextInt(); // x speed of your pod
vy = in.nextInt(); // y speed of your pod
int ux = nextCheckPointIdX - x;
int uy = nextCheckPointIdY - y;
Run Code Online (Sandbox Code Playgroud)
这是公式:
double cos = (vx*ux + vy*uy) / ( Math.sqrt(Math.pow(vx, 2) + Math.pow(vy, 2)) + Math.sqrt(Math.pow(ux, 2) + Math.pow(uy, 2)) );
Run Code Online (Sandbox Code Playgroud)
你发现上一行有什么错误吗?
分母有问题。
int num = (vx*ux + vy*uy);
double den = (Math.sqrt(Math.pow(vx, 2) + Math.pow(vy, 2)) * (Math.sqrt(Math.pow(ux, 2) + Math.pow(uy, 2))) );
double cos = num / den;
System.out.println(cos);
System.out.println(Math.acos(cos));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7789 次 |
| 最近记录: |