Как получить координаты точки в системе координат, когда все, что у меня есть, - это координаты начала координат (x, y) и угол от начала координат до точка и расстояние от начала до точки?Как получить координаты точки в системе координат на основе угла и расстояния
ответ
Вы используете 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)
)
например.
+1: Поскольку на самом деле он использует Java-функции, на которые мой ответ не был :) –
+1 для полного ответа ... Вот что такое опыт !!! – aProgrammer
Как это можно изменить для 3D-системы? – helion3
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 Эта ссылка, которая была хорошо опубликована Бартом Кирсом, может дать некоторую справочную информацию.
Если d является расстоянием и А представляет собой угол, чем coordnates точки, будет
(х + д * Cos (А), у + d * sin (А))
Это неверно, поскольку он не учитывает, что точка смещена в любую другую произвольную точку (x, y). –
@kigurai; Спасибо, что указали это. Отредактировал код. Это было на уме, когда я печатал, я не знаю, как я его пропустил ... В любом случае спасибо еще раз ... – aProgrammer
Если r
этого расстояния от происхождения и a
угла (в радианах) между осью х и точкой можно легко вычислить координаты с переходом от полярных координат:
x = r*cos(a)
y = r*sin(a)
(это предполагает это происхождение помещается в (0,0)
, в противном случае вы должны добавить смещение к окончательному результату).
Обратный результат получается путем вычисления по модулю вектора (так как расстояние + угол составляет вектор) и арктангенса, которое может быть рассчитано с использованием функции atan2
.
r = sqrt(x*2+y*2)
a = atan2(y,x)
Похоже, что речь идет скорее о математическом вопросе (алгебре), чем о вычислительном вопросе. Знаете ли вы формулы, необходимые для расчета новой точки? –
http://mathworld.wolfram.com/PolarCoordinates.html или http://en.wikipedia.org/wiki/Polar_coordinate_system –
Зависит от типа системы координат, но большую часть времени использует простые тригонометрические функции, называемые sin(), cos(). – hovanessyan