我试着做一个指向某个位置的箭头,但问题是,当我用向量做一个角度时,他不能改变东西之间的区别,因为两者都是90°。我怎样才能使西方负的,或加上180度,使两者之间的差异?
我的代码:
double angle = 0;
Vector a = (targetLoc).toVector().subtract(player.getLocation().toVector()).normalize();
Vector b = player.getLocation().getDirection();
angle = Math.acos(a.dot(b));
angle = Math.toDegrees(angle);targetLoc是我想指出的位置
例如,当球员的视觉坐标在90°时,西侧和est的角度是90°,或者当坐标与玩家的视觉相距45°时,西侧和est的角度是45°。
我只想使用x和z计划,而不是y。
发布于 2020-02-08 07:36:25
这是我所做的,谢谢你的帮助
Vector a = (targetLoc).toVector().subtract(player.getLocation().toVector()).normalize();
Vector b = player.getLocation().getDirection();
angle = Math.acos(a.dot(b));
angle = Math.toDegrees(angle);
if(a.getX()*b.getZ() - a.getZ()*b.getX() < 0) {
angle = -angle;
}https://stackoverflow.com/questions/60100846
复制相似问题