ARC по часовой стрелке или против часовой стрелки?

55
7

У меня есть ARC. Для ARC у меня есть следующая информация:

Начальная точка. Конечная точка. Еще один третий пункт в ARC. Центральная точка.

Ниже изображения в деталях:

enter image description here

Теперь вопрос в том, как проверить, что ARC - это часы или против часовой стрелки?

спросил(а) 2015-11-27T18:53:00+03:00 4 года, 7 месяцев назад
1
Решение
66

В 2D вы можете использовать кросс-продукт, который возвращает перенос перпендикулярного вектора на векторы. Сторона, на которую он указывает, зависит от порядка мультипликаторов (CW/CCW), поэтому, если вы получили векторы v1,v2 то v1 x v2 = - (v2 x v1). если v1,v2 - двумерные векторы, то результат их пересечения лежит только в Z-координате, поэтому:

Пусть начальная точка SP, конечная точка - EP, а средняя точка - MP.
Форменные векторы SE = EP - SP и SM = MP - SP и вычисляют знак Z-координаты их поперечного произведения.

CP = SE.X * SM.Y - SE.Y * SM.X

Дуга по часовой стрелке, если кросс-продукт положителен и против часовой стрелки, если отрицательный (или наоборот, зависит от того, как определяется ваша 2D-система координат).

ответил(а) 2015-11-27T21:53:00+03:00 4 года, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема