ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.06.2020
Просмотров: 1698
Скачиваний: 4
96
Эти
команды
строят
икосаэдр
или
его
каркас
,
радиус
описанной
вокруг
него
сферы
равен
1.
Для
корректного
построения
перечисленных
примитивов
необходимо
удалять
невидимые
линии
и
поверхности
,
для
чего
надо
включить
соответствующий
режим
вызовом
команды
glEnable
(GL_DEPTH_TEST)
.
97
Приложение
C.
Настройка
приложений
OpenGL
C.1.
Создание
приложения
в
среде
Borland C++
5.02
Вначале
необходимо
обеспечить
наличие
файлов
glut.h, glut32.lib,
glut32.dll
в
каталогах
BorlandC\Include\Gl, BorlandC\Lib,
Windows\System
соответственно
.
Также
в
этих
каталогах
надо
проверить
наличие
файлов
gl.h, glu.h, opengl32.lib, glu32.lib, opengl32.dll,
glu32.dll,
которые
обычно
входят
в
состав
BorlandC++
и
Windows.
При
этом
надо
учитывать
,
что
версии
Microsoft
файлов
opengl32.lib,
glu32.lib, glut32.lib
для
Borland C++
не
подходят
,
и
следует
использовать
только
совместимые
версии
.
Чтобы
создать
такие
версии
,
надо
использовать
стандартную
программу
‘implib’,
которая
находится
в
каталоге
BorlandC\Bin.
Для
этого
надо
выполнить
команды
вида
implib BorlandC\Lib\filename.lib filename.dll
для
перечисленных
файлов
,
которые
создают
нужный
*.lib
файл
из
соответствующего
*.dll
файла
.
Кроме
того
,
надо
отметить
,
что
компилятор
BorlandC
не
может
по
неизвестным
причинам
использовать
файл
glaux.lib,
входящий
в
состав
BorlandC++5.02,
при
компиляции
приложения
,
использующего
библиотеку
GLAUX,
поэтому
возможно
от
этой
библиотеки
придется
отказаться
.
Для
создания
приложения
надо
выполнить
следующие
действия
:
Создание
проекта
:
для
этого
надо
выбрать
Project
New Project
и
заполнить
поля
в
окне
Target Expert
следующим
образом
:
в
поле
Platform
выбрать
Win32,
в
поле
Taget Model
выбрать
С
onsole
,
нажать
Advanced
и
отменить
выбор
пунктов
‘ *.rc ‘
и
‘ *.def ‘.
Подключить
к
проекту
библиотеки
OpenGL.
Для
этого
надо
выбрать
в
окне
проекта
название
исполняемого
файла
проекта
(*.exe)
и
,
нажав
правую
кнопку
мыши
,
выбрать
в
контекстном
меню
пункт
Add node
.
Затем
надо
определить
положение
файлов
opengl32.lib, glu32.lib, glut32.lib.
98
Для
компиляции
выбрать
Project
Build All
,
для
выполнения
–
Debug
Run
.
C.2.
Создание
приложения
в
среде
MS Visual C++
6.0
Перед
началом
работы
необходимо
скопировать
файлы
glut.h,
glut32.lib glut32.dll
в
каталоги
MSVC\Include\Gl, MSVC\Lib,
Windows\System
соответственно
.
Также
в
этих
каталогах
надо
проверить
наличие
файлов
gl.h, glu.h, opengl32.lib, glu32.lib, opengl32.dll,
glu32.dll,
которые
обычно
входят
в
состав
Visual C++
и
Windows.
При
использовании
команд
из
библиотеки
GLAUX
к
перечисленным
файлам
надо
добавить
glaux.h, glaux.lib.
Для
создания
приложения
надо
выполнить
следующие
действия
:
Создание
проекта
:
для
этого
надо
выбрать
File
New
Projects
Win32 Console Application
,
набрать
имя
проекта
, OK.
В
появившемся
окне
выбрать
‘
An empty project
’, Finish,OK.
Текст
программы
можно
либо
разместить
в
созданном
текстовом
файле
(
выбрав
File
New
Files
Text File
),
либо
добавиьб
файл
с
расширением
*.c
или
*.cpp
в
проект
(
выбрав
Project
Add To
Project
Files
).
Подключить
к
проекту
библиотеки
OpenGL.
Для
этого
надо
выбрать
Project
Settings
Link
и
в
поле
Object/library modules
набрать
названия
нужных
библиотек
: opengl32.lib, glu32.lib,
glut32.lib
и
,
если
надо
, glaux.lib.
Для
компиляции
выбрать
Build
Build program.exe
,
для
выполнения
–
Build
Execute program.exe
.
Чтобы
при
запуске
не
появлялось
текстовое
окно
,
надо
выбрать
Project
Settings
Link
и
в
поле
Project Options
вместо
‘subsystem:console’
набрать
‘subsystem:windows’,
и
набрать
там
же
строку
‘/entry:mainCRTStartup’
Когда
программа
готова
,
рекомендуется
перекомпилировать
ее
в
режиме
‘Release’
для
оптимизации
по
быстродействию
и
объему
.
Для
этого
сначала
надо
выбрать
Build
Set Active Configuration…
и
отметить
‘…-Win32 Release’,
а
затем
заново
подключить
необходимые
библиотеки
.
99
C.3.
Создание
приложения
в
среде
Borland C++
Builder 6.
Перед
началом
работы
необходимо
скопировать
файлы
glut.h,
glut32.lib glut32.dll
в
каталоги
CBuilder6\Include\Gl, CBuilder6\Lib,
Windows\System
соответственно
.
Также
в
этих
каталогах
надо
проверить
наличие
файлов
gl.h, glu.h, opengl32.lib, glu32.lib, opengl32.dll,
glu32.dll,
которые
обычно
входят
в
состав
Borland C++
и
Windows.
При
этом
надо
учитывать
,
что
версии
Microsoft
файла
glut32.lib
для
Borland C++ Builder 6
не
подходят
,
и
следует
использовать
только
совместимую
версию
.
Чтобы
создать
такую
версию
,
надо
использовать
стандартную
программу
‘implib’,
которая
находится
в
каталоге
С
Builder6\Bin.
Для
этого
надо
выполнить
команду
implib glut32.lib glut32.dll
,
которая
создает
нужный
lib-
файл
из
соответствующего
dll-
файла
.
Для
создания
приложения
надо
выполнить
следующие
действия
:
Создание
проекта
:
для
этого
надо
выбрать
File
New
Other
Console Wizard
, OK.
В
появившемся
окне
выбрать
Source Type –
С
++, Console
Application,
сбросить
опции
‘Use VCL’, ‘Use CLX’, ‘Multi Threaded’.
Нажать
ОК
.
Текст
программы
можно
либо
разместить
в
созданном
текстовом
файле
,
либо
удалить
его
из
проекта
(
Project
Remove From Project
)
и
добавить
файл
с
расширением
*.c
или
*.cpp
в
проект
(
выбрав
Project
Add To Project
).
Сохраните
созданный
проект
в
желаемом
каталоге
(
выбрав
File
Save All
).
Подключить
к
проекту
библиотеку
GLUT.
Для
этого
надо
выбрать
Project
Add To Project
и
добавить
файл
glut32.lib
Для
компиляции
выбрать
Project
Build …
,
для
выполнения
–
Run
Run
.
Когда
программа
готова
,
рекомендуется
перекомпилировать
ее
в
режиме
‘Release’
для
оптимизации
по
быстродействию
и
объему
.
Для
этого
сначала
надо
выбрать
Project
Options
Compiler
и
нажать
кнопку
‘Release’.
100
Приложение
D.
Демонстрационные
программы
D.1.
Пример
1:
Простое
GLUT-
приложение
Этот
простой
пример
предназначен
для
демонстрации
структуры
GLUT-
приложения
и
простейших
основ
OpenGL.
Результатом
работы
программы
является
случайный
набор
цветных
прямоугольников
,
который
меняется
при
нажатии
левой
кнопки
мыши
.
С
помощью
правой
кнопки
мыши
можно
менять
режим
заливки
прямоугольников
.
#include <stdlib.h>
#include <gl/glut.h>
#ifdef random
#undef random
#endif
#define random(m) (float)rand()*m/RAND_MAX
/*
ширина
и
высота
окна
*/
GLint Width = 512, Height = 512;
/*
число
прямоугольников
в
окне
*/
int Times = 100;
/*
с
заполнением
?*/
int FillFlag = 1;
long Seed = 0;
/*
функция
отображает
прямоугольник
*/
void
DrawRect( float x1, float y1, float x2, float y2,
int FillFlag )
{
glBegin(FillFlag ? GL_QUADS : GL_LINE_LOOP);
glVertex2f(x1, y1);
glVertex2f(x2, y1);