Формла подсчета угла
|
|
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.
Всем добра
|
|
| |