Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > 3d визуализатор


Автор: kven 25.5.2010, 22:39
Добрый вечер всем. 
Есть задача реализовать трёхмерную прорисовку графов. 
1. Сложность как в 3х мерной графике отследить координаты мыши(захват выбранного объекта)
2. Какими объектами создать связывающее ребро, которое привязано к вершине
3. Что то вида сплайнов 3d есть или нет. 

Очень прошу помочь, пробовал Tao framework не понравилась прорисовка, и мышку в 2d отследить легко, а в 3d даже не знаю как попасть на нужный объект, не могу нормально покрутить камеру, в open gl классов камеры найти не могу. Как мне кажется тривиальные проблемы, но решить в  Tao не получется.
В xna не знаю как отслеживать мышку(это главная проблема, ну и работа с 3d объектами) среда замечательная под проекты game, а под виндовс формс работает ли библиотека input. Вопросов много перечитал в гугле много, может не нашёл то что надо, времени мало прошу помощи. Главное двигать объекты мышкой, т.е. фокусироваться на 3d объекте.

Заранее спасибо. Буду рад любой помощи.

Автор: sawtooth 26.5.2010, 21:37
Попробуйте всё-таки OpenGL (например, в упомянутой выше обертке Tao Framework)
Позиционирование камеры в пространстве - Tao.OpenGL.Glu.gluLookAt:
Код

void gluLookAt(
GLdouble eyex,
GLdouble eyey,
GLdouble eyez,
GLdouble centerx,
GLdouble centery,
GLdouble centerz,
GLdouble upx,
GLdouble upy,
GLdouble upz
);

По поводу получения координаты мыши 3д. В плоскости экрана (камеры) координата мыши Вам известна. Остается вычислить вектор нормали к плоскости камеры из этой точки, и найти ближайший объект, который она пересекает.
Положение камеры, источники освещения, и прочее - это уже вопрос предпочтения, да и гуглится на ура. Полагаю, беглое изучение матчасти быстро прольет свет на Ваши проблемы отрисовки.

Дерзайте.

Автор: kven 29.5.2010, 22:05
Огромное спасибо, попробую

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)