|
2D-программирование Вопросы, касающиеся двумерного программирования |
21.02.2009, 02:02
|
#1
|
Нуждающийся
Регистрация: 05.07.2008
Сообщений: 53
Написано 6 полезных сообщений (для 7 пользователей)
|
ATan2...
Народ, дело в том, что щас я пишу игру на пирике и мне очень помогло, если кто-то смог бы выложить уравнение, по которому работает ATan2 в BB.
|
(Offline)
|
|
21.02.2009, 02:19
|
#2
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: ATan2...
Товарищ, это же простейшая тригонометрия:
Тангенс есть отношение противолежащего угла к прилежащему (в нашем случае это y и x соответственно) Ну, а имея тангенс можно получить и его арктангенс. Таким образом получаем:
Font = LoadFont("Arial",18)
SetFont font
Print ATan2(4.0,3.0) ; Через ATan2
Print ATan(4.0/3.0) ; Через описанное выше и ATan
WaitKey
Выводит 2 одинаковых знаения Ч.т.д.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
Последний раз редактировалось ABTOMAT, 21.02.2009 в 02:25.
|
(Offline)
|
|
21.02.2009, 03:48
|
#3
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: ATan2...
хм. а так?
Font = LoadFont("Arial",18)
SetFont font
Print ATan2(4.0,0.0) ; Через ATan2
Print ATan(4.0/0.0) ; Через описанное выше и ATan
WaitKey
|
(Offline)
|
|
21.02.2009, 08:20
|
#4
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: ATan2...
|
(Offline)
|
|
21.02.2009, 09:11
|
#5
|
|
Ответ: ATan2...
JohnK
это же float
|
|
|
21.02.2009, 09:55
|
#6
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: ATan2...
Я что-то упустил, или блиц умеет делить на ноль?
Последний раз редактировалось johnk, 21.02.2009 в 10:03.
|
(Offline)
|
|
21.02.2009, 12:35
|
#7
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: ATan2...
Как дети малые..делить на ноль нельзя целые числа, а дробные можно.
__________________
|
(Offline)
|
|
21.02.2009, 13:52
|
#8
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: ATan2...
дробные тоже нельзя. точнее будет "бесконечность"
курите ftp://ftp.elin.ru/pdf/iBDL/Float_IEEE_754.pdf
поэтому то я и говорю, что atan(a/b) это не одно и тоже, что и atan2(a,b).
|
(Offline)
|
|
21.02.2009, 13:59
|
#9
|
Нуждающийся
Регистрация: 05.07.2008
Сообщений: 53
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: ATan2...
Сообщение от ABTOMAT
Товарищ, это же простейшая тригонометрия:
Тангенс есть отношение противолежащего угла к прилежащему (в нашем случае это y и x соответственно) Ну, а имея тангенс можно получить и его арктангенс. Таким образом получаем:
Font = LoadFont("Arial",18)
SetFont font
Print ATan2(4.0,3.0) ; Через ATan2
Print ATan(4.0/3.0) ; Через описанное выше и ATan
WaitKey
Выводит 2 одинаковых знаения Ч.т.д.
|
Я собственно обратился потому что, если x<0 и y<0, то результат будет неверен.Я терялся из-за того, что пурик выводил результат в радианах, а я эт не сразу заметил.
|
(Offline)
|
|
21.02.2009, 14:06
|
#10
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: ATan2...
вообще atan2 довольно тупая команда (как пробка).
есть две точки, x1,y1 и x2,y2.
тогда atan2(x2-x1,y2-y1) показывает направление от точки 1 к точке 2.
а какие в пурике есть тригонометрические операции?
Последний раз редактировалось HolyDel, 21.02.2009 в 14:47.
|
(Offline)
|
|
21.02.2009, 16:12
|
#11
|
Нуждающийся
Регистрация: 05.07.2008
Сообщений: 53
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: ATan2...
Стандартные Asin Sin ATan Tan ACos Cos и всё.Причем углы возвращаются в радианах, а вводить их надо в градусах.
В итоге я это сделал так:
Procedure ag(x.f,y.f)
If y.f=0
y.f=0.001
EndIf
ag.f=-ATan(x.f/y.f)
ag.f=ag.f*#rad
If y>=0
ag.f=ag.f+180
EndIf
RotateSprite3D(me, ag.f, 0)
EndProcedure
Последний раз редактировалось Slepetc, 21.02.2009 в 16:20.
|
(Offline)
|
|
21.02.2009, 21:45
|
#12
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: ATan2...
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
21.02.2009, 21:47
|
#13
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: ATan2...
Сообщение от JohnK
Я что-то упустил, или блиц умеет делить на ноль?
|
http://forum.boolean.name/showthread.php?t=167
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
21.02.2009, 22:16
|
#14
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: ATan2...
поэтому то я и говорю, что atan(a/b) это не одно и тоже, что и atan2(a,b).
|
дело в-первую очередь не в делении на ноль, а в том что atan для пары чисел (a,b) и (-a,-b) будет возвращать одно и тоже значение, а atan2 - нет. Для разных задач требуется то atan, то atan2.
мат.часть
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
ATAN2 своими руками |
SubZer0 |
Алгоритмика |
3 |
21.07.2007 21:55 |
Часовой пояс GMT +4, время: 20:06.
|