java - 那么从: If 'slope' is not sufficient,点出发的具体方向是什么呢?

标签 java point angle

计划是计算两点(角色和光标)之间的斜率,将其转换为与水平面的角度,并根据该角度,切换到特定的角色 Sprite ,使其看起来指向光标(例如:0-30 度,一个 Sprite 。30-60 度,另一个 Sprite 。另一个 60-90 度,等等)。我后来遇到的问题是斜坡可以在某种程度上相互镜像。

我意识到(现在看起来很明显)的问题是,将字符放在 A 点并将光标放在 B 点将与字符点 B 和光标在 A 点具有相同的斜率/角度。它没有办法知道指向的方向。

Illustration of my issue

我不知道从这里该做什么。最简单的解决方案是拥有它,这样玩家的方向就不会通过这种方式被发现(无论是面向右还是向左),而是通过箭头键,但我将其保存为最后的手段这会导致快速瞄准出现问题。

最佳答案

double deltaX = point1.x - point2.x;
double deltaY = point1.y - point2.y;
double angleInRadians = java.lang.Math.atan2(deltaX, deltaY);
double length = java.lang.Math.sqrt(deltaX * deltaX + deltaY * deltaY);

关于java - 那么从: If 'slope' is not sufficient,点出发的具体方向是什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13202686/

相关文章:

java - 避免对象中的参数参数具有相同的值

java - 如何访问位于 Java 中另一个类的另一个方法内的类内的方法

actionscript-3 - AS3 - 检测您是否在不按下鼠标按钮的情况下单击了对象

cocoa - 旋转 NSView 并获取其角点

java - 我让玩家面向鼠标方向,但因此出现了问题

angle - 将角度的风向转换为文本词

Java:水平和垂直移动比对角线移动快

Java 8 原始流到集合的映射方法

java - 将一个实例注入(inject)多个 bean

c# - 将点对象添加到 ZedGraph