Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2010, 16:24   #1
tiger
Пользователь
 
Регистрация: 30.03.2008
Сообщений: 52
По умолчанию Open GL.Соединение фигур определенной гранью

Нужно отобразить пространственную сцену в виде тетраедра, к первой его грани присоединен другой тетраедр, потом еще к определенной грани присоединена пирамида выбранной гранью. Как это реализовать? Задание по мехатронным системам, лично я это не изучал, попросили с другой группы сделать, поэтому что там на лекциях рассказывают я не в курсе. вот я пробовал нарисовать 2 тетраедра. но как мне отобразить второй так как на рисунке? рис 6 в методичке, только место пирамиды там тетраедр.
Код:
void TForm1::Tetr(float centx,float centy,float centz,float a,float kut)
{
glBegin(GL_TRIANGLES);
 glColor3f(1.0f,0.0f,0.0f);                  
        glVertex3f( centx, centy+a, centz);                  // Верх  (Передняя)
        glVertex3f(centx-a,centy-a, centz-a);                  // Левая 
        glVertex3f( centx+a,centy-a, centz+a);

       glColor3f(1.0/2,0.0f,0.0f);                 
        glVertex3f( centx, centy+a, centz);                  // Верх треугольника (Правая)
        glColor3f(0.0f,0.0f,1.0/2);                  
        glVertex3f( centx+a,centy-a, centz+a);                 // Лево треугольника (Правая)
        glColor3f(0.0f,1.0/2,0.0f);                   
        glVertex3f( centx+a,centy-a, centz-a);

         glColor3f(1.0/2,0.0f,0.0f);                   
        glVertex3f( centx, centy+a, centz);                   // Низ треугольника (Сзади)
        glColor3f(0.0f,1.0/2,0.0f);                  
        glVertex3f( centx+a,centy-a, centz-a);               // Лево треугольника (Сзади)
        glColor3f(0.0f,0.0f,1.0/2);                
        glVertex3f(centx-a,centy-a, centz-a);


glBegin(GL_TRIANGLE_STRIP);
   glVertex3f( centx+a,centy-a, centz+a);     //T1
   glVertex3f( centx+a,centy-a, centz-a);
   glVertex3f(centx-a,centy-a, centz-a);
   ser_x=((centx+a)+(centx+a)+(centx-a))/3;
   ser_y=((centy+a)+(centy-a)+(centy-a))/3;
   ser_z=((centz)+(centz-a)+(centz-a))/3;
//glEnd();
a=0.2;



//glBegin(GL_TRIANGLE_STRIP);
      glVertex3f( ser_x,  ser_y+a,  ser_z);                  // Верх треугольника (Передняя)
      glVertex3f( ser_x-a, ser_y-a,  ser_z-a);                  // Левая точка
      glVertex3f(  ser_x+a, ser_y-a,  ser_z+a);

       glColor3f(1.0/2,0.0f,0.0f);              
        glVertex3f(  ser_x,  ser_y+a,  ser_z);                  // Верх треугольника (Правая)
        glColor3f(0.0f,0.0f,1.0/2);                 
        glVertex3f(  ser_x+a, ser_y-a,  ser_z+a);                 // Лево треугольника (Правая)
        glColor3f(0.0f,1.0/2,0.0f);                    
        glVertex3f(  ser_x+a, ser_y-a,  ser_z-a);

         glColor3f(1.0/2,0.0f,0.0f);               
        glVertex3f(  ser_x,  ser_y+a,  ser_z);                   // Низ треугольника (Сзади)
        glColor3f(0.0f,1.0/2,0.0f);              
        glVertex3f(  ser_x+a, ser_y-a,  ser_z-a);               // Лево треугольника (Сзади)
        glColor3f(0.0f,0.0f,1.0/2);                   
        glVertex3f( ser_x-a, ser_y-a,  ser_z-a);


   glVertex3f(  ser_x+a, ser_y-a,  ser_z+a);     //T1
   glVertex3f(  ser_x+a, ser_y-a,  ser_z-a);
   glVertex3f( ser_x-a, ser_y-a,  ser_z-a);
   ser_x=((centx+a)+(centx+a)+(centx-a))/3;
   ser_y=((centy+a)+(centy-a)+(centy-a))/3;
   ser_z=((centz)+(centz-a)+(centz-a))/3;


 //  glVertex3f(-1.0/2,-1.0/2, 1.0/2);
 glEnd();
}
Вложения
Тип файла: pdf MKMMS_L1.pdf (295.4 Кб, 11 просмотров)
tiger вне форума Ответить с цитированием
Старый 24.10.2010, 15:26   #2
tiger
Пользователь
 
Регистрация: 30.03.2008
Сообщений: 52
По умолчанию

Ну что никто мне не объяснит как это все в одну фигуру объединять?
tiger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск фигур hamlook Microsoft Office Excel 12 22.04.2010 20:27
Построение фигур Aleksandr Microsoft Office Excel 2 22.10.2009 21:08
Передвижение фигур rododendron Общие вопросы C/C++ 1 01.06.2009 20:38
Площадь фигур Вор Паскаль, Turbo Pascal, PascalABC.NET 3 18.05.2009 22:44