Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/32: Рейтинг темы: голосов - 32, средняя оценка - 4.81
4 / 4 / 0
Регистрация: 20.06.2011
Сообщений: 24

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

20.06.2011, 23:24. Показов 6619. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.06.2011, 23:24
Ответы с готовыми решениями:

Collision2d или другие способы существуют?
Добрый вечер. Возникла проблема, я хочу сделать чтобы при столкновении персонажа с объектом он уничтожался, но так как у меня: private...

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

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

35
4 / 4 / 0
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 11:58  [ТС]
Студворк — интернет-сервис помощи студентам
Не найду)))
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.06.2011, 12:33
glut.txt переименовывай в glut.cpp и компиль с параметрами который я тебе говорил раньше. Кстати, они у тебя прописаны в файле glut.template, открой и посмотри его
0
4 / 4 / 0
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 12:57  [ТС]
Комп встает замертво...
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.06.2011, 14:48
Как замертво?
0
4 / 4 / 0
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 16:39  [ТС]
Появляется окно выполнения, ничего не делает, можно двигать мышкой но на нажатия не реагирует. Потом и мышка отрубается.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.06.2011, 16:42
Ясно, это во время компиляции или по запуску СКОМПИЛИРОВАННОЙ программы?
0
4 / 4 / 0
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 16:54  [ТС]
Цитата Сообщение от Sanjo Посмотреть сообщение
Появляется окно выполнения
тут кроется ответ))
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.06.2011, 17:06
Нет, ну ты если меня подкалывать будешь, тогда подкалывай кого-нибудь другого. Я умею читать; во время компиляции тоже появляется херь, которую можно назвать окном выполнения.
1
4 / 4 / 0
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 17:11  [ТС]
Компилируется нормально
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.06.2011, 17:25
ОК, подобьём бабки.
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
4 / 4 / 0
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 20:17  [ТС]
Да, все именно так
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
26.06.2011, 20:55
Ну что же, давай сюда экзешник, сравню со своим
0
4 / 4 / 0
Регистрация: 20.06.2011
Сообщений: 24
27.06.2011, 15:00  [ТС]
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
27.06.2011, 16:17
Вот такая херь получилась при запуске твоего файла. И каждая фигурка крутится, как и на моём экзешнике, так что твой правильный. Думай, чё делать.
Миниатюры
Подключение и работа в Glut или другие способы простенькой графики  
0
Эксперт С++
 Аватар для grizlik78
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
27.06.2011, 16:23
Один из вариантов — попробовать заменить видеодрайвер. И кстати, Sanjo, какая операционка?
0
4 / 4 / 0
Регистрация: 20.06.2011
Сообщений: 24
27.06.2011, 18:53  [ТС]
Стоит Win XP со всеми обновлениями. Видюха ATI драйвера стоят нормальные. Также установлен ATI Catalyst Center
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2011, 18:53

Ошибки при компиляции (glut и другие)
Здравствуйте! Может кто знает в чем беда? При попытках сборки проектов (из уроков по OpenGL) в VS_2017 c библиотеками glut/freeglut и...

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

Shell и другие способы
В хелпе по Shell написано: In other environments, after Shell starts a program, LotusScript continues to execute the script without...


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

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru