Пожалуйста, помогите с алгоритмом расчета наклона Итак, у нас есть декартова система координат.Х прямо у Y сверху.Есть линия, которая проходит через центр координат.Требуется определить угол относительно оси OX.
Итак, вот что я делаю
- Некоторые функции переданы в начало координат (верхняя строка) и конец строки
- Определить dx, dy
- Hildren высвобождает два параметра в atan2 (dy, dx)
- Возвращает результат в радианах.
Но!У меня atan2 работает только в пределах 180 градусов.После 180 движется в другом направлении.
Итак, вопрос: каков правильный алгоритм нахождения угла?Нужно ли принимать значения dy, dx по величине?Как рассчитать арктангенс для всех 360 и более?Я был бы рад услышать конкретные алгоритмы или фрагменты кода комментариев.Спасибо!
static inline CGFloat angleBetweenLinesInRadians2 (CGPoint line1Start, CGPoint line1End)
{
CGFloat dx = 0, dy = 0;
dx = line1End.x - line1Start.x; / / whether to do fabs (line1End.x - line1Start.x);
dy = line1End.y - line1Start.y;
CGFloat rads = atan2 (dy, dx); / / whether to do fabs (rads)
return rads;
}