Среда, 27 Ноября 2024, 10:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Формла подсчета угла
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, причем тут вообще я, это же ТС интересовался или ты потролить захотел wink

Мои проекты:
- Свободный и открытый клон World Of Goo
- TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)

[GameMaker: Studio v1.4.9999]
wcptДата: Понедельник, 07 Июля 2014, 19:48 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
я просто посмотрел, и увидел, где написано проще. Я бы рекомендовал использовать то, что проще.
OpenGOOДата: Понедельник, 07 Июля 2014, 20:06 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
wcpt, в три строчки конечно проще. Ваш КО wink

Мои проекты:
- Свободный и открытый клон 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.

Всем добра
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг