Построение треугольника с использованием курса и фиксированных расстояний? - PullRequest
0 голосов
/ 27 мая 2011

Я хочу построить треугольник в реальном мире, чтобы представить двумерный «угол обзора», используя координаты пользователя, курс (градусы, в настоящее время обращенные от истинного севера) и фиксированные расстояния, которые показывают, как далеко они могут видеть.

Я представлял, как рисую линию на расстоянии K1 от точки пользователя в направлении курса и отмечаю временную точку, затем рисую перпендикулярную линию в этой точке к предыдущей линии и отмечаю 2 точки на каждой стороне перпендикуляра. расстояние до линии К2 от точки.

Это дало бы мне 3 очка, которые мне нужны. Для тех, кто разбирается в математике, во-первых, возможно ли это, а во-вторых, можете ли вы дать мне несколько советов о том, как подойти к этому? Спасибо.

1 Ответ

0 голосов
/ 27 мая 2011

В декартовых координатах:

Предположим:

  • +Y ось северная.
  • K2 - это расстояние от «временной точки» до двух создаваемых вами точек.
  • Текущая позиция (Cx, Cy)
  • Направление (H) - угол по часовой стрелке от оси Y.
  • Временная точка (Tx, Ty)
  • Оставшиеся две точки: (Px, Py) и (Qx, Qy)

Тогда:

Tx = Cx + K1 * sin(H)
Ty = Cy + K1 * cos(H)

Px = Tx - K2 * cos(H)
Py = Ty + K2 * sin(H)

Qx = Tx + K2 * cos(H)
Qy = Ty - K2 * sin(H)

При вычислении (Tx, Ty) вы используете sin(H) с координатой x и cos(H) с координатой y, поскольку угол измеряется от оси Y. При вычислении (Px, Py) и (Qx, Qy) вы используете тот факт, что если (a, b) является некоторым вектором, то любое кратное (-a, b) является вектором, перпендикулярным первому. Следовательно, (sin(H), cos(H)) превращается в (-sin(H), cos(H)) и (cos(H), -sin(H)). Это не соответствует определению скалярного произведения в двумерном декартовом пространстве и тому факту, что скалярное произведение перпендикулярных векторов равно нулю.

...