Найти угол наклона по двум точкам - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте ) Столкнулся с проблемой: имеются две точки с координатами (x1,y1) (x2,y2), нужно найти направление от т.1 к т.2. Направление - с шагом 45 градусов присваивается значение string W,NW,N,NE,E,SE,S,SW. Поможете? )
Листинг программы
  1. public void DirectionCalculation()
  2. {
  3. double degrees;
  4. double radians;
  5. string CurrentDirection;
  6. radians = Math.Atan((Target.Y - Position.Y)/(Target.X - Position.X));
  7. degrees = radians * (180 / Math.PI);
  8. if (degrees >= 0 && degrees < 45)
  9. { CurrentDirection="W";}
  10. else if (degrees >= 45 && degrees < 90)
  11. { CurrentDirection="NW";}
  12. else if (degrees >= 90 && degrees < 135)
  13. { CurrentDirection="N";}
  14. else if (degrees >= 135 && degrees < 180)
  15. { CurrentDirection="NE";}
  16. else if (degrees >= 180 && degrees < 225)
  17. { CurrentDirection="E";}
  18. else if (degrees >= 225 && degrees < 270)
  19. { CurrentDirection="SE";}
  20. else if (degrees >= 270 && degrees < 315)
  21. { CurrentDirection="S";}
  22. else if (degrees >= 315 && degrees < 360)
  23. { CurrentDirection = "SW"; }
  24. }
Этот код чего-то не работает. Target и Position - Vector2, координаты - стандартные экранные, левый верхний угол - 0,0. Имеет ли значения ситуации, когда Target и Position в разных четвертях друг относительно друга?

Решение задачи: «Найти угол наклона по двум точкам»

textual
Листинг программы
  1. degrees = ((Math.Atan2 (Target.Y - Position.Y,Target.X - Position.X) +2*Math.PI)*180/ Math.PI)%360;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.615 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы