Форум программистов, компьютерный форум CyberForum.ru

Задать нормали к граням пирамиды (MFC + OpenGL) - C++

Восстановить пароль Регистрация
 
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 302
11.05.2012, 17:29     Задать нормали к граням пирамиды (MFC + OpenGL) #1
Подскажите,как правильно задать нормали к пирамиде?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "mmsystem.h"
 
static GLdouble g_fSizeBox = 15;
static GLfloat g_pfLineDiffuse[] = { 0.0f, 0.9f, 0.9f, 1.0f };
static GLfloat g_pfCubeDiffuse[] = { 0.7f, 0.04f, 0.04f, 1.0f };
static GLfloat g_fAngle = 240.0;
static GLfloat g_fSpeedAngle = 4.0e-3;
static GLint g_uBox = 1;
void CCubeColorView::OnInitialUpdate()
{
    CView::OnInitialUpdate();
    
    GLfloat fNormal = 0.9;
    static GLfloat pfMatAmbient[] =
                                { 1.0f, 1.0f, 1.0f, 1.0f };
    static GLfloat pfMatSpecular[] =
                                { 1.0f, 1.0f, 1.0f, 1.0f };
    static GLfloat pfLightPosition[] =
                                { 0.0, 0.0, 20.0, 1.0 };
    glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, pfMatAmbient);
    glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, pfMatSpecular);
    glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 50.0);
    glLightfv(GL_LIGHT0, GL_POSITION, pfLightPosition);
    glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
    glClearColor(1.0f, 0.96f, 0.866f, 1.0f);
    glDepthFunc(GL_LEQUAL);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glDepthFunc(GL_LESS);
 
    glEnable(GL_DEPTH_TEST);
    //Рисуем 5 граней
    glNewList(g_uBox, GL_COMPILE);
    glBegin(GL_TRIANGLES);              // Начало рисования пирамиды
        glVertex3f( 0.0f, g_fSizeBox, 0.0f);            // Верх треугольника (Передняя)
        glVertex3f(-g_fSizeBox,-g_fSizeBox, g_fSizeBox);            // Левая точка
        glVertex3f( g_fSizeBox,-g_fSizeBox, g_fSizeBox);            // Правая точка
        glVertex3f( 0.0f, g_fSizeBox, 0.0f);            // Верх треугольника (Правая)
 
        glVertex3f( g_fSizeBox,-g_fSizeBox, g_fSizeBox);            // Лево треугольника (Правая)
        glVertex3f( g_fSizeBox,-g_fSizeBox, -g_fSizeBox);           // Право треугольника (Правая)
        glVertex3f( 0.0f, g_fSizeBox, 0.0f);            // Низ треугольника (Сзади)
        glVertex3f( g_fSizeBox,-g_fSizeBox, -g_fSizeBox);           // Лево треугольника (Сзади)
 
        glVertex3f(-g_fSizeBox,-g_fSizeBox, -g_fSizeBox);           // Право треугольника (Сзади)
        glVertex3f( 0.0f, g_fSizeBox, 0.0f);            // Верх треугольника (Лево)
        glVertex3f(-g_fSizeBox,-g_fSizeBox,-g_fSizeBox);            // Лево треугольника (Лево)
        glVertex3f(-g_fSizeBox,-g_fSizeBox, g_fSizeBox);            // Право треугольника (Лево)
 
        //дно пирамиды при помощи  2-х треугольников :)
    
        glVertex3f( g_fSizeBox,-g_fSizeBox, g_fSizeBox );   
        glVertex3f(-g_fSizeBox,-g_fSizeBox, g_fSizeBox );
        glVertex3f(g_fSizeBox,-g_fSizeBox, -g_fSizeBox);        
 
        glVertex3f( g_fSizeBox,-g_fSizeBox,  -g_fSizeBox);
        glVertex3f(-g_fSizeBox,-g_fSizeBox, g_fSizeBox );
        glVertex3f(-g_fSizeBox,-g_fSizeBox, -g_fSizeBox);
 
    glEnd();
 
    glEndList();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2012, 17:29     Задать нормали к граням пирамиды (MFC + OpenGL)
Посмотрите здесь:

C++ движение пирамиды по кругу
Реализация двоичной кучи(пирамиды)!!! C++
C++ Поддерживает ли библиотека MFC программирование под OpenGL?
C++ Бинарное дерево, поиск пирамиды
C++ треугольные пирамиды
Пирамиды C++
Работа со структурой при вычислении нормали C++
Построение пирамиды из символов x C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 01:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru