| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Разные высоты на 2Д карте |
| Автор: APXEOLOG 22.9.2009, 20:31 |
| Допустим у нас есть карта 10*10, каждая клетка - квадрат 32*32. В старых 2Д играх вполне успешно делали горы (т.е. высоту). Как собственно сделать эту самую высоту имея только две оси? И как рассчитать что надо отрисовывать и с какими отклонениями? |
| Автор: GLeBaTi 22.9.2009, 21:06 |
| Так там наверное просто рисовали эти горы в 3D и фоткали это изображение ) http://festival.1september.ru/articles/419668/Image200.jpg |
| Автор: 7maze 22.9.2009, 21:41 |
| Вставляли как рисунки(спрайты), если один квадрат = горе, то вообще легче простого (правда сам рисунок мог быть больше 32x32 для большой реалистичности), если-же гора несколько квадратов - то просто билось изображение на части и отрисововалось (starcraft) |
| Автор: piritus 22.9.2009, 22:13 |
| Если всё же есть желание самому рисовать, то можно почитать про 3d вращение тут: http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/3drota.htm а применительно изометрической проекции перевод на экранные координаты осуществляется следующим образом: Xscr=(y-x)*sqrt(3)/2; Yscr=(y+x)/2-z; где scr - экранные координаты sqrt(3)/2=0.86602 |
| Автор: APXEOLOG 23.9.2009, 06:48 |
| Спасибо за ответы попробую воплотить в жизнь. |
| Автор: piritus 6.12.2009, 22:17 |
| Вот, например, вращение относительно оси Z: x_new=x*cos(w)-y*sin(w), y_new=x*sin(w)+y*cos(w), z_new=z. |