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

Подскажите по С++ OpenGL(GLUT) - C++

Восстановить пароль Регистрация
 
Reborn
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 3
13.09.2012, 14:30     Подскажите по С++ OpenGL(GLUT) #1
Подскажите пожалуйста!
Как создать 2 квадрата?
Один создал а второй не получается(((

Вот код:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// lab.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h" 
#include "windows.h" 
#include "GL/gl.h"  
#include "GL/glu.h"  
#include "GL/glut.h"  
 
 
void Initialize(void)
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
      
      glEnable(GL_LINE_SMOOTH);
    
}
 
 
void  display (void) 
    {  glTranslatef(-0.5, 0.0, -0.4);
 
    glClear(GL_COLOR_BUFFER_BIT);
 
    for(int i =1; i<11; i++)
    {
        glPointSize( i );
        glBegin(GL_POINTS);
        glVertex2f( -0.9 + i*0.1, 0.8);
        glEnd();
    }
    glEnable(GL_POINT_SMOOTH);
    for(int i = 1; i < 11; i++)
    {
        glPointSize( i );
        glBegin(GL_POINTS);
        glVertex2f( -0.9 + i*0.1, 0.8);
        glEnd();
    }
       
    
             
         
 
        {
        //Чотирикутник
        glTranslatef(-0.1, -0.5, 0.0); 
        glBegin(GL_QUADS);
                glColor3f(1, 0, 0);
                glVertex3f(-0.3f, 0.3f, 0.3f);  // Слева вверху
                glColor3f(0, 1, 0);
                glVertex3f( 0.3f, 0.3f, -0.2f);  // Справа вверху
                glColor3f(0, 0, 1);
                glVertex3f( 0.3f,-0.3f, -0.2f);  // Справа внизу
                glColor3f(1, 0, 1);
                glVertex3f(-0.3f,-0.3f, -0.2f);  // Слева внизу
                        
 
         glEnd();
         glFlush();
        } 
 
    {
        //Трикутник
        
        glTranslatef(1.0, 0.2, 1.0);
         glBegin(GL_TRIANGLES);
                
                glColor3f(1, 0, 0);
                glVertex2f(-0.5, -0.5);
                glColor3f(0, 1, 0);
                glVertex2f(0.5, -0.5);
                glColor3f(0, 0, 1);
                glVertex2f(0.0, 0.0);
                
         glEnd();
         glFlush();
 
    }
        
    {
    //Лінія
    glTranslatef(-1.5, 0.6, 0.0);
    glDisable(GL_POINT_SMOOTH);
    glLineWidth(3.5);   // Ширина
        glBegin (GL_LINES);
        
        glColor3f(0.0, 1.0, 0.0);
        glVertex2f (1.2, 0.5);  
        glVertex2f (4.0, 0.5);
        glEnd ();  
        glFlush (); 
 
    }
 
 
    
}  
 
 
 
int main(int argc, char** argv)
    {   
        glutInit (&argc, argv); /* Перший параметр є покажчиком на кількість аргументів в командному 
                               рядку, а другий P покажчик на масив аргументів. Зазвичай ці значення беруться 
                               з головної функції програми */
 
    
        glutInitDisplayMode(GLUT_SINGLE); /*Виведення у вікно здійснюється з використанням 1 буфера. 
                                        Зазвичай використовується для виведення статичної інформації. */
 
        glutInitWindowSize(800, 600); //визначення розмірів вікна
 
        glutInitWindowPosition(350, 250);
 
        glutCreateWindow("Лабораторна робота № 1 Ініціалізація OpenGL та GLUT. Графічні примітиви OpenGL.");
 
        glutDisplayFunc(display);   
 
        Initialize();
 
        glutMainLoop();
 
    
        return 0;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Elboy
131 / 112 / 4
Регистрация: 01.09.2012
Сообщений: 288
13.09.2012, 15:17     Подскажите по С++ OpenGL(GLUT) #2
Это у вас прорисовка 1ого квадрата:
Цитата Сообщение от Reborn Посмотреть сообщение
glBegin(GL_QUADS);
glColor3f(1, 0, 0);
glVertex3f(-0.3f, 0.3f, 0.3f); // Слева вверху
glColor3f(0, 1, 0);
glVertex3f( 0.3f, 0.3f, -0.2f); // Справа вверху
glColor3f(0, 0, 1);
glVertex3f( 0.3f,-0.3f, -0.2f); // Справа внизу
glColor3f(1, 0, 1);
glVertex3f(-0.3f,-0.3f, -0.2f); // Слева внизу
glEnd();
Зачем вы указываете координату по оси Z (3ий параметр в ф-ии glVertex3f), если вам нужен квадрат?

Чтобы нарисовать 2ой квадрат, дублируйте блок кода прорисовки 1ого квадрата и просто измените координаты.
Reborn
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 3
13.09.2012, 17:52  [ТС]     Подскажите по С++ OpenGL(GLUT) #3
Цитата Сообщение от Elboy Посмотреть сообщение
Это у вас прорисовка 1ого квадрата:

Зачем вы указываете координату по оси Z (3ий параметр в ф-ии glVertex3f), если вам нужен квадрат?

Чтобы нарисовать 2ой квадрат, дублируйте блок кода прорисовки 1ого квадрата и просто измените координаты.
Что то у меня не получается, код дублирую и не получается.
Elboy
131 / 112 / 4
Регистрация: 01.09.2012
Сообщений: 288
13.09.2012, 18:03     Подскажите по С++ OpenGL(GLUT) #4
Нужно не просто продублировать но и координаты изменить, чтобы квадрат в другом месте нарисовался, а не поверх старого.
Reborn
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 3
13.09.2012, 18:40  [ТС]     Подскажите по С++ OpenGL(GLUT) #5
Цитата Сообщение от Elboy Посмотреть сообщение
Нужно не просто продублировать но и координаты изменить, чтобы квадрат в другом месте нарисовался, а не поверх старого.
Пробивал но не получилось((
Yandex
Объявления
13.09.2012, 18:40     Подскажите по С++ OpenGL(GLUT)
Ответ Создать тему
Опции темы

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