Писание основных процедур и функций

Алгоритмы

Все элементы рисуем при помощи одной процедуры и при использовании case:

procedure TForm3.Button3Click(Sender: TObject);

1. Нарисовать точку, используя стиль линии

procedure PixelSize(X,Y : Integer);

x, y – координата точки – «пикселя», в зависимости от толщины линии, выводит объект «уголок» с заданной шириной.

procedure PixelStyle(X, Y: Integer);

x, y – координата точки – «пикселя», в зависимости от вида и толщины линии, выводит или не выводит объект «крест» с заданной шириной задействует процедуру PixelSize

2. Обычный ЦДА

Цифровой дифференциальный анализатор

С помощью ЦДА решается дифференциальное уравнение отрезка:

dY/dX= dy / dx

где

dx := xk - xn; приращение координат отрезка по оси Y

dy := yk - yn; приращение координат отрезка по оси X

Установим начальные значения:

xt := xn;

yt := yn;

где

(xn, yn) – координаты начальной точки,

(xk, yk) – координаты конечной точки, полученные в качестве параметров функции:

Case linetype of 1:

Определим количество узлов N, используемых для аппроксимации отрезка.

n := abs(dx) + abs(dy);

Затем за n циклов вычисляются координаты очередных узлов:

xt := xt + dx / n;

yt := yt + dy / n;

Получаемые значения xt, yt преобразуются в целочисленные значения координаты очередного пиксела округлением

PixelStyle(round(xt), round(yt));

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

3. Несимметричный ЦДА;

Case linetype of 2

(xn, yn) – координаты начальной точки,

(xk, yk) – координаты конечной точки

Процедура осуществляющая рисование отрезка по алгоритму несимметричного ЦДА.

4. Case linetype of 3:

procedure brezenhem(xn, yn, xk, yk: Integer);

(xn, yn) – координаты начальной точки,

(xk, yk) – координаты конечной точки

Процедура осуществляющая рисование отрезка по алгоритму Брезенхема.

5. Генерация окружности

Case Linetype of 4:

xn, yn – центр окружности, r – радиус.

Процедура осуществляющая рисование окружности по алгоритму Брезенхема.

Интерфейс

6. Очистка экрана

Procedure TForm3.Button1Click(Sender: TObject);

7. Изменение толщины линии

procedure TFormLab2.ComboBox1Change(Sender: TObject);

8. Изменение вида линии

procedure TFormLab2.ComboBox2Change(Sender: TObject);

9. Рисуем фигуру

procedure TForm3.Button3Click(Sender: TObject);

10. Установка начальной координаты

procedure TFormLab2.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton);

установка значений - xn, yn

11. Определение второй координаты, выбор процедуры обработки и нарисования отрезка

procedure TFormLab2.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton);

установка значений - xк, yк

уководство пользователя

Для запуска программы необходимо запустить файл MainProject.exe.

В открывшемся окне (рис.5.1.) необходимо выбрать программу, которую необходимо запустить. При выборе «Лабораторная работа 2» откроется окно (см. рис. 5.2)

писание основных процедур и функций - student2.ru

Рисунок 5.1. Интерфейс главного окна программы

писание основных процедур и функций - student2.ru

Рисунок 5.2. Окно лабораторной работы 2

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

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

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

Для рисования фигуры необходимо выбрать координаты рисования фигуры и нажать кнопку «Рис.фигуру».

Заключение

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

Наши рекомендации