Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как нарисовать куб в перспективной проекции ? 
:(
    Опции темы
Rexar
Дата 11.3.2007, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Помогите нарисовать куб в перспективной проекции...
Вот нашел как преобразовать координаты точки X,Y,Z в X,Y на экране....  Но если строить по линиям, то фигня какая-то получается, а не куб.... 

Цитата

Здесь буквами x, y, z обозначены положительные направления осей Ox, Oy и Oz соответственно. Также предполагается, что камера неподвижна и находится в точке (*) с координатами (0,0,-dist), ось зрения камеры направлена по оси Oz, а именно в точку (0,0,0) (т.е. camera target = (0,0,0)), ось Ox с точки зрения камеры направлена слева направо, ось Oy - снизу вверх, ось Oz - вглубь экрана. Размер экрана - xSize на ySize пикселов.

Проецирование на плоскость экрана в этом случае будет осуществляться по формулам 

sx = xSize/2+x*dist/(z+dist),
sy = ySize/2-y*dist/(z+dist).

PM MAIL   Вверх
Joss
Дата 11.3.2007, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я использовал формулы:

Код

sX = x/(1 - z/z0)
sY = y/(1 - z/z0)

Здесь sX, sY - экранные координаты,  x, y, z - координаты в пространстве. Ось Oz направлена "вглубь" экрана. Наблюдатель находится в точке (0, 0, z0). 

Это те же формулы но без xSize и ySize.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


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

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


 




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


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

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