Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Установка стиля и цвета закраски. Закрашивание фигур.

После того как Вы нарисовали картинку, у Вас, верно, возникло желание ее раскрасить. Для этого есть различные способы. Познакомимся с одним из них - “заливкой” замкнутых площадей различными видами заполнения. Для этого существуют две процедуры SetFillStyle и FloodFill.

SetFillStyle (Pattern, Color), где переменные Pattern, Color типа Word - определяет стиль заполнения и цвет заполнения.

Значения Pattern можно взять из следующей таблицы:

Стандартные стили заполнения
Константа Код Маска-заполнение
EmptyFill   цветом фона
SolidFill   текущим цветом
LineFill   символами - -, цвет - Color
LtSlashFill   символами //норм. толщины, цвет - Color
SlashFill   символами //удвоенной толщины, цвет - Color
BkSlashFill   символами удвоенной толщины, цвет - Color
LtBkSlashFill   символами норм. толщины, цвет - Color
HatchFill   вертикально-горизонтальная штриховка тонкими линиями, цвет - Color
XhatchFill   штриховка крест-накрест по диагонали “редкими” тонкими линиями, цвет - Color
InterLeaveFill   штриховка крест-накрест по диагонали “частыми” тонкими линиями, цвет - Color
WideDotFill   “редкие” точки
CloseDotFill   “частые” точки

 

Например, если употребили процедуру SetFillStyle (WideDotFill, Red) или SetFillStyle (10, 4), то выбрали стиль закраски “редкими” точками красного цвета.

Теперь же, когда компьютеру указано ЧЕМ будут закрашивать (стиль и цвет), можно указать, ЧТО будут закрашивать. Для этого существует процедура

FloodFill (X, Y, ColorBorder),где X, Y переменные типа integer, а Border - переменная типа word -процедура, которая позволяет заполнить замкнутую область выбранным стилем и цветом закраски. Необходимо только выполнить несколько требований:

· первые два параметра (X, Y) являются координатами так называемой “затравочной” точки, т. е. точки, лежащей обязательно внутри закрашиваемой области;

· ColorBorder - параметр, обозначающий цвет, которым нарисована закрашиваемая фигура (так называемый цвет “бордюрчика”);

· фигура должна быть начерчена одним цветом;

· фигура должна быть замкнута.

Например, пусть следующая фигура начерчена синим цветом

Чтобы закрасить ее выбранным стилем и цветом (“редкие” точки красного цвета, см. выше) нужно дать команду FloodFill(180, 200, 1).

Нужно представить, как компьютер закрашивает фигуру. Первое, что он делает - это находит точку, от которой он начинает заливку и заливает точку за точкой до тех пор, пока не встретит заданный цвет. Таким образом, если фигура замкнутая, то, разливаясь во все стороны, он натыкается на “бордюрчик” и фигура становится закрашенной. Но, если в контуре фигуры есть хотя бы один пиксель, закрашенный другим цветом, замкнутость фигуры нарушается и краска выливается через эту дырочку и заливает не ту область, а иногда и весь экран.

SetBkColor(Color), где переменная Color типа Word - процедура, устанавливающая цвет фона.

Примечание. После замены цвета фона на любой, отличный от черного, Вы не сможете более использовать цвет 0 как черный, он будет заменяться на цвет фона, т.к. процедуры модуля Graph интерпретируют цвет с номером 0 как цвет фона.

ClеarDeviсe - процедура, которая очищает экран и устанавливает курсор в позицию (0,0).

GraphDefaults - cбрасывает заданные пользователем параметры графического режима и устанавливает исходные (определяемые по умолчанию при запуске процедуры InitGraph).

 

Практическая часть

Задание 1

1. Наберите шаблон для программы, работающей в графическом режиме.

2. Наберите в теле программы следующие процедуры PutPixel(300, 150, Red), PutPixel(45, 420, 9) и просмотрите их действие.

3. Придумайте самостоятельно примеры с использованием всех процедур вычерчивания линий.

4. Исправьте свою программу так, чтобы процедуры рисовали линии различных цветов.

a. В начерченной ранее системе координат изобразите на чертеже точки: А(150,450), В(100,350), С(350,350), D(300,450), E(200,350), F(200,50), L(250,40), K(200,20), M(300,250), X(175,400), Y(225,400), Z(275,400).

b. Соедините точки, получая отрезки: AB, BC, CD, AD, EK, KL, LF, FM, ME. Какая фигура у Вас получилась?

c. Напишите программу, рисующую эту фигуру, по вашему рисунку.

5. Пользуясь процедурами построения дуги, окружности, прямоугольника, эллипса, дорисуйте кораблик (например, иллюминаторы, якорь и др.), а также придумайте и нарисуйте предметы вокруг него, чтобы получилась картинка. Покажите результат работы в конце занятия учителю для оценки.

6. Раскрасьте кораблик, используя различные стили и цвета.

 

Задание 2

1. Написать программу, которая вычерчивает на экране домик.

2. Написать программу, которая выводит на экран флаг Олимпийских игр. Изображение флага приведено ниже (одной клетке соответствует пять пикселов).

3. Написать программу, которая вычерчивает на экране кораблик.

4. Написать программу, которая вычерчивает на экране ракету.

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

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

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

8. Написать программу, которая выводит на экран контур пятиконечной звезды.

9. Написать программу, которая выводит на экран пятиконечную звезду.

10. Написать программу, которая вычерчивает на экране шестиугольник.

11. Написать программу, которая рисует на экране Государственный флаг России.

12. Написать программу, которая рисует на экране веселую рожицу желтого цвета.

13. Написать программу, которая рисует на экране грустную рожицу.

 

Задание 3

1. Написать программу, которая выводит на экран узор, изображенный ниже.

2. Написать программу, которая выводит на экран изображенный ниже узор. Окружности должны быть разного цвета (см. таблицу кодировки цветов).

3. Написать программу, которая выводит изображенный ниже узор.

4. Написать программу, которая выводит изображенный ниже узор.

5. Написать программу, которая выводит на экран изображение шахматной доски.

6. Написать программу, которая рисует на экране флажок красного цвета.

7. Написать программу, которая рисует на экране паровоз (используйте метод базовой точки).

8. Написать программу, которая рисует на экране автомобиль.

9. Написать программу, которая выводит на экран оцифрованную координатную сетку.

10. Написать программу, которая выводит на экран точечный график функции у = 0,5х2 + 4х — 3. Диапазон изменения аргумента — от —15 до 5, шаг аргумента — 0,1. График вывести на фоне координатных осей, точка пересечения которых должна находиться в центре экрана.

11. Написать процедуру, которая рисует на экране кораблик. В качестве параметров процедура должна получать координаты базовой точки и цвет, которым следует рисовать. Используя эту процедуру, напишите программу, которая выводит на экран движущийся кораблик.

12. Написать программу, которая рисует окружность, движущуюся по экрану.

13. Написать программу, которая выводит на экран гистограмму успеваемости учеников класса, например, по итогам контрольной работы. Исходные данные следует ввести в алфавитно-цифровом режиме работы. Рекомендуемый вид экрана во время работы программы приведен ниже. На первом рисунке экран показан во время ввода исходных данных, на втором приведен вид диаграммы на экране.

Обработка результатов контрольной работы.

Введите исходные данные:

пятерок —> 10

четверок —> 15

троек -> 7

двоек -> 1

Результаты контрольной работы

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...