![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2001
Сообщений: 137
|
Господа, помогите пожалуйста разобраться.
Есть компас, вокруг него расположены шесть шариков.Наводишься мышкой на шарик и стрелка компаса тут же прыгает в направлении этого шарика. Скрипт сидит в прототипе, он простой и работает, но почему-то даёт сбой. Вот скрипт: rotacia = -180*Math.atan2(_x-x, _y-y)/Math.PI; // определяется направление на цель( тот самый шарик, координаты которого занесены в переменные x и y ) speed = 0.6; _rotation += (rotacia - _rotation)/speed //Код,который и делает то самое прыгучее движение к заданной цели Всё просто и всё по идее должно работать.Но работает только частично.То есть шарики находящиеся на отметках 0,60,120,300 градусов работают, а 270 и 180 - нет! Особенно 180.То есть где-то вкрадывается некая ошибка а где - никак не пойму. Кто сможет обьяснить в чём проблема?
__________________
Война окончена.Всем спасибо! |
|
|||||
|
smotritsia ofigitelno
![]() a esli prosto po kolhoznomu kajdoi knopke action napisat' tipa _root.funkciya(60) gde 60 - eto srazu gradus? vsiako proshe bylo by. a voobshe eto grabli s 4etvertiamy tam u tebia gde-to math.abs() nehvataet. i ishe, esli peretianut' ves' kompas v drugoi ugol, to perestaiut drugie 2 knopki pahat'. peredavai parametr gradusom, ili radianom srazu, i ne par' sebe mozgi. ili eto nau4naia rabota kakaya? ![]()
__________________
Knizhki umnie 4itat' nado(C) fil'm-detyam |
|
|||||
|
Регистрация: Apr 2001
Сообщений: 137
|
Да какая там научная работа!
Просто хотелось бы как-то элегантно решить поставленную задачку.Чтобы легко было изменить в случае чего.Я заметил что проблема наверняка с дробями, и что где-то что-то куда-то не туда влазит.Причём если изменять значение переменной speed, то стрелка начинает вообще дурить по страшному. Можно например скрипт изменить на такой: rotacia = -180*Math.atan2(_x-x, _y-y)/Math.PI; _rotation<rotacia ? accellerator++ : accellerator--; accellerator *= 0.9; _rotation += accellerator; В таком случае всё работает, кроме самого нижнего шарика, который 180 градусов.На 180 стрелка начинает крутиться на месте...
__________________
Война окончена.Всем спасибо! |
|
|||||
|
nu a s radianamy/gradusamy ne elegantno?
__________________
Knizhki umnie 4itat' nado(C) fil'm-detyam |
|
|||||
|
Регистрация: Apr 2001
Сообщений: 137
|
Пробовал.
Но, то ли я не очень понимаю с чем эти градусы с радианами едят, то ли ещё что, но суть в том что если задать стрелке _rotation сразу в градусах, то до 180 она ещё доходит а потом начинается полная ерунда, то есть стрелка начинает по каким то законам складывать-вычитать углы и её вращение становится совершенно непредсказуемым. Эх,надо было учить тригонометрию в своё время.. ![]()
__________________
Война окончена.Всем спасибо! |
|
|||||
|
тригонометрия мать её....
![]() Замени 180 на 179.9 ![]() Тригономерия хитрая вещь, но мы и её перехитрим ![]()
__________________
я. |
|
|||||
|
otpravlay ee na ukazannyi gradus, a potom po utihaushei baltai vozle zadannogo zna4aniya...
doljno vrode bez problem pahat'... ia etu trigonometriyu s ee formulami privedeniya sam nenavidel odnu formulu toka naizust' znal, vrode sinus dvoinogo ugla... ili cosinus... hren ego znaet :-) poishi v seti u4ebnik po algebre dlia 4ainikov ![]() kstati strelka doljna _obiazatelno_ po krat4aishemu puti idti, u kompasa tak...
__________________
Knizhki umnie 4itat' nado(C) fil'm-detyam |
|
|||||
|
Регистрация: Mar 2002
Сообщений: 204
|
Вроде так:
|
|
|||||
|
Регистрация: Apr 2001
Сообщений: 137
|
2DMN:
Спасибо, мил человек! Спас.Я нутром где-то чувствовал что надо проверять угол "на вшивость" но всё никак не мог понять как ![]() Спасибо.Всё работает.
__________________
Война окончена.Всем спасибо! |
![]() |
Часовой пояс GMT +4, время: 09:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|