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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.81
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
#1

Подключение и работа в Glut или другие способы простенькой графики - C++

20.06.2011, 23:24. Просмотров 3969. Ответов 35
Метки нет (Все метки)

Не могу никак использовать glut и откомпилить найденный в интернете код
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
#include <D:\cpp\GL\glut.h>
 
void Reshape(int width, int height)
{
 glViewport(0, 0, width, height);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 gluOrtho2D(-1, 1, -1, 1);
 glMatrixMode(GL_MODELVIEW);
}
 
void Draw(void)
{
 glClear(GL_COLOR_BUFFER_BIT);
 
 glColor3f(0.0f, 0.0f, 1.0f);
 glLineWidth(1);
 
 glBegin(GL_LINES);
   glVertex2f(0, 0.5f);  
   glVertex2f(0, -0.5f);  
 glEnd();
 
 glFlush();  
}
 
int main(int argc, char *argv[])
{
 glutInit(&argc, argv);
 glutInitWindowSize(400, 300);
 glutInitWindowPosition(100, 100);
 
 glutInitDisplayMode(GLUT_RGB);
 glutCreateWindow("Romka Demo");
 
 glutReshapeFunc(Reshape);
 glutDisplayFunc(Draw);
 glClearColor(0, 0, 0, 0);
 
 glutMainLoop();
 return 0;
}
Ни в Dev-Cpp, ни в Code::Blocks.
Помогите пошагово аккуратно заставить все работать, также приветствуются альтернативные способы использовать просто 2Д графику (черчение графиков буду использовать)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2011, 23:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подключение и работа в Glut или другие способы простенькой графики (C++):

While(cin >> x) или подскажите другие способы заполнения вектора - C++
Читаю Страуструпа. Ну и естественно делаю упражнения. И вот дошел до 5 главы, где понадобилась его гребаная библиотека...

Подключение glut - C++
Всем привет, сегодня начал знакомство c++ и возникли проблемы с подключением библиотеки glut. Работаю в VS 2008. Прочел несколько...

подключение glut - C++
Не могу подключить glut к своему приложению. Проблема в том, что я пользуюсь Windows 8 (x64), VS Premium (x64). Перепробывал...

Подключение glut к Code::Blocks - C++
Очень много проблем возникло с этим моментом. Хотя искал в сети решения. Во-первых сильное ли отношение имеет glut к OpenGL? И в чём...

Кириллица в openGL (glut, freeglut) или (!) альтернатива - C++
Ребят уже целый вечер гуглю. Недельку назад начал плотно изучать C++. С графикой вообще интересно, Арканоиды там всякие и т.п. И вот...

Работа с трехмерными примитивами. Вокруг конуса GLU вращаются сфера GLUT и конус GLUT - OpenGL
создание виртуальной камеры gluLookAt и добавление эффектов анимации. вот само задание Вокруг конуса GLU вращаются сфера GLUT и конус...

35
Vandris
63 / 63 / 13
Регистрация: 19.01.2011
Сообщений: 94
23.06.2011, 21:59 #16
на винде, чтобы работал glut надо подключить windows.h, уж не знаю почему, но без него подобные ошибки и лезут...
undefined reference to `__glutInitWithExit'
0
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
24.06.2011, 10:45  [ТС] #17
Цитата Сообщение от kravam Посмотреть сообщение
Вот такие файлы у меня образовались после установления пакета glut

include\GL\glut.h
include\GL\glutf90.h
lib\libglut32.a
Templates\glut.template
Templates\glut.txt
у меня 1 и 3 файл, остальных и не было
качал тут http://www.xmission.com/~nate/glut.html

Добавлено через 11 секунд
Цитата Сообщение от Vandris Посмотреть сообщение
на винде, чтобы работал glut надо подключить windows.h, уж не знаю почему, но без него подобные ошибки и лезут...
undefined reference to `__glutInitWithExit'
Не помогло
0
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
24.06.2011, 15:11 #18
Всё ясно, а ты воспользуйся сервисом для скачивания пакета glut, который предлагает DEV C++ и всё будет ОК

Делается это так:
Во-первых, постарайся безболезненно убрать файлы, которые получились у тебя в результате скачиваня glut
Во-вторых сервис->проверить обновления/пакеты-> devpaks.org....-> chek for updates-> OPenGL-> glut-> download selected

Дальше скачивай и инсталлируй.
0
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 10:39  [ТС] #19
Цитата Сообщение от kravam Посмотреть сообщение
Всё ясно, а ты воспользуйся сервисом для скачивания пакета glut, который предлагает DEV C++ и всё будет ОК

Делается это так:
Во-первых, постарайся безболезненно убрать файлы, которые получились у тебя в результате скачиваня glut
Во-вторых сервис->проверить обновления/пакеты-> devpaks.org....-> chek for updates-> OPenGL-> glut-> download selected

Дальше скачивай и инсталлируй.
Теперь компилируется, а при запуске компьютер встает замертво. Ничего не работает, только резет...
0
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
26.06.2011, 11:35 #20
Ну вот, теперь запусти пример, который ты скачал (найдёшь сам?). Он поставляется вместе c glut, сдледовательно, должен скомпилиться и запуститься без проблем.
Сделаешь это- значит, glut встал нормально; будем дольше посмотреть
0
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 11:58  [ТС] #21
Не найду)))
0
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
26.06.2011, 12:33 #22
glut.txt переименовывай в glut.cpp и компиль с параметрами который я тебе говорил раньше. Кстати, они у тебя прописаны в файле glut.template, открой и посмотри его
0
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 12:57  [ТС] #23
Комп встает замертво...
0
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
26.06.2011, 14:48 #24
Как замертво?
0
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 16:39  [ТС] #25
Появляется окно выполнения, ничего не делает, можно двигать мышкой но на нажатия не реагирует. Потом и мышка отрубается.
0
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
26.06.2011, 16:42 #26
Ясно, это во время компиляции или по запуску СКОМПИЛИРОВАННОЙ программы?
0
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 16:54  [ТС] #27
Цитата Сообщение от Sanjo Посмотреть сообщение
Появляется окно выполнения
тут кроется ответ))
0
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
26.06.2011, 17:06 #28
Нет, ну ты если меня подкалывать будешь, тогда подкалывай кого-нибудь другого. Я умею читать; во время компиляции тоже появляется херь, которую можно назвать окном выполнения.
1
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 17:11  [ТС] #29
Компилируется нормально
0
kravam
быдлокодер
1700 / 887 / 45
Регистрация: 04.06.2008
Сообщений: 5,498
26.06.2011, 17:25 #30
ОК, подобьём бабки.
1) Ты компилишь этот файл с расширением cpp:
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
/*
 * FreeGLUT Shapes Demo
 *
 * Written by Nigel Stewart November 2003
 *
 * This program is test harness for the sphere, cone 
 * and torus shapes in FreeGLUT.
 *
 * Spinning wireframe and smooth shaded shapes are
 * displayed until the ESC or q key is pressed.  The
 * number of geometry stacks and slices can be adjusted
 * using the + and - keys.
 */
 
#include <GL/glut.h>
 
#include <stdlib.h>
 
static int slices = 16;
static int stacks = 16;
 
/* GLUT callback Handlers */
 
static void 
resize(int width, int height)
{
    const float ar = (float) width / (float) height;
    
    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glFrustum(-ar, ar, -1.0, 1.0, 2.0, 100.0);
    
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity() ;
}
 
static void 
display(void)
{
    const double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
    const double a = t*90.0;
 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3d(1,0,0);
 
    glPushMatrix();
        glTranslated(-2.4,1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutSolidSphere(1,slices,stacks);
    glPopMatrix();
 
    glPushMatrix();
        glTranslated(0,1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutSolidCone(1,1,slices,stacks);
    glPopMatrix();
 
    glPushMatrix();
        glTranslated(2.4,1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutSolidTorus(0.2,0.8,slices,stacks);
    glPopMatrix();
 
    glPushMatrix();
        glTranslated(-2.4,-1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutWireSphere(1,slices,stacks);
    glPopMatrix();
 
    glPushMatrix();
        glTranslated(0,-1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutWireCone(1,1,slices,stacks);
    glPopMatrix();
 
    glPushMatrix();
        glTranslated(2.4,-1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutWireTorus(0.2,0.8,slices,stacks);
    glPopMatrix();
 
    glutSwapBuffers();
}
 
 
static void 
key(unsigned char key, int x, int y)
{
    switch (key) 
    {
        case 27 : 
        case 'q':
            exit(0);
            break;
 
        case '+':
            slices++;
            stacks++;
            break;
 
        case '-':
            if (slices>3 && stacks>3)
            {
                slices--;
                stacks--;
            }
            break;
    }
 
    glutPostRedisplay();
}
 
static void 
idle(void)
{
    glutPostRedisplay();
}
 
const GLfloat light_ambient[]  = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[]  = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };
 
const GLfloat mat_ambient[]    = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[]    = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[]   = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };
 
/* Program entry point */
 
int 
main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitWindowSize(640,480);
    glutInitWindowPosition(10,10);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
 
    glutCreateWindow("FreeGLUT Shapes");
 
    glutReshapeFunc(resize);
    glutDisplayFunc(display);
    glutKeyboardFunc(key);
    glutIdleFunc(idle);
 
    glClearColor(1,1,1,1);
    glEnable(GL_CULL_FACE);
    glCullFace(GL_BACK);
 
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LESS);
 
    glEnable(GL_LIGHT0);
    glEnable(GL_NORMALIZE);
    glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_LIGHTING);
 
    glLightfv(GL_LIGHT0, GL_AMBIENT,  light_ambient);
    glLightfv(GL_LIGHT0, GL_DIFFUSE,  light_diffuse);
    glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
    glLightfv(GL_LIGHT0, GL_POSITION, light_position);
 
    glMaterialfv(GL_FRONT, GL_AMBIENT,   mat_ambient);
    glMaterialfv(GL_FRONT, GL_DIFFUSE,   mat_diffuse);
    glMaterialfv(GL_FRONT, GL_SPECULAR,  mat_specular);
    glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
 
    glutMainLoop();
 
    return EXIT_SUCCESS;
}
2) Ты компипишиь его в DEV C++
3) При компиляции у тебя к опциям компилятора добавлено -DGLUT_STATIC
4) К опциям линкёра (компоновщика) добавлено -lglut32 -lglu32 -lopengl32 -lwinmm -lgdi32

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

Работа с Pages или другие варианты - C#
Нужна сделать, типа несколько страниц(грубо говоря) На 1 будет выводить, пример &quot;об программе&quot;, потом в навигации выбираю &quot;Автор&quot;, он...

Способы копирования файлов и папок в другие папки и носители - Windows XP
Срочно нужны! больше 20 способов! Пожалуйста!

Подключение Glut в CBuilder 6 - OpenGL
загрузила библиотеку glut https://www.opengl.org/resources/libraries/glut/ согласно правилам...

OpenGL в Dev C++ подключение <GL/glut.h> - OpenGL
Всем привет!У меня такая проблема когда я компилирую в Dev С ++ 5.4.2 вот этот код #include &lt;GL/glut.h&gt; void display() { ...


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

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

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