我想得到点1和点2之间相对于中心点的角度。我如何使用Vector2做到这一点?
Vector2 center = new Vector2((float)Gdx.graphics.getWidth /2, (float)Gdx.graphics.getHeight /2);
Vector2 point1 = new Vector2(center.x, center.y + 200.0f);
Vector2 point2 = new Vector2(center.x + 200.0f, center.y);
它应该是90°,但我该怎么做?
答案 0 :(得分:2)
Vector2 center = new Vector2(500, 500);
Vector2 point1 = new Vector2(center.x, center.y + 200.0f);
Vector2 point2 = new Vector2(center.x + 200.0f, center.y);
point1.sub(center).nor();
point2.sub(center).nor();
float angle = (MathUtils.atan2(point1.y, point1.x) - MathUtils.atan2(point2.y, point2.x));
angle *= MathUtils.radiansToDegrees;
System.out.println(angle); // 90.0
可以在互联网上的任何位置查找角度计算。例如here。
它适用于我们在计算之前执行的一个额外步骤。我们需要将中心视为(0,0)原点,通过从点中减去它并在之后对它们进行标准化。
答案 1 :(得分:0)
获取两个点的向量并减去rotation / worldAngle。这样的事情应该做:
RuntimeException