Как получить координаты точки в системе координат на основе угла и расстояния

Как получить координаты точки в системе координат, когда все, что у меня есть, это координаты начала координат (x, y) и угол от начала координат до точки и расстояние от начала координат до точки?

4 ответов


вы используете Math.cos, Math.sin такой:

pointX = x + distance * Math.cos(angle)
pointY = y + distance * Math.sin(angle)

отметим, что Math.cos и Math.sin предполагает, что аргумент задан в радианс. Если у вас есть угол в градусах, нужно использовать Math.cos(Math.toRadians(angle)) например.


если r - это расстояние от начала координат и a это угол (в радианах) между осью x и точкой, которую вы можете легко вычислить координаты с преобразованием из полярных координат:

x = r*cos(a)
y = r*sin(a)

(это предполагает, что origin помещается в (0,0), в противном случае вы должны добавить смещение к конечному результату).

обратный результат получается путем вычисления модуля вектора (так как расстояние + угол составляют вектор) и арктангенса, который может быть рассчитывается с помощью atan2 активировать.

r = sqrt(x*2+y*2)
a = atan2(y,x)

Если D-расстояние, А A-угол, то координаты точки будут

(x+d*Cos(A), y+ d*Sin (A))


px = x + r * cos(phi)
py = y + r * sin(phi)

здесь [px py] смысл вы ищете, [x y] - это "происхождение", r - Это расстояние и phi угол к цели от исходной точки.

EDIT:http://en.wikipedia.org/wiki/Polar_coordinate_system Эта ссылка, которую любезно разместил Барт Кирс, может дать некоторую справочную информацию.