Как получить координаты точки в системе координат на основе угла и расстояния - PullRequest
7 голосов
/ 26 марта 2012

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

Ответы [ 4 ]

23 голосов
/ 26 марта 2012

Вы используете 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)).

3 голосов
/ 26 марта 2012

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

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

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

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

r = sqrt(x*2+y*2)
a = atan2(y,x)
3 голосов
/ 26 марта 2012

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

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

2 голосов
/ 26 марта 2012
px = x + r * cos(phi)
py = y + r * sin(phi)

, где [px py] - это искомая точка, [x y] - это "начало координат", r - это расстояние, а phi - это угол к цели от начала координат.

РЕДАКТИРОВАТЬ: http://en.wikipedia.org/wiki/Polar_coordinate_system Эта ссылка, которая была любезно размещена Барт Киерс, может дать некоторую справочную информацию.

...