Программа рисования многоугольника. Описание алгоритмов процедур и функций. Описание интерфейсной части программы

Страницы работы

Содержание работы

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

“Московский государственный университет приборостроения и информатики”

Филиал    Сергиев Посад      специальность  230101

Кафедра   ИТ4  “Персональные компьютеры и сети”

Дисциплина        компьютерная графика

Пояснительная записка

к курсовому проекту на тему:

   “программа рисования многоугольника”

 Студент                                                                                  

Группа                    ИТ4-2006-01Д                шифр             06022

Проект защищён на оценку             

Руководитель проекта(работы)                                          

Члены комиссии

 


Сергиев Посад 2009
Cодержание:

Постановка задачи. 3

Описание алгоритмов процедур и функций. 4

Описание интерфейсной части программы. 6

Листинг программы. 9


Постановка задачи.

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


 Описание алгоритмов процедур и функций.

Procedure Draw_Pixel(x, y: integer; R, G, B: byte);

Эта процедура рисует точку на форме.

Procedure Draw_Line(x1, y1, x2, y2: integer);

Эта процедура рисует одну линию путем передачи координат точки   процедуре draw_pixel. Таким образом линия состоит из множествава точек расположенных друг рядом с другом.

Procedure Draw_TriangleZakr(x1, y1, x2, y2, x3, y3: integer);

Эта процедура закрашивает треугольники, из которых состоит многоугольник. Треугольник закрашивается линиями.

Procedure Draw_Texture(x1,y1,x2,y2: integer);

Эта процедура накладывает рисует текстуру.

Procedure Draw_Mnogougolnik(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6: integer);

Эта процедура рисует многоугольник на форме. Для рисования необходимо отсортировать вершины в нужном порядке и передать координаты отсортированных вершин процедуре draw_line.

Изначально определяется середина фигуры относительно оси Y. После этого точки делятся на те, которые лежат ниже середины по оси Y и на те, которые лежат на ней и выше неё.

Эти точки записываются в два массива.

Далее происходит их сортировка по оси X. Вершины, которые лежат в массиве нижних вершин сортируются по убыванию, вершины из массива верхних вершин – по возрастанию.

После этого из этих массивов вершины переписываются в третий массив, в котором они находятся в упорядоченном и отсортированном виде.

Рrocedure Draw_MnogougolnikZakr(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6: integer);

Закраска фигуры производится путем закрашивания треугольников, координаты которых передаются в процедуру draw_trianglezakr. Координаты треугольников выбираются из шести вариантов, в зависимости от номера центральной вершины, из которой они рисуются.

Вариант  выбирается путем сравнения вершин из упорядоченного массива(в этот массив вершины записываются также как в предыдущей процедуре) с центром фигуры. Для этого находится центр фигуры по оси Х и по оси Y. Определяется степень удаление каждой вершины от этого центра.

Выбирается тот вариант, в котором центральная вершина – это одна из наиболее приближенных вершин к центру фигуры.

Procedure Draw_luchi(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6: integer);

Эта процедура рисует лучи, которые идут от одной из вершин наиболее приближенных к центру фигуры к остальным вершинам.

Выбор центральной вершины осуществляется путем сравнения координат вершин с координатами центра фигуры.

Далее координаты передаются в процедуру draw_line.

procedure Draw_MnogougolnikText(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6: integer);

Эта процедура передает координаты треугольников, из которых состоит многоугольник, для наложения текстуры процедуре put_texture.

Выбор варианта с координатами треугольников происходит аналогично выбору варианта в процедуре Draw_MnogougolnikZakr.

procedure Put_Texture(x1: Integer; y1: Integer; x2: Integer; y2: Integer; x3: Integer; y3: Integer);

Эта процедура передает координаты и текстуру для рисования процедуре draw_texture.

Описание интерфейсной части программы.

Для работы программы необходимо ввести координаты, либо выбрать один из готовых вариантов.

При нажатии на кнопку «рисование» будет нарисован шестиугольник.

Надпись:

При нажатии на кнопку «лучи» будут нарисованы лучи.

Надпись:

При нажатии на кнопку «закрасить» многоугольник закрасится.

Надпись:

Надпись:  При нажатии на кнопку «текстура» на многоугольник будет наложена заданная текстура.

Листинг программы.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

Risovanie: TButton;

Variant_1: TButton;

Zakraska: TButton;

Ochistka: TButton;

Variant_2: TButton;

Variant_3: TButton;

Luchi: TButton;

Variant_5: TButton;

Variant_4: TButton;

Tekstura: TButton;

procedure RisovanieClick(Sender: TObject);

procedure Variant_1Click(Sender: TObject);

procedure ZakraskaClick(Sender: TObject);

procedure OchistkaClick(Sender: TObject);

procedure Variant_2Click(Sender: TObject);

Похожие материалы

Информация о работе