4 / 4 / 3
Регистрация: 25.04.2015
Сообщений: 95
1

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

03.08.2016, 15:41. Показов 6928. Ответов 6
Метки нет (Все метки)

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

Как найти угол поворота прямой, по двум точкам другой прямой?
Здравствуйте, не думаю что правильно сформулировал заголовок темы, но стоит следующая задача: ...

Найти угол наклона боковой грани до плоскости основания
Помогите пожалуйсто, никак не могу решить... Задача 1: В правильной четырехугольной пирамиде...

Найти угол наклона бокового ребра к плоскости основания
Задача 2: В правильной треугольной пирамиде угол между боковыми гранями равен δ. Найти угол...

Найти угол наклона плоскости, чтобы тело скользило по ней с ускорением 5,65 м/с2
Каков должен быть угол наклона плоскости, чтобы тело скользило по ней с ускорением 5,65 м/с2, если...

6
Заблокирован
03.08.2016, 15:55 2
Лучший ответ Сообщение было отмечено Diamond15 как решение

Решение

C#
1
degrees = ((Math.Atan2 (Target.Y - Position.Y,Target.X - Position.X) +2*Math.PI)*180/ Math.PI)%360;
2
4 / 4 / 3
Регистрация: 25.04.2015
Сообщений: 95
03.08.2016, 18:42  [ТС] 3
Спасибо, работает

Добавлено через 1 час 55 минут
Подскажите, пожалуйста, у меня почему-то идет расчет от обратного: есть позиция текущая (т.1) и позиция назначения (т.2). То есть если у меня т.1 находится строго слева от т.2, то должно выдать 0 градусов (нам надо двигаться в направлении 0 градусов и мы достигнем т.2). А выдает 180... Хотя по формуле-то вроде все правильно. Или я не понимаю назначения того, что мы рассчитали?
Ну и так со всеми значениями.
0
Заблокирован
03.08.2016, 19:00 4
Target Position какие?
0
4 / 4 / 3
Регистрация: 25.04.2015
Сообщений: 95
03.08.2016, 19:25  [ТС] 5
Target 640, 384
Position 542, 172
Ответ 65 градусов
0
Заблокирован
03.08.2016, 19:33 6
Цитата Сообщение от Diamond15 Посмотреть сообщение
65 градусов
212/98? очень может быть, что не устраивает?
1
4 / 4 / 3
Регистрация: 25.04.2015
Сообщений: 95
03.08.2016, 19:38  [ТС] 7
Ступил, все правильно. На экране точки располагаются так, что Target под Position, то есть зрительно - на юге. Но начало координат 0,0 - левый верхний угол. Так что - да, вроде правильно :-) спасибо ;-)
0
03.08.2016, 19:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2016, 19:38
Помогаю со студенческими работами здесь

Найти максимальный угол наклона плоскости, при котором цилиндр не будет скатываться
Цилиндр радиусом \mathit{R} имеет цилиндрическое отверстие радиусом \mathit{r=\frac{R}{2}} , ось...

Найти формулу ф-ции по двум точкам (графику)
даны 2 точки: h &amp; y при h=255 y=1 при h=0 y=1.05 всю голову сломал, а формулу вывести не могу...

Как найти кватернион вращения по двум точкам ?
Начальное положение точки = Конечное положение точки после вращения = Кто что подскажет ? Углы...

Как найти угол между двумя прямыми на плоскости по известным точкам
Есть 2 прямые, для которых известна точка пересечения и еще по одной точке для каждой прямой....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru