Задания для самостоятельного выполнения

Разработать специализированный графический редактор

Задание № 1

Основной инструмент рисования - распылитель.

Создать панель инструментов, добавить на нее компоненты, позволяющие:

  • менять размер распылителя (не менее 4-х вариантов);
  • выбирать цвет распыления через ColorBox;
  • очищать весь рисунок.

 

Задание № 2

Инструменты рисования – овал и прямоугольник.

Создать панель инструментов, добавить на нее компоненты, позволяющие:

  • выбирать тип фигуры (овал, окружность, квадрат, прямоугольник);
  • менять толщину контура фигуры;
  • выбирать цвет контура через ColorBox;
  • выбирать цвет заливки через ColorBox;
  • выбирать стиль заполнения через ComboBox.
  • удалять часть изображения (ластик).

 

Задание №3

Инструменты рисования – отрезок и ломанная.

Создать панель инструментов, добавить на нее компоненты, позволяющие:

  • выбирать режим рисования (ломанная, отрезок);
  • менять толщину линии;

· выбирать стиль линии через ComboBox;

· выбирать цвет линии через ColorBox;

· очищать весь рисунок.

 

Задание № 4

Инструменты рисования- многоугольники.

Создать панель инструментов, добавить на нее компоненты, позволяющие:

  • выбирать тип многоугольника (треугольник, четырехугольник, пятиугольник);
  • менять толщину линии;
  • выбирать стиль линии через ComboBox;
  • выбирать цвет линии через ColorBox;

Последовательность работы с приложением должна быть следующей:

  • пользователь выбирает типа n-угольника и остальные параметры рисования,
  • пользователь n-раз щелкает мышкой в области рисования (определяет координаты вершин угольника);
  • прорисовка фигуры.

 

Задание №5

Модернизировать приложение «Движение кораблика». Создать панель инструментов с компонентами, которые позволяют:

  • менять масштаб кораблика;
  • цвет линии кораблика;
  • скорость движения;
  • координаты базовой точки кораблика.

 

Контрольные вопросы

 

1. Какие компоненты позволяют выводить графику?

2. Назначение объекта Canvas?

3. В чем разница между карандашом и кистью?

4. Как создать анимацию, используя графические примитивы?

5. В чем суть метода базовой точки?

6. Как вывести текст на форму?


 


ПРАКТИЧЕСКАЯ РАБОТА № 9 а

 

Тема Рекурсивные графические построения

Цель работы: Получить навыки использования рекурсии.

Пояснения к работе

Рекурсивным называется объект, частично состоящий или определяемый с помощью самого себя. Рекурсия встречается не только в математике, но и в повседневной жизни.

 

 

В жизни Вам не раз приходилось сталкиваться с рекурсией. Вспомните хотя бы стихотворение "У попа была собака" или “10 негритят пошли купаться в море…”

Или то, как, сидя в поезде, вы ловили свое отражение в зеркале, которое отражалось в зеркале напротив, которое отражалось в зеркале напротив…

Слово «рекурсия» происходит от латинского слова «recursio» - возвращение.

Определение: Если подпрограмма обращается сама к себе как к подпрограмме непосредственно или через цепочку подпрограмм, то это называется рекурсией.  А такие подпрограммы называются рекурсивными.

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

Разработать приложение для рекурсивного построения изображения, представленного на рис.

 


Порядок выполнения

21. Создать новый проект.

22. Объявить глобальные переменные

k,gd,gm,mx,my:integer; ch:char;

23. Создать следующие процедуры

procedure TForm1.FormCreate(Sender: TObject);

begin

  k:=15;// минимальный размер окружности

end;

 

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

krug(X, Y, Y div 2);

end;

 

procedure tform1.krug(x,y,r:integer);

Begin

if r>k then

begin

       krug(x+r,y,r div 2);

       krug(x,y+r,r div 2);

       krug(x-r,y,r div 2);

       krug(x,y-r,r div 2);

end;

form1.Canvas.Ellipse (x-r,y-r,x+r,y+r);

end;

24. Проверить работу программы.

25. Изменить процедуры tform1.krug и FormMouseDown, проверить работу программы

if r>k then

begin

form1.Canvas.Pen.Color:=RGB(Random(255),Random(255),Random(255));

       krug(x+r +(r div 2), y,r div 2);

       krug(x,y+r+(r div 2),r div 2);

       krug(x-r -(r div 2), y,r div 2);

          krug(x,y-r-(r div 2),r div 2);

end;

form1.Canvas.Ellipse (x-r,y-r,x+r,y+r);

end;

 

krug(X, Y, Y div 4)

 

26. Заменить рисование окружности на рисование прямоугольника и просмотреть результат.

27. Самым знаменитым примером площадного геометрического фрактала является треугольник Серпинского (см. рис.), строящийся путем разбиения треугольника, необязательно равностороннего – средними линиями на четыре подобных треугольника, исключением центрального и рекурсивного разбиения угловых треугольников до получения площадных элементов желаемого разрешения.

Добавить на форму командную кнопку и ввести для нее следующий код

tri(150,150,225,0,300,150,5);

Создать и объявить следующую процедуру

PROCEDURE tform1.TRI(x1,y1,x2,y2,x3,y3, N: integer);

Var x12,y12,x23,y23,x31,y31: integer;

Begin If N<>0 then

begin

  x12:=(x1+x2) div 2; y12:=(y1+y2) div 2;

  x23:=(x2+x3) div 2; y23:=(y2+y3) div 2;

  x31:=(x3+x1) div 2; y31:=(y3+y1) div 2;

form1.Canvas.MoveTo(x31,y31);

form1.Canvas.LineTo(x12,y12);

form1.Canvas.LineTo(x23,y23);

form1.Canvas.LineTo(x31,y31);

TRI(x1,y1,x12,y12,x31,y31, N-1);

TRI(x2,y2,x12,y12,x23,y23, N-1);

TRI(x3,y3,x31,y31,x23,y23, N-1)

end;

end;

28. Проверить работу программы.

Самостоятельно разработать программу, которая рисует множество Кантора.

Рисунок множество Кантора образован квадратами. Каждый следующий квадрат в четыре раза меньше предыдущего. Центр каждого следующего квадрата расположен в вершине предыдущего квадрата и т.д. Так как рисунок состоит из однотипных элементов, и есть явная зависимость, как размеров, так и положения, следовательно, при создании данного рисунка можно использовать в программе рекурсию.




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: