Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

отображение трехмерного объекта на экран

31K
20 октября 2007 года
Lido4ka
8 / / 19.10.2007
Помогите преобразовать трехмерные координаты в двумерные, плз! Нужно, чтобы на экране получилась изометрия. OpenGL не предлагать.
31K
21 октября 2007 года
FractalizeR
16 / / 19.10.2007
А почему не предлагать? Вы проблему не опишете по-подробнее? В чем задача состоит?
551
21 октября 2007 года
Pavia
357 / / 22.04.2004
Очень просто X соответствут горизонтальной линии, Y вертикальной линии на мониторе . Z перпендикулярно монитору. Можно повернуть систему координат в нужное направления. Используя поворотную матрицу.

Ее будешь умножать на вектор. Для проекции.
31K
23 октября 2007 года
Lido4ka
8 / / 19.10.2007
Не все так просто, как кажется. Что касается penGL, я сама бы рада им воспользоваться, но нельзя по условию задачи. С осями не все так просто: нужна не перспектива, и изометрия или диметрия: ось Х по горизонтали, ось Z вверх, а ось Y под углом к оси Х.
245
23 октября 2007 года
~ArchimeD~
1.4K / / 24.07.2006
не понял смысла задания и вообще смысла слов "изометрия", но может помогут формулы проекции точки в пространстве на экран:

x' = ( x * FOV ) / z + xRes / 2
y' = ( y * FOV ) / z + yRes / 2

FOV - угол обзора камеры (не помню, сколько по стандарту, но думаю градусов 60)
xRes - расширение по оси X
yRes - расширение по оси Y
505
23 октября 2007 года
vAC
343 / / 28.02.2006
Все равно делай через матрицу преобразования. В данном случае матрицу изометрии можно получить, расписав координаты базисных векторов в экранной системе координат (x',y',z'). Запись будет либо по строкам, либо по-столбцам. Примерно будет так:
1. ось x сонаправлена с x', поэтому в первая строка выглядит так:
[1 0 0];
2. ось y под углом 45 град. к обоим направлениям, причем по оси x' со знаком минус. Также эта ось смотрит в экран (ось z'):
[-sin(45) sin(45) 1]. Это дело можно нормализовать, разделив на 2
3. ось z противоположено направлена y':
[0 -1 0].

Получиться матрица 3x3, дополнив ее до размера 4x4 можно делать преобразования смещения в однородных координатах. Возможно где-то и ошибся, надо проверять...
505
23 октября 2007 года
vAC
343 / / 28.02.2006
Цитата: ~ArchimeD~
не понял смысла задания и вообще смысла слов "изометрия"...
FOV - угол обзора камеры ...



"изометрию" достаточно понятно описали в предыдущем топике, а "фокус" в нее никак не клеется.

551
24 октября 2007 года
Pavia
357 / / 22.04.2004
~ArchimeD~ , увас перспективная проекция. Плюс перевод в экранные координаты. Приэтом спецефический вариант.

vAC Соглассен через матрицу преобразования. В данном случаи она называется проекционной. Так как проецирует 3 мерное изоброжение на плоскость.
V'=M*V

Матрицу вы составили неправельно. Это будет косоугольная проекция

 
Код:
|  /
|/
+---

[1 cos(45) 0]
[0 sin(45) 1]


Для изометрии все углы проекции базистных векторов равны и равны 120°

 
Код:
|
    |
    +
  /   \
/       \
[cos(30)  -cos(30) 0]
[-sin(30) -sin(30) 1]
31K
16 ноября 2007 года
Lido4ka
8 / / 19.10.2007
Спасибо всем большое!
276
16 ноября 2007 года
Rebbit
1.1K / / 01.08.2005
Помойму для диметрии когда Y под углом будет примерно так.
x1 = x + cos(A)*y
y1 = z + sin(A)*y

Ето без учета розметов обекта, екрана и того что обект вверх ногами получится.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог