| Формла подсчета угла | 
|  | 
| 
| Cre-game | Дата: Понедельник, 07 Июля 2014, 15:45 | Сообщение # 1 |  |   старожил Сейчас нет на сайте | Всем здрасте! 
 Помогите, пожалуйста:
 
 Есть один объект на экране, есть курсор.
 Нужно составить формулу/программу, которая находила бы угол между этим объектом и позицией курсора.
 
 Всем добра
 |  |  |  |  | 
| 
| Folleah | Дата: Понедельник, 07 Июля 2014, 15:53 | Сообщение # 2 |  |   Архитектор Сейчас нет на сайте | Вы, случаем, не про угол между векторами? В математике формула есть специальная. Строите 2 вектора - один будет точкой отсчета (0 градусов), второй направлен в сторону объекта. Ну и дальше формулу юзай. Не поленился и нашел формулу:
 
   
 
   
 
 Сообщение отредактировал Folleah - Понедельник, 07 Июля 2014, 15:58 |  |  |  |  | 
| 
| Cre-game | Дата: Понедельник, 07 Июля 2014, 16:33 | Сообщение # 3 |  |   старожил Сейчас нет на сайте | Folleah, 
 Цитата Folleah (  ) Не поленился и нашел формулуГугл выдает много формул, путаюсь.
 
 Спасибо!
 
 Всем добра
 |  |  |  |  | 
| 
| OpenGOO | Дата: Понедельник, 07 Июля 2014, 18:13 | Сообщение # 4 |  |   почти ветеран Сейчас нет на сайте | На питоне это будет как то так 
 
 Код  class Point(object):
 def __init__(self, x, y):
 self.x = x
 self.y = y
 
 def __sub__(self, other):
 return Point(self.x - other.x, self.y - other.y)
 
 def __add__(self, other):
 return Point(self.x + other.x, self.y + other.y)
 
 class Line(object):
 def __init__(self, p1, p2):
 self.p1 = p1
 self.p2 = p2
 
 def angle(self):
 v = self.p2 - self.p1
 length = math.sqrt(v.x * v.x + v.y * v.y)
 s = v.y / length
 c = v.x / length
 return math.atan2(s, c)
 
 В общем надо вычислять через функцию atan2
 s - sin
 c - cos
 
 Мои проекты:
 - Свободный и открытый клон World Of Goo
 - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
 
 [GameMaker: Studio v1.4.9999]
 |  |  |  |  | 
| 
| triptix | Дата: Понедельник, 07 Июля 2014, 18:33 | Сообщение # 5 |  |   постоянный участник Сейчас нет на сайте | на as3 код такой: 
 Код  function angleDetect(x1, y1, x2, y2) {
 var dx = x2-x1;
 var dy = y2-y1;
 return Math.atan2(dy, dx)*180/Math.PI;
 }
 
где х и y - координаты обьектов
 |  |  |  |  | 
| 
| wcpt | Дата: Понедельник, 07 Июля 2014, 18:35 | Сообщение # 6 |  | постоянный участник Сейчас нет на сайте | OpenGOO, тогда уж лучше катеты непосредственно находить, и атан2 применять, как у triptix. |  |  |  |  | 
| 
| OpenGOO | Дата: Понедельник, 07 Июля 2014, 19:28 | Сообщение # 7 |  |   почти ветеран Сейчас нет на сайте | wcpt, причем тут вообще я, это же ТС интересовался или ты потролить захотел   
 Мои проекты:
 - Свободный и открытый клон World Of Goo
 - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
 
 [GameMaker: Studio v1.4.9999]
 |  |  |  |  | 
| 
| wcpt | Дата: Понедельник, 07 Июля 2014, 19:48 | Сообщение # 8 |  | постоянный участник Сейчас нет на сайте | я просто посмотрел, и увидел, где написано проще. Я бы рекомендовал использовать то, что проще. |  |  |  |  | 
| 
| OpenGOO | Дата: Понедельник, 07 Июля 2014, 20:06 | Сообщение # 9 |  |   почти ветеран Сейчас нет на сайте | wcpt, в три строчки конечно проще. Ваш КО   
 Мои проекты:
 - Свободный и открытый клон World Of Goo
 - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
 
 [GameMaker: Studio v1.4.9999]
 |  |  |  |  | 
| 
| wcpt | Дата: Понедельник, 07 Июля 2014, 20:16 | Сообщение # 10 |  | постоянный участник Сейчас нет на сайте | ну вот, я о том же. |  |  |  |  | 
| 
| Cre-game | Дата: Вторник, 08 Июля 2014, 06:50 | Сообщение # 11 |  |   старожил Сейчас нет на сайте | Всем спасибо за помощь, особенно triptix. 
 Всем добра
 |  |  |  |  |