PDA

Просмотр полной версии : Поворот в изометрии


faraday
22.10.2015, 22:32
Здравствуйте, возникла необходимость в создании изометрической карты. Для скорости решил делать пересчет координат мира в экран без использования матриц. y=y/2; Вопрос возник в выводе объектов имеющих поворот, можно ли и здесь как то обойтись без матричных преобразований и дополнительных точек? чтоб функция на вход получала радианы мира, а выводила экрана. и наоборот
http://i.imgur.com/F80IVOL.png

undefined
22.10.2015, 23:02
Поворачивать в обычной проекции и потом применять твою формулу y/2

Добавлено через 2 минуты
Естественно такой подход только для лучей/векторов подходит.

faraday
23.10.2015, 00:55
это понятно, но тут нету векторов. Например строится кривая пути в координатах мира. каждый сегмент имеет нормаль в радианах на которую поворачивается объект привязанный к безье. вот этот объект и нужно визуализировать. но повороты все в нормальных градусах, а не изо

Isfet
23.10.2015, 06:52
минималистичный пример бы, или картинку что должно быть без поворота и что хотите получить после поворота

undefined
23.10.2015, 14:51
А что поворачиваемый объект из себя представляет?Он плоский? Если да, тогда можно крутить его обычным свойством rotation и после применять деформацию y/2 хотя наверно еще деформация сдвига потребуется.Если объект не плоский - то это задача уже в 3D.

faraday
23.10.2015, 15:13
объекты разные. сам путь нарисован из штрихов. перемещаемые модели - отрендеренные секвенции, получающие на вход угол. Если безье сразу рисовать по изометрическим точкам - повороты штрихов правильные. но все равно нужна синхронизация с моделями.
Isfet, http://i.imgur.com/5EvjSbh.png вот пример лучше отображающий проблему. я знаю что в координатах мира зеленая линия повернута на 135 градусов. но в координатах экрана - это 0. Этого преобразования яи пытаюсь добиться.

Добавлено через 28 часов 46 минут
Пока видится только считать через арктангенс , но мне кажется есть варианты лучше
Math.atan2(Math.sin(angle)/2, Math.cos(angle))