![]() |
Из экранных координат в координаты 2.5D проекции
Всем доброго вечера!
Из координат 2.5D проекции в экранные координаты я перевожу следующим образом: Код AS3:
Код AS3:
|
Код AS3:
Это не готовая формула, это решения вашего уравнения (в Maple решил для гарантии). |
Как это у вас получилось? из первых ур-ний следуют вот такие:
x=((screenX-offset)/w+screenY/h) y=(screenY/h-(screenX-offset)/w) вероятно, screenX->mouseX. Если кому-то не нравятся мои уравнения, прошу писать здесь и сразу. |
Цитата:
|
Цитата:
|
Цитата:
Код AS3:
Цитата:
|
Цитата:
Добавлено через 1 минуту Из "моих" непосредственно получаются "ваши" |
Цитата:
|
А, прошу прощения, я вас с автором перепутал=)
Добавлено через 36 секунд Причем, хочу заметить, что наши с вами решения полностью эквиваленты. Добавлено через 1 минуту Если мое решение домножить и поделить на w*h, получится ваше |
Кстати оба варианта рабочие - выдают одни и те же решения при одинаковых входных данных)
Добавлено через 1 минуту ну то есть это, собственно, одни и те же формулы |
Всем доброго дня!
Ни одна формула не заработала как надо. Первая формула рассчитывала строки не верно. Тыкаю в клетку 4, а она показывает 14. Вторая формула была не точна. Тыкаю на одну и ту же клетку, но в разные места, и значения целые были разные. А третья формула показывает значение строки 800, когда тыкаю к строку 0. Сейчас попробую сам пересчитать всё это с листочком и ручкой, а пока считаю, дам Вам информацию для размышления. Все тайлы карты я рисую в один большой Bitmap. Для его рассчёта я определяю положения крайних точек: Код AS3:
Код AS3:
Код AS3:
Добавлено через 26 минут Вот для размышления. Красный прямоугольник - это Bitmap, по которому мышкой тыкаем. http://xmages.net/storage/10/1/0/d/4...d/a5ac3373.png |
Цитата:
Лошадь пусть размышляет - у нее голова большая. Вот, если интересно, когда-то начинал делать проект с изометрией, формулы отличаются, но рабочие. |
Есть рисунок, на который должны быть выведены изометрические тайлы. Количество колонок и столбцов на карте задано:
Код AS3:
Код AS3:
Код AS3:
Код AS3:
http://xmages.net/storage/10/1/0/c/f...d/a60fa20d.png При этом каждый тайл ограничен прямоугольной областью: http://xmages.net/storage/10/1/0/c/9...d/439f3c83.png Но все они лежат в картинке: http://xmages.net/storage/10/1/0/a/c...d/a87822b7.png На картинку подписано событие MOUSE_DOWN. Нужно определить столбец и строку тайла, на который тыкнули мышкой. Есть какие-то идеи? |
Вы пример то хоть смотрели. Там есть общая формула преобразования из экранных координат в изометрические. А по изометрическим координатам, зная шаг сетки, определить строку и столбец думаю труда не составит.
|
Stitch512
Посмотрел. Даже скопировал функцию перевода. Но не помогло((( |
hitTestPoint? Узнать какой тайл под мышкой...
|
Цитата:
Добавлено через 1 минуту Цитата:
|
По-моему во 2-м и 3-м посте просто потеряли 2-ку. Всё справа ещё умножить на 2. Должно сработать. Если нет, то проверьте и нарисуйте на ваших картинках, где находится screenX и screenY, если x = y = 0. Должна быть точка в верхнем углу.
|
| Часовой пояс GMT +4, время: 01:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.