![]() |
|
Модераторы: Rickert |
![]()
|
|
| lamber |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 20.12.2008 Репутация: нет Всего: нет |
Столкнулся с задачей написания движка для отображения изометрической графики, но не знаю как к этой задаче подступится. Вопросов несколько. первый каким алгоритмом рисовать изометрию, как определить на каком элементе сетке был клик. Буду рад всем тем кто поделится материалом по теме.
|
|||
|
||||
| dreconia |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 26.10.2010 Репутация: нет Всего: нет |
Introduction to Isometric 3D
http://gotoandlearn.com/play.php?id=136 http://gotoandlearn.com/play.php?id=137 Может не совсем то. Но мне пригодилось. |
|||
|
||||
| KaraKum |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 640 Регистрация: 3.12.2007 Репутация: нет Всего: 1 |
Думаю что главная задача - это получение экранных координат из изометрических, где x увеличивается к северо-востоку, а y к северо-западу. Вот кусок кода:
/*Преобразование изометрических координат в плоские. Подразумевается что изометрическйй 0,0 - это центр по обеим осям какого-либо тайла; после преобразования эта точка становится центром получившейся плоской системы координат, где каждый изначальный тайл является квадратом (восстановлен до него путём вращения вокруг оси Z и растяжением на k). \param k тангенс угла наклона - в общепринятой изометрии это тангенс некоего угла, равняющийся 0.5. */ public static function FromIso(x:Number, y:Number, k:Number = 0.5): Point { //превращаем ромб обратно в квадрат: y /= k; const SIN:Number = 0.707; const COS:Number = 0.707; //вращаем на 30 градусов против часовой стрелки: const newX:Number = x * SIN + y * COS; const newY:Number = y * SIN - x * COS; return new Point(newX, newY); } Это сообщение отредактировал(а) KaraKum - 10.10.2011, 11:57 |
|||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |