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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.81
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
20.06.2011, 23:24     Подключение и работа в Glut или другие способы простенькой графики #1
Не могу никак использовать 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Д графику (черчение графиков буду использовать)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2011, 23:24     Подключение и работа в Glut или другие способы простенькой графики
Посмотрите здесь:

C++ Какие есть способы или алгоритмы написания программы для нахождения обратной матрицы
C++ Какие способы самые удобные/рациональные способы регистрации ошибок есть?
C++ подключение glut
Работа с графом (Требуется по заявке клиента предложить способы обмена жилплощади) C++
Кириллица в openGL (glut, freeglut) или (!) альтернатива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 11:58  [ТС]     Подключение и работа в Glut или другие способы простенькой графики #21
Не найду)))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
26.06.2011, 12:33     Подключение и работа в Glut или другие способы простенькой графики #22
glut.txt переименовывай в glut.cpp и компиль с параметрами который я тебе говорил раньше. Кстати, они у тебя прописаны в файле glut.template, открой и посмотри его
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 12:57  [ТС]     Подключение и работа в Glut или другие способы простенькой графики #23
Комп встает замертво...
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
26.06.2011, 14:48     Подключение и работа в Glut или другие способы простенькой графики #24
Как замертво?
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 16:39  [ТС]     Подключение и работа в Glut или другие способы простенькой графики #25
Появляется окно выполнения, ничего не делает, можно двигать мышкой но на нажатия не реагирует. Потом и мышка отрубается.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
26.06.2011, 16:42     Подключение и работа в Glut или другие способы простенькой графики #26
Ясно, это во время компиляции или по запуску СКОМПИЛИРОВАННОЙ программы?
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 16:54  [ТС]     Подключение и работа в Glut или другие способы простенькой графики #27
Цитата Сообщение от Sanjo Посмотреть сообщение
Появляется окно выполнения
тут кроется ответ))
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
26.06.2011, 17:06     Подключение и работа в Glut или другие способы простенькой графики #28
Нет, ну ты если меня подкалывать будешь, тогда подкалывай кого-нибудь другого. Я умею читать; во время компиляции тоже появляется херь, которую можно назвать окном выполнения.
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 17:11  [ТС]     Подключение и работа в Glut или другие способы простенькой графики #29
Компилируется нормально
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
26.06.2011, 17:25     Подключение и работа в Glut или другие способы простенькой графики #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

Всё верно?
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
26.06.2011, 20:17  [ТС]     Подключение и работа в Glut или другие способы простенькой графики #31
Да, все именно так
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
26.06.2011, 20:55     Подключение и работа в Glut или другие способы простенькой графики #32
Ну что же, давай сюда экзешник, сравню со своим
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
27.06.2011, 15:00  [ТС]     Подключение и работа в Glut или другие способы простенькой графики #33
http://************.com/files/vyj5ytyvh
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,269
27.06.2011, 16:17     Подключение и работа в Glut или другие способы простенькой графики #34
Вот такая херь получилась при запуске твоего файла. И каждая фигурка крутится, как и на моём экзешнике, так что твой правильный. Думай, чё делать.
Миниатюры
Подключение и работа в Glut или другие способы простенькой графики  
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
27.06.2011, 16:23     Подключение и работа в Glut или другие способы простенькой графики #35
Один из вариантов — попробовать заменить видеодрайвер. И кстати, Sanjo, какая операционка?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2011, 18:53     Подключение и работа в Glut или другие способы простенькой графики
Еще ссылки по теме:

C++ Разные способы подключения файла, или как еще можно передать функции двумерный массив?
Подключение glut C++
C++ Подключение glut к Code::Blocks

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

Или воспользуйтесь поиском по форуму:
Sanjo
4 / 4 / 1
Регистрация: 20.06.2011
Сообщений: 24
27.06.2011, 18:53  [ТС]     Подключение и работа в Glut или другие способы простенькой графики #36
Стоит Win XP со всеми обновлениями. Видюха ATI драйвера стоят нормальные. Также установлен ATI Catalyst Center
Yandex
Объявления
27.06.2011, 18:53     Подключение и работа в Glut или другие способы простенькой графики
Ответ Создать тему
Опции темы

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