МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЗІ
Звіт до лабораторної роботи № 2
Примітиви OPENGL, основні прийоми побудови двовимірних об'єктів.
З дисципліни
“Програмування комп’ютерної графіки”
Виконав ст. гр. УІ - 31
Перевірив:
Львів – 2011
Порядок виконання роботи
Мета роботи.
Знайомство з примітивами OPENGL, призначеними для виведення крапок, ліній і багатокутників. Визначення кольору об'єктів. Різні способи замальовування об'єктів.
Завдання.
( Варіант 3,рис. 2 )
Використовуючи примітиви бібліотек намалювати фігуру, намальовану на
рис.1.
Для створення даного малюнку використаємо примітив для виведення ламаної лінії.
Текст програми
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Tao.OpenGl;
using Tao.FreeGlut;
using Tao.Platform.Windows;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
AnT.InitializeContexts();
}
private void Form1_Load(object sender, EventArgs e)
{
Glut.glutInit();
Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);
Gl.glClearColor(255, 255, 255, 1);
Gl.glViewport(0, 0, AnT.Width, AnT.Height);
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glLoadIdentity();
if ((float)AnT.Width <= (float)AnT.Height)
{
Glu.gluOrtho2D(0.0, 25.0 * (float)AnT.Height / (float)AnT.Width, 0.0, 25.0);
}
else
{
Glu.gluOrtho2D(0.0, 20.0 * (float)AnT.Width / (float)AnT.Height, 0.0, 20.0);
}
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glLoadIdentity();
}
private void button1_Click(object sender, EventArgs e)
{
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
Gl.glLoadIdentity();
Gl.glColor3f(255, 0, 255);
Gl.glBegin(Gl.GL_LINE_STRIP);
Gl.glEnd();
Gl.glFlush();
AnT.Invalidate();
Gl.glBegin(Gl.GL_LINE_STRIP);
Gl.glEnd();
Gl.glEnable(Gl.GL_LINE_SMOOTH);
Gl.glBegin(Gl.GL_LINE_STRIP);
Gl.glVertex2d(6, 12);
Gl.glVertex2d(10, 19);
Gl.glVertex2d(11, 2);
Gl.glVertex2d(11, 14);
Gl.glVertex2d(16, 14);
Gl.glVertex2d(16, 19);
Gl.glVertex2d(24, 5);
Gl.glEnd();
Gl.glDisable(Gl.GL_LINE_SMOOTH);
}
private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void button2_Click(object sender, EventArgs e)
{
}
}
}
Результат виконання програми
Натиснувши на кнопку “Візуалізувати” побудується малюнок.
Натиснувши на кнопку “Очистити” побудується малюнок зітреться.
Натиснувши на кнопку “Вихід” Виконання програми завершиться.
Висновок
На даній лабораторні роботі я ознайомився з примітивами OPENGL, призна-ченими для виведення крапок, ліній і багатокутників.