Просмотр полной версии : Поворот обектов по траектории.
Задача такова:
Есть две точки x1 y1 и x2 y2.
Это настоящая и предыдущая координаты объекта.
Надо поворачивать объект "по пути".
Соорудил дакую конструкцию -
_rotation = (180*Math.atan2((x2-x1), (y2-y1)))/Math.PI;
крутит, но совсем не в ту сторону.
а как правильно?
минус перед скобкой поставь...
И усё...
то есть так?
_rotation = -(180*Math.atan2((x2-x1), (y2-y1)))/Math.PI);
не сработало =/
Все выражение возьми в скобки и перед ними минус.
Кстати у тебя помойму лишняя скобка, или не хватает одной в самом начале...
так и сделал.
флешь все компилит, на каких-то значениях все ок.
всеравно что-то не так
antiflasher
15.03.2006, 20:24
если есть скорость у движения объекта
//vx это скорость движения по оси X
//vy это скорость движения по оси Y
_rotation=Math.atan2(vy, vx)*180/Math.PI
всем спасибо, все заработало =)
Описываю на пальцах.
мс._rotation = angle // ПОВОРАЧИВАЕТ ОБЪЕКТ ПО ЧАСОВОЙ СТРЕЛКЕ
мс._rotation = -angle // ПОВОРАЧИВАЕТ ОБЪЕКТ ПО ПРОТИВ ЧАСОВОЙ
И как говориться, Усё... );
ан нет... не заработало %))
задача усложняется...
в "нормальном" измерении ось координат исчисляется из левого верхнего угла.
а если из левого нижнего...
то есть ось Y инвертирована?
Тебе, товарищь, что нужно???
У тебя объект крутиться?
В какую сторону?
Что значит "нормальном" измерении?
А если? А если? А если? А если? А если?.....
Тебе что нужно?
И пожалуйста по конкретнее, если ты хочешь, что бы тебе помогли.
Ок.
Программа расставляет корабли по карте в соответсвии с GPS данными.
на данный момент сделано вот это:
http://217.19.68.3/fleetmap/index.html
проблема в том что на земном шаре координаты считаются от экватора по Y и от гринвича по X.
К счастью в моем случае только один корабль пересекает Гринвич, где координаты по X начинают считаться не с лева на право а право на лево. За то по Y они везде считаются не с верху вниз, как принято в компутерной графике, а с низу вверх (от экватора).
В результате при использовании таких кординат (где нижняя точка с меньшим значением по Y) стандартный расчет поворота работает не правильно.
Можете сами попробовать.
Не, ну и в чем проблема? - опиши преобразование координат - это программа средней школы.
то есть обращать координаты для расчета поворота задомнаперед?
то есть обращать координаты для расчета поворота задомнаперед?
Это в первую очередь переход в другую систему координат.
у меня там и так изначально координаты в радианах, потом все переводится по формулам отдельно для X и Y в координаты карты...
все оч. запущено...
и поворот караблика я считаю по цифрам с блинным хвостом после запятой...
они выводятся в менюшке к каждому кораблю.
В радианах могут быть углы, но не координаты. Преобразования координат -- это всего пара формул (http://www.relativity.ru/issues/coords.shtml#convert) (ну, грубо говоря, не больше 6 для самых распространенных случаев).
K.A.T.A.F.A.L.K.E.R
17.03.2006, 01:40
В радианах могут быть углы, но не координаты.
А чем угол - не координата? ;)
А вообще лично я так и не смог понять, в чем проблема?..
А чем угол - не координата? ;)
Формально, конечно, координата. Параметр описания положения объекта. Но обычно люди так говорящие -- математики, и таких вопросов не задают. Вот я и подумал. Зря, видимо. Думать вредно.
я, наверное, идиот, но
1. о каком повороте может идти речь при описаных 2х точках? двумя точками можно описать лишь прямую!
2. о каком преобразовании координат идёт речь? я так понял, что имеются широта и долгота. в какой проекции строится карта? конической? цилиндрической? равноугольной азимутальной косой? поликонической? да два десятка других смогу озвучить.
p.s. "можете сами попробовать..." пробовал много раз. надо-то чего?
проблема в том что на земном шаре координаты считаются от экватора по Y и от гринвича по X.
Лучше не говорить подобных глупостей, а сформулировать задачу конкретно. Здесь на форуме есть несколько человек, способных помочь.
Первый и глобальный вопрос. Насколько твоя карта точная и в какой картографической проекции сделана?
Второй. Какая точность расположения обьекта допустима. Если тебе нужна точность порядка 5-10 метров, то бросай заниматься этим на флеш.
K.A.T.A.F.A.L.K.E.R
17.03.2006, 21:48
о каком повороте может идти речь при описаных 2х точках? двумя точками можно описать лишь прямую!
А прямая не имеет угол наклона к любой оси в Декартовой системе координат? ;)
А прямая не имеет угол наклона к любой оси в Декартовой системе координат? ;)
На земной поверхности не работает двумерная Декартова система координат.
K.A.T.A.F.A.L.K.E.R
17.03.2006, 22:13
На земной поверхности не работает двумерная Декартова система координат.
ага, а еще никакое тело не летает по параболе... Какого порядка расстояния? 10-100 км? Да при таких расстояних матушка-Земля до такой степени плоская, что более правильную плоскость еще нужно поискать!!! :rolleyes:
ага, а еще никакое тело не летает по параболе... Какого порядка расстояния? 10-100 км? Да при таких расстояних матушка-Земля до такой степени плоская, что более правильную плоскость еще нужно поискать!!! :rolleyes:И где у тебя будут Декартовы оси координат? Укажи их, плз. Для каждого обьекта выбирать свои оси - не пройдет.
Похоже автор топика просто не может перевести гео-координаты ( долгота/широта ) в плоские коорды не карте. Поэтому все кораблики у него и крутятся как попало.
K.A.T.A.F.A.L.K.E.R
17.03.2006, 22:49
Ось ОХ параллельно экватору, ОУ - куда останется...
Да какая вообще разница? Выбор системы координат - дело исключительно условное. И, по-моему, сферическая система координат ничем не хуже Декартовой - координата нумер раз=радиус Земли = Const, и два угла.
З.Ы. "и тут меня зафлеймило..."
Ось ОХ параллельно экватору, ОУ - куда останется...
Да какая вообще разница? Выбор системы координат - дело исключительно условное. И, по-моему, сферическая система координат ничем не хуже Декартовой - координата нумер раз=радиус Земли = Const, и два угла.
З.Ы. "и тут меня зафлеймило..."
Не хочу спорить по пустому. Сделаешь когда-нибудь хоть раз - с удовольствием.
Чисто для информации.По поводу сферических координат. Земля - это не шар, это даже не эллипсоид. Принято специальное название для него - геоид. Т.е. земную поверхность в окрестности каждой своей точки можно приближенно считать конкретным ( и различным для каждой такой точки ) эллипсоидом.
K.A.T.A.F.A.L.K.E.R
17.03.2006, 23:25
Опять началось "не сфера", "не плоскость". Прочитай пост #23. Дискуссия зациклилась. Пора сделать break. Тема себя исчерпала.
K.A.T.A.F.A.L.K.E.R, ну вроде же речь шла о движении по пути. Если проблема сориентировать об'ект на наклонной прямой, то это клиника и ни о каком пути автору серьёзно задумываться не стОит.
О применимости декартовой системы координат: думаю, что кораблики всё же плавают на более существенные расстояния, чем 100км :) Я вот тоже когда нарисовал карту Украины в цилиндрической проекции (широта=Y, долгота=Х, самое простое) очень удивился. Пришлось прикручивать коническую проекцию (изначально я надеялся, что это придётся делать только на этапе отрисовки России. Фиг там, для России вообще пришлось косую азимутальную делать). Если у него кораблики станут плавать по обе стороны экватора, ему придётся какую-нить составную проекцию делать (поликоническую или что-нить более навороченое). А может быть будет достаточно прямой азимутальной (если разброс корабликов по долготе будет меньше 100 градусов и он с умом будет выбирать центральный меридиан в проекции). Одним словом тут общих решений нет, сплошные частности.
P.S. а автор-то похоже почитал этот диспут, да и решил забить на свои кораблики ;)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.