java让minecraft玩家看到了这一点
我试图让球员看在特定的点。我所看到的只是这一点,但前提是它在它的视野中。我希望它也能上下看
public static void lookAt(double x, double y, double z) {
double l;
double w;
double c;
l = x - playerX;
w = z - playerZ;
c = Math.sqrt(l * l + w + w);
double alpha1 = -Math.asin(l / c) / Math.PI * 180;
double alpha2 = Math.acos(w / c) / Math.PI * 180;
if (alpha2 > 180) {
playerYaw = 180 - (float) alpha1;
} else {
playerYaw = (float) alpha1;
}
}
我寻找了一个音高算法,但似乎没有一个有效
# 1 楼答案
回答晚了,但如果你能得到一个单位向量,表示从你的位置到你想看的点的方向,你可以用简单的三角法计算俯仰和偏航
首先,你需要用点减去你的位置,然后将结果标准化,这将得到我们需要的方向向量(单位向量)
现在我们可以计算角度,Y的正弦弧将给出俯仰角,X和Z的tan弧将给出偏航角
要了解原因:https://en.wikipedia.org/wiki/Inverse_trigonometric_functions
现在你应该有了俯仰和偏航,别忘了把它们转换成度
以下是一些代码: