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

#math #vector #geometry #2d

#математика #вектор #геометрия #2d

Вопрос:

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

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

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

Ответ №1:

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

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

  • 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)) . Это выпадает из определения скалярного произведения в двумерном декартовом пространстве и не зависящего от координат факта, что скалярное произведение перпендикулярных векторов равно нулю.