Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.05;
Скачать: CL | DM;

Вниз

Вращение 3D фигур   Найти похожие ветки 

 
Матвеев Андрей   (2003-02-18 17:14) [0]

Получил задание по графике, рисование, вражение фигур, удаление невидимых граней. В связи с этим возникло два вопроса:
1) Подскажите алгоритм вращения от движения мыши (зависимость dxy,dxz,dyz от координа мыши)
2) Каждая точка зранит 3 координаты и 3 поля для хранения номера точки с которой необходимо ее соеденить. Так как по заданию дальше требуется удалить невидимые грани, и закрасить грани с учетом освещенности, хотел бы спросить как более разумно рисовать фигуру?


 
pasha676   (2003-02-18 17:50) [1]

Не фига себе задание по графике. Я балдю. Особенно "закрасить грани с учетом освещенности". При хорошей постановке задачи, это тянет на очень много баксов.

1) А как сделаешь так и будет. Честно говоря вращал только в директе и опенгл, но по мыши вращал не фигуру, а камеру.
Но если отрешиться от директов и жл, то чтобы повернуть точку вокруг оси, надо координаты точки умножить на матрицу поворота. Матрицы поворота найдешь в учебнике. Или вон у меня книжка на столе тусуется Краснова "ДиректХ графика в проектах Дельфи", там есть например тоже. Перемещение мыши. Нажимаешь на кнопку мыши. Запоминаешь координаты. Тянешь мышь. Разность текущих координат мыши и запомненных (и по х и по у) даст тебе угол поворота по осям х и у соответственно. Именно этот угол (по деленный на коэффицент, все таки в радианах все и скорость поворота можно отрегулировать под удобную) и подставляешь в матрицу поворота.

2) Тут собственно три вопроса.
Я бы рисовал так (фиксированная камера как я понимаю):
Находил проекции точек на экран (канвас).
Потом соединял бы линиями. Тут можно придумать оптимальный алгоритм перебора точек и линий, но я бы забил на это. По крайнер мере вначале надо просто перебрать все точки, потом все соединения и отчертить линии.
Насчет удаления невидимых граней не помню. Хотя алгоритмы конечно есть и даже я книжки какие то читал на эту тему. Но ничего не помню :(
Насчет освещенности - это вообще помоему сложно. Особенно если учесть что надо тип освещенности, тип поверхности, направление и характер лучей и т.д. То есть это тяжело. Мож преподаватель какие-нибудь граничные условия поставит.


 
MBo ©   (2003-02-18 17:53) [2]

http://delphigfx.mastak.ru/


 
Mihey   (2003-02-19 00:05) [3]

http://www.enlight.ru:8000/faq3d/main.htm


 
i-C3H7OH ©   (2003-02-19 14:05) [4]

как нужно делать? с ОпенГЛ можно или все самому ручками?

в ОпенГЛ просто - там Z-Buffer-тест, вычисления нормалей и проч. делается автоматически. см документацию или к-н пример на http://delphigfx.mastak.ru/

если ручками, в кладовке была(точно была) прога которая как раз все это и делает (правда я ее там не нашел).


 
Landgraph   (2003-02-20 19:01) [5]

Если потом надо будет предъявлять исходники в доказательство - тогда уже сейчас готовь мыло и веревку, т.к. при написании всего вышеперечисленного ручками - у тебя уйдет или не одна сотня лет... или ты повесишься =)
А если нет - используй OpenGL - там вся эта хренотень считается на автопилоте. Тебе остается только грани рисовать и усё (оптимистично...) =)



Страницы: 1 вся ветка

Текущий архив: 2003.06.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-13176
super_alex
2003-05-26 16:16
2003.06.05
TScrollBox и TPaintBox


3-13093
reticon
2003-05-19 00:18
2003.06.05
БД в текстовых файлах


1-13202
Intell
2003-05-25 20:11
2003.06.05
У кого есть компонент Hint или Menu с настройкой прозрачности?


14-13418
Andrew R2D2
2003-05-18 14:26
2003.06.05
Кто пользуется FMOD - проконсультируйте :)


4-13503
Kair
2003-04-06 22:35
2003.06.05
Message