Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2008, 19:52   #1
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
Радость Узнать угол зная X и Y

Всем доброго времени суток!
Значит начал писать я игрушку, и встретил проблему, как вычислить угол поворота, зная X и Y обьекта.
Делал по формуле:

Код:
angle:=trunc(1/sin256(trunc(y/x)));
(один оборот - 256 градусов).

Но это не работает(работает, но неправильно).
Никто не знает рабочего кода?
Заранее спс!!!
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 12.05.2008, 20:03   #2
Witaliy
Форумчанин Подтвердите свой е-майл
 
Регистрация: 27.04.2008
Сообщений: 179
По умолчанию

Sin у радианах... может из-за етого?
www.programmer.uaforums.net - Український форум програмістів.

www.satellite.ipsys.net - Український форум супутникового телебачення.
Witaliy вне форума Ответить с цитированием
Старый 12.05.2008, 20:14   #3
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Извеняюсь за тупой вопрос, а как его перевести?
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 12.05.2008, 20:44   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

гугл рулит!

Цитата:
Следует иметь в виду, что аргумент тригонометрических функций sin и cos, а так же результат обратной тригонометрической функции arctan выражен в радианах. Для перевода радиан в градусы и обратно следует пользоваться следующими формулами:

Rad := Grad * Pi / 180; - перевод градусов (Grad) в радианы (Rad)
Grad := Rad * 180 / Pi; - обратный перевод
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.05.2008, 20:57   #5
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Извините конечно, я мож чего не понял, но вообще-то по-моему вот эти строчки полный бред:
Цитата:
Код:
angle:=trunc(1/sin256(trunc(y/x)));

(один оборот - 256 градусов).
Вы где эту формулу взяли? И почему оборот - 256, а не 360 градусов? Что значит запись sin256 - ? И наконец в четвертых, каким образом с помощью функции sin можно получить значение угла? Вот если бы еще например arcsin использовался - было бы понятно, а так...
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 12.05.2008, 22:43   #6
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Эта формула из статей DelphiWolrd.
Оборот 256 градусов по тому, что так было заранее придумано в модуле.
sin256 - это СИНУС, у которого оди оборот 256 градусов.
Если это бред, соизвольте выложить "истинный" код.
Зы: извеняюсь за флуд.
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 10.05.2009, 21:26   #7
playermet
Новичок
Джуниор
 
Регистрация: 10.05.2009
Сообщений: 1
По умолчанию

angle:=trunc(1/sin256(trunc(y/x)));
-Это бред.

На delfi я никогда не писал (хотя думаю это не имеет значение)
но на Алго формула выглядит так :

f:=arctan((mx-xc)/(my-yc));

где mx и my -координаты мыши, а xc и yc - координаты того, относительно чего угол.
playermet вне форума Ответить с цитированием
Старый 10.05.2009, 21:33   #8
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Эта формула из статей DelphiWolrd.
...
sin256 - это СИНУС, у которого оди оборот 256 градусов.
Если это бред, соизвольте выложить "истинный" код.
Лучше уж вы дайте ссыль на оригинальную статью в DelphiWolrd...

Хм... "sin256"...

Чтот мне кажется, что там может быть нечто вроде таблицы синусов из 256 значений...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 10.05.2009, 22:10   #9
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Нет, там это синус, который использует угол до 256-ти градусов. А вы что думаете для обычного синуса таблица из 360?) Нет, значит и там не таблица.
Спасибо всем конечно, итоговая формула -
Angle:=round(arctan2(Y2-Y1,X2-X1));
или
Angle:=round(arctan((Y2-Y1)/(X2-X1)));
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 10.05.2009, 22:43   #10
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
А вы что думаете для обычного синуса таблица из 360?)
Обычный синус считается по формуле разложения в ряд... Кажется...

А вот в качестве размера таблицы синусов на каком-то форуме рекомендовали использовать чилса равные степени двойки... Почему-то...

Кстати...
Цитата:
вычислить угол поворота, зная X и Y обьекта
Угол поворота относительно чего? Начала координат?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поворот буквы на указанный угол delphin100 Общие вопросы Delphi 1 02.06.2008 16:28
Как завершить процесс, зная его имя Никки Win Api 6 14.01.2008 14:04
как узнать ip адрес зная mac адрес Roman Работа с сетью в Delphi 9 25.06.2007 12:39
КАК поместить ИКОНКУ программы в правый нижний угол панели(там где пуск)??? micaell Общие вопросы Delphi 5 21.02.2007 19:58
Угол по тангенсу AVer Общие вопросы Delphi 9 01.02.2007 12:47