Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Топ:
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Интересное:
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2017-12-13 | 232 |
5.00
из
|
Заказать работу |
|
|
Будем понимать под заливкой заполнение некоторым узором (цветом или штриховкой различного вида) области изображения, ограниченной контуром (непрерывной замкнутой линией).
Пусть на экране монитора получено изображение некоторого замкнутого контура с использованием цвета С (С – цвет контура области) и задана некоторая точка экрана (X, Y). Если данная точка принадлежит области, ограниченной контуром, то эта область может быть заполнена текущем цветом с помощью процедуры
FloodFill (X,Y,C);
Если точка находится вне области, происходит заполнение внешней к контуру области.
Для выбора стиля (шаблона и цвета) заполнения области используется процедура
SetFillStyle (шаблон, цвет заполнения);
Значения шаблона задаются равными:
0 (сплошной цвет фона),
1 (сплошной текущий цвет),
2-6 (штриховка различной толщины наклона),
7-9 (заполнение клеткой различной толщины и наклона),
10-11 (заполнение точками, густо или редко расположенными).
При использовании процедуры SetFillStyle цвет заполнения может быть не равен цвету контура.
В языке Паскаль существуют специальные средства для заполнения эллипса, секторов круга и эллипса, параллелепипеда.
Объект | Изображение | Запись на языке Паскаль | |||
Эллипс, закрашенный текущим узором и цветом заполнения | FillEllipse (X, Y, RX, RY); где (X,Y) – координаты центра эллипса, RX, RY – длины горизонтальной и вертикальной полуосей | ||||
Сектор круга, заполненный текущим узором | PieSlice (X, Y, ά1, ά2, R); где (X,Y) – координаты центра, ά1, ά2 - начальный и конечный углы сектора, R – его радиус | ||||
Сектор эллипса, закрашенный цветом по текущему шаблону | Sector (X, Y, ά1, ά2, RX, RY); где (X,Y) – координаты центра эллипса, RX, RY – длины горизонтальной и вертикальной полуосей, ά1, ά2 - начальный и конечный углы сектора | ||||
Параллелепипед, передняя грань которого может быть закрашена по текущему шаблону |
| Bar3D (X1, Y1, X2, Y2, D, Top); где (X1, Y1), (X2, Y2) – координаты диагональных точек передней грани (прямоугольника)б В – ширина боковой грани, Тор – признак отображения верхней грани (TRUE – отображать, FALSE – не отображать) |
2. Контрольные вопросы.
Что представляет собой графическое изображение
Что называется разрешающей способностью (разрешением) графического экрана.
Что представляет собой графический адаптер
Что представляет собой графический драйвер.
Действия, которые необходимо выполнить для работы в графическом режиме
Задания и технология выполнения.
3.1. Составить программу получения на экране монитора изображения прямоугольного треугольника и точки желтого цвета на зеленом фоне.
Program Tr1;
Uses Graph;
Var a,b: Integer;
Begin
a:=Detect;
InitGraph (a,b,'');
SetBkColor (2);
SetColor (14);
Line (240, 70, 240, 270);
Line (240, 270, 400, 270);
Line (240, 70, 400, 270);
PutPixel (400, 70, 14);
Readln; CloseGraph;
End.
3.2. Составить программу получения на экране монитора изображения снежной бабы (белого цвета на синем фоне).
Program BABA;
Uses Graph;
Var a,b:Integer;
Begin
a:=Detect; InitGraph (a,b,'');
SetBkColor (1);
SetColor (15);
Circle (320, 60, 30);
Circle (320, 140, 50)
Circle (320, 260, 70);
Readln; CloseGraph;
End.
3.3. Составить программу получения на экране монитора изображения головы робота.
Program ROBOT;
Uses Graph;
Var a,b:Integer;
Begin
a:=Detect; InitGraph (a,b,'');
SetBkColor (1);
SetColor (15); {голова}
Rectangle (270,180,370,300); {уши}
Rectangle (240, 220, 270, 260);
Rectangle (370, 220, 400, 260);
Readln; CloseGraph;
End.
3.4.Составить программу получения изображения прямоугольной трапеции.
Первый вариант решения примера 3.4
Program TRAPECIA_1;
Uses Graph;
Var a,b:Integer;
Begin
a:=Detect; InitGraph (a,b,’’);
MoveTo (240, 60);
LineTo (240, 200); {вниз}
LineTo (450, 200); {вправо}
LineTo (350, 60); {влево вверх}
LineTo (240, 60); {влево}
Readln; CloseGraph;
End.
Второй вариант решения примера 3.4 (с использованием процедуры LineRel):
Program TRAPECIA_2;
Uses Graph; Var a,b:Integer;
Begin
a:=Detect; InitGraph (a,b,’’);
MoveTo (240, 60); LineRel (0, 140);
LineRel (210, 0); LineRel (-100, -140); LineRel (-110, 0);
|
Readln; CloseGraph;
End.
3.5. Составить программу получения изображения эллипса с центром в точке (320, 240) и длинами полуосей 190 и 80
Program ELIPS;
Uses Graph;
Var a,b:Integer:
Begin
a:=Detect;
InitGraph (a,b,’’);
Ellipse (320, 240, 0, 360, 190, 80);
Readln;
CloseGraph;
End.
3.6. Написать программу заполнения прямоугольного треугольника белым цветом (с контуром желтого цвета на зеленом фоне).
Program Triangle_1;
Uses Graph;
Var a,b:Integer;
Begin
a:=Detect; InitGraph (a,b,’’);
SetBkColor (2); SetColor (14);
Line (240, 70, 240, 270);
Line (240, 270, 400, 270);
Line (240, 70, 400, 270);
FloodFill (320, 200, 14);
Readln; CloseGraph;
End.
3.7. Написать программу заполнения прямоугольного треугольника красным цветом (с контуром желтого цвета на зеленом фоне).
Скорректируем программу Triangle_1:
…
{корректировка программы Triangle_1}
Line (240, 70, 400, 270,);
SetFillStyle (1, 4);
{сплошной красный цвет заливки}
FloodFill (320, 260, 14);
…
3.8. Написать программу заполнения прямоугольной трапеции штриховкой светло-серого цвета нормальной толщины.
Program TRAPECIA_3;
Uses Graph;
Var a,b:Integer;
Begin
a:= Detect;
InitGraph (a,b,’’);
SetColor (1); {синий контур}
MoveTo (240, 60);
LineTo (240, 200);
LineTo (450, 200);
LineTo (350, 60);
LineTo (240, 60);
SetFillStyle (3, 7);
FloodFill (350, 175, 1);
Readln;
CloseGraph;
End.
3.9 Напишите программу заполнения окружности желтым цветом, которая после нажатия на клавишу Enter изменяет цвет заливки на зеленый.
Program CIRC;
Uses Graph;
Var a,b:Integer;
Begin
a:=Detect;
InitGraph (a,b,’’);
SetColor (14); {желтый контур}
Circle (320, 175, 100);
SetFillStyle (1, 14);
FloodFill (320, 175,14);
Readln;
ClearDevice;
SetColor (14);
Circle (320, 175, 50);
SetFillStyle (1, 2);
FloodFill (320, 175, 14);
Readln; CloseGraph;
End.
3.10. Написать программу получения изображения горизонтального отрезка с началом в точке (0,240).
Будем рассматривать отрезок как совокупность точек и использовать для получения его изображения процедуру PutPixel. Поместим ее в тело цикла с параметром For. Таким образом, получим изображение 640 точек с координатами (β, 240) при β=0,1,2,3,…,639; в результате соединения пиксели сольются в горизонтальный отрезок.
Program PUT_LANE;
Uses Graph;
Var a,b,k: Integer;
Begin
a:= Detect; InitGraph (a, b, ' ');
{горизонтальная прямая}
For k:=0 To 639 do
PutPixel (k, 240,14);
{14 – желтый цвет}
Readin; CloseGraph;
End.
4. Контрольные задания.
4.1. Составить программу получения изображения «левой» полуокружности с центром в точке (250, 200) и радиусом 100.
4.2. Написать программу получения изображения семи параллельных отрезков равной длины. Концы отрезков: (100, у), (500,у), где у=50, 90, …, 290, значение у измеряется с шагом 40.(Использовать оператор While)
|
4.3. Написать программу получения изображения семи параллельных отрезков равной длины. Концы отрезков: (100, у), (500,у), где у=50, 90, …, 290, значение у измеряется с шагом 40.(Использовать оператор For)
4.4. Написать программу закраски прямоугольника различными цветами׃ смена цвета должна осуществляться после нажатия клавиши Enter.
Примечание: Пример основан на выполнении многократных действий ׃ получение изображения прямоугольника, заполненного некоторым цветом.
Пусть i - номер цвета заполнения; i = 0, 1, 2, …, 15. Таким образом, уместно использование цикла For. В цикле следует задать стиль заполнения области (1 – сплошной текущий цвет) и изобразить закрашенный прямоугольник, например, с диагональными точками (220, 200), (450, 300).
4.5. Написать программу, которая по желанию пользователя выведет на экран изображение треугольника или прямоугольника.
Примечание: Пусть Р – переменная, по значению которой пользователь будет принимать решение о выводе требуемого изображения: треугольника (при Р = 1) или прямоугольника (при Р ¹ 1).
Будем получать изображение треугольника с вершинами в точках (240, 70), (400, 370), (180, 300) и изображение прямоугольника с вершинами в диагональных точках (240, 70) и (480, 300).
5. Рекомендуемая литература.
5.1.Бородич Ю.С. и др. Паскаль для персональных компьютеров. – Мн.: Высш.шк.: БФ ГИТМП «НИКА», 1991.- с.39-43
Практическое занятие № 6
Тема: Основы алгоритмизации и программирования.
Тема занятия: Процедуры и функции пользователя.
Цель: Получение практических навыков использования процедур и функций пользователя.
Техническое обеспечение: ПЭВМ
Программное обеспечение: Паскаль.
Место проведения занятий: Лаборатория ПЭВМ
Продолжительность занятия: 2 часа.
1. Краткая справка
Процедура - это независимая поименованная часть программы, которую можно вызвать по имени для выполнения определенных действий.
Структура процедуры повторяет структуру программы.
Функция – это поименованная часть программы, которую можно вызвать по имени, при этом в точку вызова передается скалярное значение и функция может входить в выражение как операнд.
|
Все процедуры и функции подразделяются на две группы:
· Встроенные.
· Определенные пользователем.
Первые входят в состав языка и вызываются для выполнения по строго фиксированному имени (например, SIN(X), SQR(X) – функции; CHRSQR – процедура).
Вторые разрабатываются и именуются самим пользователем.
Процедура пользователя – представляет собой именованную группу операторов, реализующих определенную часть общей задачи и вызываемую при необходимости для выполнения по имени из любой позиции раздела операторов.
Описание процедуры включает:
· Заголовок (имя).
· Тело процедуры.
Заголовок состоит из зарезервированного слова PROCEDURE, идентификатора (имени) процедуры и необязательного заключенного в круглые скобки списка формальных параметров с указанием типа каждого параметра.
Имя процедуры – идентификатор, уникальный в пределах программы.
Тело процедуры представляет собой локальный блок, по структуре аналогичный программе.
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!