тест. Челябинский государственный университет
Скачать 0.56 Mb.
|
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования ЧЕЛЯБИНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ Кафедра ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ <Программные средства компьютерной графики – OpenGL, Задание № 2> По дисциплине: <Компьютерная графика>
Челябинск 2010 г. Шаг 1: Запуск CodeBlocks и создание нового проекта Шаг 2: Создание проекта SDL Шаг 3: Выбор названия и директории для проекта Шаг 4: Открываем пустой проект Pr01 и пишем программу: Шаг 5: Тестовая программа скомпилирована и запущена Шаг 6: Окно программы после закрытия окна с графическим изображением Текст программы: #include #include #include #include #include int main ( int argc, char** argv ) //объявляем главную функцию main { SDL_Init(SDL_INIT_VIDEO); //инициализация работы с видеоподсистемой в SDL SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 0); // инициализация OpenGL и //не используем двойную буфферизацию SDL_Surface* screen = SDL_SetVideoMode(640, 480, 16,SDL_OPENGL); //устанавливаем параметры вывода изображения графического окна (размеры и глубину цвета) SDL_WM_SetCaption("The window with HIM",NULL); //Определяем заголовок окна glClear(GL_COLOR_BUFFER_BIT); // очищаем экран { glLineWidth(10); //устанавливаем ширину выводимой линии в 10 glPushMatrix(); //помещает в стек копию текущей матрицы glRotatef(40.0f,0.0f,0.0f,1.0f); //буква Х; поворот всей матрицы на 40 градусов glBegin(GL_LINES); //открываем операторные скобки и определяем тип примитива - линии //для буквы Х glColor3d(1,0,0); //цвет вершины красный glVertex2f(-0.9,0.2); // вершина1 1 линии : координаты glColor3d(0,0,1); //цвет вершины синий glVertex2f(-0.8,0.4); // вершина2 1 линии : координаты, создана линия с координатами x1,y1,x2,y2 //создаем линию 2 буквы Х glColor3d(0,1,0); //цвет зеленый вершины 1 линии 2 glVertex2f(-0.8,0.2); // вершина 1 линии 2 glColor3d(0,0,1); //определяем цвет вершины 2 линии 2 glVertex2f(-0.9,0.4); // определяем координаты вершины 2 линии 2 glEnd(); //закрываем операторные скобки //закрываем операторные скобки - буква Х создана glBegin(GL_LINE_STRIP); //открываем операторные скобки и определяем тип примитива - //ломаная линия для буквы И glColor3d(1,0,0); //определяем цвет вершины 1 отрезка 1 glVertex2f(-0.7,0.4); // буква И: Определяем координаты вершины 1 отрезка 1 glColor3d(0,0,1); //определяем цвет вершины 2 отрезка 1 glVertex2f(-0.7,0.2); // Определяем координаты вершины 2 отрезка 1 glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(-0.7,0.2); // Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(-0.6,0.4); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(-0.6,0.4); // Определяем координаты вершины glColor3d(1,0,1); //определяем цвет вершины отрезка glVertex2f(-0.6,0.2); // Определяем координаты вершины glEnd(); //закрываем операторные скобки //////////////////////////////////// буква М glBegin(GL_LINE_STRIP); //открываем операторные скобки и определяем тип примитива glColor3d(0,1,0); //определяем цвет вершины отрезка glVertex2f(-0.5,0.2); // буква M Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(-0.5,0.4); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(-0.5,0.4); // Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(-0.45,0.3); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(-0.45,0.3); // Определяем координаты вершины glColor3d(1,0,1); //определяем цвет вершины отрезка glVertex2f(-0.40,0.4); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(-0.40,0.4); // буква M - Определяем координаты вершины glColor3d(0,0,1); //определяем цвет вершины отрезка glVertex2f(-0.40,0.2); // Определяем координаты вершины glEnd(); //закрываем операторные скобки } glPopMatrix(); //выталкивает из стека матрицу, помещенную туда ранее /////////////////2 glPushMatrix(); //помещает в стек копию текущей матрицы glRotatef(60.0f,1.0f,1.0f,0.0f); //поворот всей матрицы на 60 градусов { glLineWidth(5);//определить ширину линии 5 glBegin(GL_LINES); //открываем операторные скобки и определяем тип примитива glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.15,0.2); // Определяем координаты вершины glColor3d(0,0,1); //определяем цвет вершины отрезка glVertex2f(0.2,0.3); // Определяем координаты вершины glColor3d(0,1,0); //определяем цвет вершины отрезка glVertex2f(0.15,0.3); // Определяем координаты вершины glColor3d(0,0,1); //определяем цвет вершины отрезка glVertex2f(0.2,0.2); // Определяем координаты вершины glEnd(); //закрываем операторные скобки glBegin(GL_LINE_STRIP); //открываем операторные скобки и определяем тип примитива glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.25,0.3); // буква И // Определяем координаты вершины glColor3d(0,0,1); //определяем цвет вершины отрезка glVertex2f(0.25,0.2); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.25,0.2); // Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(0.30,0.3); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.3,0.3); // Определяем координаты вершины glColor3d(1,0,1); //определяем цвет вершины отрезка glVertex2f(0.3,0.2); // Определяем координаты вершины glEnd(); //закрываем операторные скобки glBegin(GL_LINE_STRIP); //открываем операторные скобки и определяем тип примитива glColor3d(0,1,0); //определяем цвет вершины отрезка glVertex2f(0.35,0.2); // буква M // Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(0.35,0.3); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.35,0.30); // Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(0.375,0.25); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.375,0.25); // Определяем координаты вершины glColor3d(1,0,1); //определяем цвет вершины отрезка glVertex2f(0.40,0.30); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.40,0.30); // буква M // Определяем координаты вершины glColor3d(0,0,1); //определяем цвет вершины отрезка glVertex2f(0.40,0.20); // Определяем координаты вершины glEnd(); //закрываем операторные скобки } glPopMatrix(); //выталкивает из стека матрицу, помещенную туда ранее /////////////////3 glPushMatrix(); //помещает в стек копию текущей матрицы glTranslatef(0.11,-0.7, -0.50); //смещение матрицы на указанные координаты { glLineWidth(5); //определяем ширину линии glBegin(GL_LINES); //открываем операторные скобки и определяем тип примитива glColor3d(1,1,1); //определяем цвет вершины отрезка glVertex2f(0.15,0.2); // Определяем координаты вершины glColor3d(0,0,1); //определяем цвет вершины отрезка glVertex2f(0.2,0.3); // Определяем координаты вершины glColor3d(0,0,1); //определяем цвет вершины отрезка glVertex2f(0.15,0.3); // Определяем координаты вершины glColor3d(1,1,1); //определяем цвет вершины отрезка glVertex2f(0.2,0.2); // Определяем координаты вершины glEnd(); //закрываем операторные скобки glBegin(GL_LINE_STRIP); //открываем операторные скобки и определяем тип примитива glColor3d(1,1,1); //определяем цвет вершины отрезка glVertex2f(0.25,0.3); // буква И // Определяем координаты вершины glColor3d(1,0,1); //определяем цвет вершины отрезка glVertex2f(0.25,0.2); // Определяем координаты вершины glColor3d(1,1,1); //определяем цвет вершины отрезка glVertex2f(0.25,0.2); // Определяем координаты вершины glColor3d(1,0,1); //определяем цвет вершины отрезка glVertex2f(0.30,0.3); // Определяем координаты вершины glColor3d(1,1,1); //определяем цвет вершины отрезка glVertex2f(0.3,0.3); // Определяем координаты вершины glColor3d(1,0,1); //определяем цвет вершины отрезка glVertex2f(0.3,0.2); // Определяем координаты вершины glEnd(); //закрываем операторные скобки glBegin(GL_LINE_STRIP); //открываем операторные скобки и определяем тип примитива glColor3d(0,1,0); //определяем цвет вершины отрезка glVertex2f(0.35,0.2); // буква M // Определяем координаты вершины glColor3d(1,1,1); //определяем цвет вершины отрезка glVertex2f(0.35,0.3); // Определяем координаты вершины glColor3d(1,1,1); //определяем цвет вершины отрезка glVertex2f(0.35,0.30); // Определяем координаты вершины glColor3d(0,1,0); //определяем цвет вершины отрезка glVertex2f(0.375,0.25); // Определяем координаты вершины glColor3d(1,1,1); //определяем цвет вершины отрезка glVertex2f(0.375,0.25); // Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(0.40,0.30); // Определяем координаты вершины glColor3d(1,1,1); //определяем цвет вершины отрезка glVertex2f(0.40,0.30); // буква M // Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(0.40,0.20); // Определяем координаты вершины glEnd(); //закрываем операторные скобки } glPopMatrix(); //выталкивает из стека матрицу, помещенную туда ранее /////////////////фигура № 4 glPushMatrix(); //помещает в стек копию текущей матрицы glTranslatef(-0.40,0.5, 0.80); //смещаем матрицу glRotatef(120.0f,0.0f,0.0f,1.0f); //поворот всей матрицы на 120 градусов по оси Z { glLineWidth(7);// определяем толщину линий glBegin(GL_LINES); //открываем операторные скобки и определяем тип примитива glColor3d(1,0,1); //определяем цвет вершины отрезка glVertex2f(0.15,0.2); // Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(0.2,0.3); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.15,0.3); // Определяем координаты вершины glColor3d(1,1,1); //определяем цвет вершины отрезка glVertex2f(0.2,0.2); // Определяем координаты вершины glEnd(); //закрываем операторные скобки - буква Х glBegin(GL_LINE_STRIP); //открываем операторные скобки и определяем тип примитива glColor3d(1,1,0); //определяем цвет вершины отрезка glVertex2f(0.25,0.3); // буква И // Определяем координаты вершины glColor3d(0,0,1); //определяем цвет вершины отрезка glVertex2f(0.25,0.2); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.25,0.2); // Определяем координаты вершины glColor3d(0,0,1); //определяем цвет вершины отрезка glVertex2f(0.30,0.3); // Определяем координаты вершины glColor3d(1,0,1); //определяем цвет вершины отрезка glVertex2f(0.3,0.3); // Определяем координаты вершины glColor3d(0,1,0); //определяем цвет вершины отрезка glVertex2f(0.3,0.2); // Определяем координаты вершины glEnd(); //закрываем операторные скобки glBegin(GL_LINE_STRIP); //открываем операторные скобки и определяем тип примитива glColor3d(0,1,0); //определяем цвет вершины отрезка glVertex2f(0.35,0.2); // буква M // Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(0.35,0.3); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.35,0.30); // Определяем координаты вершины glColor3d(0,1,1); //определяем цвет вершины отрезка glVertex2f(0.375,0.25); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.375,0.25); // Определяем координаты вершины glColor3d(1,0,1); //определяем цвет вершины отрезка glVertex2f(0.40,0.30); // Определяем координаты вершины glColor3d(1,0,0); //определяем цвет вершины отрезка glVertex2f(0.40,0.30); // буква M // Определяем координаты вершины glColor3d(0,0,1); //определяем цвет вершины отрезка glVertex2f(0.40,0.20); // Определяем координаты вершины glEnd(); // закрываем операторную скобку } glPopMatrix(); //выталкивает из стека матрицу, помещенную туда ранее glFlush(); // ускоряет исполнение команд OpenGL getch(); //Приостанавливаем работу программы до нажатия любой клавиши SDL_Quit();// Освобождение ресурсов и выход из SDL return 0; //возврат в главную функцию main } // закрываем операторную скобку Отчет завершен. |