我想尝试用Java OpenGL构建一个雷达。基本上,在这个方法中,你传入玩家的当前位置,玩家面对的角度和敌人的位置。如果敌人在正前方,红点(象征敌人)应该在圆圈(雷达)的顶部,可以说是0度。如果直接向右,红点就是90度,以此类推。基本上,我试图找出正在玩家前面射出的矢量和玩家到敌人的矢量之间的角度。我到底该怎么做呢?我环顾四周,找到了atan2()的建议,但还不确定如何使用它。如果有更快,更有效的方式做事情,请让我知道。
编辑:我使用了绘制点的方法,而不是点积和cos等,并且我使用玩家的位置作为原点。但是,如果距离大于使用距离公式选择的数字70,我如何使敌点出现在雷达的边缘?任何低于70的敌人都在雷达范围内,但任何超过70的敌人,我希望敌人只是在雷达的边缘盘旋,而不是让敌人的点消失。
发布于 2012-12-09 01:48:32
假设你的玩家和敌人是在一些2D空间(甚至3D空间,但他们在2D平面上移动,比如平地),我认为更简单的方法是直接将玩家/敌人实体的位置映射到雷达上,然后以玩家为原点在雷达上应用旋转变换,基于玩家当前面对的相对于真正北面的角度。
https://stackoverflow.com/questions/13780042
复制相似问题