Вот еще немного:
Векторы представляют смещение. Смещение, перемещение, перемещение или как вы хотите это назвать, не имеет смысла без отправной точки, поэтому я назвал приведенный выше «прямой» вектор «от центроида», и поэтому «вектор центроида», вектор с x / y-компоненты точки центроида не имеют смысла. Эти компоненты дают вам смещение точки центроида от начала координат. Другими словами, pOrigin + vCentroid = pCentroid. Если вы начинаете с точки 0, а затем добавляете вектор, представляющий смещение точки центроида, вы получаете точку центроида.
Обратите внимание, что:
вектор + вектор = вектор
(добавление двух смещений дает третье, другое смещение)
точка + вектор = точка
(перемещение / смещение точки дает вам другую точку)
точка + точка = ???
(добавление двух точек не имеет смысла; однако:)
точка - точка = вектор
(разница двух точек - это смещение между ними)
Теперь об этих смещениях можно думать (по крайней мере) двумя разными способами. Вы уже знакомы с системой прямоугольная (x, y), где две составляющие вектора представляют смещение в направлениях x и y соответственно. Однако вы также можете использовать полярные координаты, (r, Θ). Здесь Θ представляет направление смещения (в углах относительно произвольного нулевого угла), а r - расстояние.
Взять, к примеру, вектор (1, 1). Он представляет собой движение на одну единицу вправо и на одну единицу вверх в системе координат, которую мы все привыкли видеть. Полярный эквивалент этого вектора будет (1,414, 45 °); то же самое движение, но представленное как «смещение 1,414 единиц в направлении угла 45 °. (Опять же, используя удобную полярную систему координат, где восточное направление равно 0 °, а углы увеличиваются против часовой стрелки.)
Соотношение между полярными и прямоугольными координатами:
Θ = atan2 (y, x)
r = sqrt (x² + y²) (теперь вы видите, где появляется правый треугольник?)
и наоборот
x = r * cos (Θ)
y = r * sin (Θ)
Теперь, поскольку отрезок линии, проведенный от центроида вашего треугольника к углу «кончика», будет представлять направление, в котором «треугольник» стоит «лицом», если бы мы получили вектор, параллельный этой линии (например, vForward = pTip - pCentroid ), Θ-координата этого вектора будет соответствовать углу, с которым сталкивается ваш треугольник.
Снова возьмите вектор (1, 1). Если бы это было vForward, то это означало бы, что координаты x и y вашей «точки наконечника» были на 1 больше, чем у вашего центроида. Допустим, центроид включен (10, 10). Это ставит угол «наконечника» на (11, 11). (Помните, pTip = pCentroid + vForward , добавив «+ pCentroid» к обеим сторонам предыдущего уравнения.) Теперь, в каком направлении обращен этот треугольник? 45 °, верно? Это Θ-координата нашего (1, 1) вектора!