Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mexx-nikitin
78 / 78 / 3
Регистрация: 28.03.2010
Сообщений: 306
#1

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

11.05.2012, 17:29. Просмотров 495. Ответов 0
Метки нет (Все метки)

Подскажите,как правильно задать нормали к пирамиде?
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();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2012, 17:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задать нормали к граням пирамиды (MFC + OpenGL) (C++):

OpenGL и нормали (C++) - OpenGL
Приветствую участников форума. Я начинающий программист-любитель, решил перейти к программированию графики под винду. Решил изучить OpenGL....

Простая работа с OpenGL на Delphi. Вычисление нормали. - Delphi
Решил сделать небольшой FAQ по теме. Итак. Прежде чем начать хочу показать какой код частенько вижу от начинающих:...

Куб - вершины, нормали, текстуры - как задать - OpenGL
В игре, которую я делаю, нужно нарисовать куб, задав вершины, индексы и все параметры вручную. Это нужно, чтобы иметь доступ к всем...

OpenGl MFC C++ - OpenGL
Всем добрый день. Полистал форум не нашел нужного мне материала...Я студент 2 курса, учусь С++. Освоил графику в MFC, сделал кучу игрушек...

OpenGL+MFC - OpenGL
Всем привет, вот столкнулся вот с такой проблемой! Хотел нарисовать в openGL треугольничек и повращать его Подключил, все...

Поддерживает ли библиотека MFC программирование под OpenGL? - Visual C++
У меня возник такой вопрос: Поддерживает ли библиотека MFC программирование под OpenGL?

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2012, 17:29
Привет! Вот еще темы с ответами:

Перемещение по граням куба - Unity, Unity3D
Доброго времени суток, вопрос по поводу перемещения по 3D платформе, делаю двигающийся уровень в игре, есть куб, как реализовать...

Сделать окно OpenGL в MFC приложении visual studio 2013 - OpenGL
Добрый день друзья! Столкнулся с такой проблемой, что нужно реализовать OpenGL окно в одностраничном приложении MFC с статической...

Определить количество способов перемещения по смежным граням куба - Pascal
Может кто-то помочь срочно решить олимпиадную задачку. Поверхность куба отрезками, параллельными к ребрам куба, разделена на...

Найти отношение объемов частей пирамиды, полученных сечением пирамиды плоскостью - Геометрия
В правильной четырехугольной пирамиде PABCD с вершиной P проведено сечение через сторону AB и середину PC. В каком отношении сечение делит...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru