Изменение угла от Pi до 2Pi - PascalABC.NET
Формулировка задачи:
Как изменить функцию GetAngle, чтобы угол менялся в пределах от 0 до 2*Pi, а не до Pi? Угол определяется между положительным направлением оси X и радиус-вектором.
Решение задачи: «Изменение угла от Pi до 2Pi»
textual
Листинг программы
function Ugol(a,b:point):real; begin if (b.x>a.x)and(b.y<=a.y) then Ugol:=arctan((a.y-b.y)/(b.x-a.x)){I четверть} else if (b.x>a.x)and(b.y>a.y) then Ugol:=arctan((a.y-b.y)/(b.x-a.x))+2*pi{IV четверть} else if b.x<a.x then Ugol:=arctan((a.y-b.y)/(b.x-a.x))+pi{II-III четверти} else if b.x=a.x then begin if b.y<a.y then Ugol:=pi/2{вертикально вверх} else if b.y>a.y then Ugol:=3*pi/2{вертикально вниз} else Ugol:=0; end; end;
Объяснение кода листинга программы
Список изменений угла в зависимости от положения точек:
- I четверть: угол между положительной осью X и положительной осью Y, а также между положительной осью X и отрицательной осью Y равен arctan((a.y-b.y)/(b.x-a.x)).
- II-III четверти: угол между отрицательной осью X и положительной осью Y, а также между отрицательной осью X и отрицательной осью Y равен arctan((a.y-b.y)/(b.x-a.x))+pi.
- IV четверть: угол между положительной осью X и положительной осью Y, а также между положительной осью X и отрицательной осью Y равен arctan((a.y-b.y)/(b.x-a.x))+2*pi.
- Вертикально вверх: угол между положительной осью X и положительной осью Y равен pi/2.
- Вертикально вниз: угол между положительной осью X и отрицательной осью Y равен 3*pi/2.
- Угол между положительной осью X и положительной осью Y равен 0.
- Угол между положительной осью X и отрицательной осью Y равен 2*pi.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д