我最近在寻找如何为游戏创建简单的机器人,有两种方法可以做到这一点 1 是使用 atan2 和 sin 例如计算俯仰和偏航
但是还有另一种方法人们如何计算它,我的问题是它是如何工作的?
代码:
void CalcAngle(float *src, float *dst, float *angles)
{
double delta[3] = {(src[0] - dst[0]), (src[1] - dst[1]), (src[2] - dst[2])};
int x = 0;
int y = 1;
int z = 2;
float hyp = delta[x] * delta[x] + delta[y] * delta[y];
angles[0] = asinf(delta[z] / hyp) * 180 / pi;
angles[1] = atanf(delta[y] / delta[x]) * 180 / pi;
if(angles[0] > 0.0)
{
angles[1] += 180;
}
}
和我的想象人们是如何做到的
如果有人知道这段代码发生了什么,你能向我解释一下它是如何计算有效值的。例如,它不能计算第三象限和第二象限的角度,那么它是如何对其他人起作用的呢?为什么他们要计算三角形的相邻而不是斜边的对立?我不会问这段代码是否是一个案例,但我已经在很多案例中看到了。