Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Порядок выполнения работы. 1. Создайте консольное приложение - Win32 Console Application



1. Создайте консольное приложение - Win32 Console Application. Достоинством приложений данного типа является переносимость на другие платформы, поскольку реализация OpenGL Auxilary Library существует для большинства платформ. Такой тип приложения идеально подходит для написания небольших утилит, размером до 25Kb. Для этого:

- Запустите MSVisualC++

- Выполните команды меню File->New->Win32 Console Application.

- Выберите каталог и имя проекта (ОК).

- Выберите An Empty Project (Finish).

- Создайте новый текстовый файл и сохраните его с выбранным именем.

- Присоедините его к проекту. Project->Add To Project->Files

- Выполните команды Build->Set Active Configuration и установите тип проекта - Win32 Release

- Далее выполняются команды Project->Settings->Link->Object/library modules: и добавляются библиотеки opengl32.lib, glu32.lib и glaux.lib.

2. Используя нижеприведенный код программы и комментарии к нему, составьте программу для выполнения задания лабораторной работы.

#include "stdafx.h"

#include <GL/glut.h>

void init(void)//общая инициализация. Здесь операции, которые нужно выполнить только один раз

{

glClearColor(1.0,1.0,1.0,0.0);

glMatrixMode(GL_PROJECTION);// изменяем матрицу проекции

glLoadIdentity();//считывает текущую матрицу

glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);// устанавливает систему координат

}

void display(void)//вывод на экран

{

glClear(GL_COLOR_BUFFER_BIT);

glColor3f(0.01,0.29,0.76);

//glBegin(GL_POLYGON);

glBegin(GL_TRIANGLES);

glVertex3f(0.25,0.25,0.0);

glVertex3f(0.75,0.25,0.0);

glVertex3f(0.75,0.75,0.0);

//glVertex3f(0.25,0.75,0.0);

glEnd();

glColor3f(0.6,0.4,0.8);

glBegin(GL_POLYGON);

glVertex3f(0.1,0.4,0.0);

glVertex3f(0.4,0.8,0.0);

glVertex3f(0.2,0.9,0.0);

glVertex3f(0.1,0.2,0.0);

glVertex3f(0.4,0.8,0.0);

glEnd();

glPointSize(3);

glBegin(GL_POINTS);

glColor3d(1,0,0);

glVertex3f(0.6,0.6,0); // первая точка

glColor3d(0,1,0);

glVertex3f(0.8,0.9,0.0); // вторая точка

glColor3d(0,0,1); // третья

glVertex3f(0.5,0.5,0.0);

glEnd();

glPointSize(15);

glBegin(GL_POINTS);

glColor3d(1,0,0);

glVertex3f(0.2,0.2,0.0); // первая точка

glColor3d(0,1,0);

glVertex3f(0.3,0.3,0.0); // вторая точка

glColor3d(0,0,1); // третье

glVertex3f(0.45,0.36,0.0);

glEnd();

glLineWidth(2);

glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); //рисуем проволочные треугольники. устанавливает опции для отрисовки многоугольника.

//Первый параметр может принимать значения - GL_FRONT, GL_BACK и GL_FRONT_AND_BACK.

//Второй параметр указывает, как будет рисоваться многоугольник. Он принимает значения - GL_POINT(рисуются только точки),

//GL_LINE(рисуем линии) и GL_FILL(рисуем заполненный многоугольник). Первый параметр указывает: к лицевой, тыльной или же к

//обеим сторонам применяется опция, заданная вторым параметром.

glBegin(GL_TRIANGLE_STRIP); // обратите внимание на порядок

// вершин

glColor3d(0,1,0);

glVertex3d(0.1,0.2,0);

glVertex3d(0.6,0.4,0);

glVertex3d(0.5,0.9,0);

glVertex3d(0.9,0.1,0);

glEnd();

glEnable(GL_LINE_STIPPLE);

glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

glBegin(GL_TRIANGLE_FAN);

glColor3d(0,0,1);

glVertex3d(0.4,0.2,0);

glVertex3d(0.6,0.8,0);

glVertex3d(0.3,0.2,0);

glVertex3d(0.3,0.1,0);

glEnd();

glDisable(GL_LINE_STIPPLE);

glFlush();

}

int _tmain(int argc, char **argv)//Параметр argc содержит количество аргументов в командной строке и является целым числом, причем он всегда не меньше 1,

//потому что первым аргументом считается имя программы. А параметр argv является указателем на массив указателей на строки.

//В этом массиве каждый элемент указывает на какой-либо аргумент командной строки

{

glutInit(&argc,argv);

glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//указывает режим отображения для окон

glutInitWindowSize(750,750);

glutInitWindowPosition(100,100);

glutCreateWindow("hello");

init();

glutDisplayFunc(display);//функция перерисовки окна

glutMainLoop();//вводит программу в цикл обработки сообщений

return 0;

}





Дата публикования: 2015-10-09; Прочитано: 240 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...