Модераторы: Rickert
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание изометрической графики, способ отрисовки 
:(
    Опции темы
lamber
Дата 6.10.2011, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 20.12.2008

Репутация: нет
Всего: нет



Столкнулся с задачей написания движка для отображения изометрической графики, но не знаю как к этой задаче подступится. Вопросов несколько. первый каким алгоритмом рисовать изометрию, как определить на каком элементе сетке был клик.  Буду рад всем тем кто поделится материалом по теме.
PM MAIL   Вверх
dreconia
Дата 10.10.2011, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.10.2010

Репутация: нет
Всего: нет



Introduction to Isometric 3D
http://gotoandlearn.com/play.php?id=136
http://gotoandlearn.com/play.php?id=137

Может не совсем то. Но мне пригодилось.
PM MAIL WWW   Вверх
KaraKum
Дата 10.10.2011, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0439 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.