Esate.ru

сделать проекцию фигуры

Предположим у вас на форме есть кнопка. По её нажатию строиться сложная фигура ,н-р чайник.

Есть 2-ая кнопка. По её нажатию надо нарисовать проекцию этой сложной фигуры.
Не подскажите как?

0       1253        21.10.2010        7
0  
21.10.2010 00:00:00
Я так понимаю вам нужна проекция на экран, т.е. как контур фигуры на экране?

надо посмотреть примеры, просто наверно есть быстрый легкий заранее придуманный способ, надо только покопать что нить вроде .

Вообще есть формулы в линейной алгебре, которые позволяют отстроить проекцию трехмерного объекта (в зависимости от типа проекции), только надо вспомнить и порыть :) На вскидку затрудняюсь ответить.
Ссылка 0  
0  
21.10.2010 00:00:00
P.S. перенес вашу тему в Вопросы OpenGL + C#
Ссылка 0  
0  
23.10.2010 00:00:00
придумал очень очень тупой метод =))
первое что пришло в голову =))

есть чайник и если известны каждая точка его (вершина) то можно просто у всех точек поставить ось на которую тебе надо спроектировать 0 (или куда там надо) и тогда получится такая плоская фигура — проекция =))

не знаю но это первое что придумал
Ссылка 0  
0  
26.10.2010 00:00:00
Пожалуйста уточните Вам нужно нарисовать проекцию как еще одну картинку (как на чертежах принято: вид спереди, вид сбоку, вид сверху)? Или просто позицию камеры вида изменить, чтобы на этот же чайник скажем сверху смотреть?
Ссылка 0  
0  
26.10.2010 00:00:00
первое, но похоже его получить можно если просто позицию камеры вида изменить.
Родитель Ссылка 0  
0  
28.10.2010 00:00:00
Про позицию камеры это Вы верно, но как я понял на экране должен быть нарисован «Первый чайник», потом нажали кнопку — вуаля, «Второй чайник» и «Третий», если надо, появились на экране.

Задачу я бы решил так:
1) Заносим инфу об объекте в память;
2) Рисуем объект на экране.
Жмем кнопку.
3) Сохраняем матрицу проекций вида // Gl.glPushMatrix();
4) Перемещаем камеру (либо ниже объекта, либо правее его в зависимости от проекции на чертеже) // Gl.glTranslated(x, y, z);
5) Переворачиваем камеру относительно необходимой в проекции оси // Gl.glRotated(90, x, y, z);
6) Рисуем объект еще раз;
7) Извлекаем матрицу проекции вида // Gl.glPopMatrix().

Если нужно получить другую проекцию, то соответственно повторяем все начиная с пункта 3 и меняем ось вращения. Таким образом после последнего извлечения матрицы виды мы снова смотрим на наш объект из первоначальной точки, но дополнительно имеем еще 2 объекта с другим видом на чертеже.
Родитель Ссылка 0  
0  
10.05.2012 00:00:00
хай.
Если есть желание — это всегда круто. Можно начать писать в собственный блог, после того как наберется несколько статей — можно будет создать публичный.
Но писать статьи не так просто, как может сначала показаться.

Вот тут есть пара советов:
Ссылка 0  

Блоги Esate.ru

Регистрация

Регистрируясь, вы принимаете правила сайта. Если вы не получили код подтв. регистрации - не забудьте проверить папку спам.
Логин*
Email*
Пароль*
Подтверждение пароля*
 
Логин*
Код*
 

Восстановление пароля

Пожалуйста, заполните поля, после чего вы получите код подтверждения на ваш E-mail. Если код не пришел в течении нескольких минут - проверьте папку спам.
Логин

или Email
 
Логин*
Код подтверждения*
Новый пароль*
Подтверждение пароля*
 

Авторизация

Пожалуйста, авторизуйтесь, для входа на сайт с помощью соц. сети:
  • Используйте вашу учетную запись на Facebook.com для входа на сайт.
  • Используйте вашу учетную запись VKontakte для входа на сайт.
  • Используйте вашу учетную запись Google для входа на сайт.

или с помощью аккаунта на сайте:

Логин
Пароль