Похожие презентации:
лобароторная_№4_Графика_PascalABC_NET_ (1)
1. PascalABC.NET Графика
Лабораторнаяработа№ 4
PASCALABC.NET
ГРАФИКА
Дисциплина:
«Основы алгоритмизации и программирования.»
Преподаватель: Шадрин Валерий Георгиевич
2.
Порядок выполнения лабораторной работы.1. Открыть рабочею папку Ваших работ на рабочем столе :
2. Скачать из папки преподавателя работу:
«лабораторная работа №__»
с методическим материалом, с заданием и примерами для
выполнения лабораторной работы.
Sol_Pascal
группа
Фамилия
3. Изучить методический материал и задание для
выполнения Практической работы и Лабораторной
работы
4. Выполнить вначале практическое задание, а затем задание
для лабораторной работы
Сохранить все результаты в созданной Вами папке :
Sol_Pascal
группа
Фамилия
5. Для закрепления материала:
Письменно ответить на все контрольные контрольные вопросы
2
3.
Теоретическаячасть
После запуска PascalABC, по умолчанию, запускается текстовый режим. Для
работы с графикой служит отдельное графическое окно. Чтобы его открыть,
необходимо подключить модуль GraphABC. В этом модуле содержится
обширный набор процедур и функций, предназначенных для работы с
графическим экраном, а также некоторые встроенные константы и переменные,
которые могут быть использованы в программах с графикой. С их помощью
можно создавать разнообразные графические изображения и сопровождать их
текстовыми надписями. Подключение осуществляется в разделе описаний.
Формат подключения модуля GraphABC:
uses GraphABC;
Начало координат графического окна модуля находится в верхнем левом углу.
Ось x направлена вправо, а ось y - вниз. Координаты исчисляются в пикселях.
Все команды библиотеки GraphABC являются подпрограммами и описаны в
виде процедур и функций. Для того, что бы команда выполнилась необходимо
указать команду и задать значения параметрам.
3
4.
Некоторые команды библиотекиGraphABC.
4
5.
Некоторые команды библиотеки GraphABC5
6.
Модуль GraphABC содержит константы и функции для работы с цветами. ТипColorType, описывающий цвет, определен следующим образом:
type ColorType=integer;
Стандартные цвета задаются символическими константами:
clBlack – черный clAqua – бирюзовый
clPurple – фиолетовый clOlive – оливковый
clWhite – белый clFuchsia – сиреневый
clMaroon – темно-красный clTeal – сине-зеленый
clRed – красный clGray – темно-серый
clNavy – темно-синий clLime – ярко-зеленый
clGreen – зеленый clMoneyGreen – цвет зеленых денег
clBrown – коричневый clLtGray – светло-серый
clBlue – синий clDkGray – темно-серый
clSkyBlue – голубой clMedGray – серый
clYellow – желтый clSilver – серебристый
clCream – кремовый
6
7.
Для работы с цветами используются следующие функцииfunction RGB(r,g,b: integer): ColorType;
Возвращает целое значение, являющееся кодом цвета, который
содержит красную, зеленую и синюю составляющие с интенсивностями
R,G и B соответственно (R,G и B – целые в диапазоне от 0 до 255,
причем,
0 соответствует минимальной интенсивности, 255 – максимальной).
function GetRed(color: ColorType): integer;
Выделяет красный цвет интенсивностью (целое число от 0 до 255);
function GetGreen(color: ColorType): integer;
Выделяет зеленый цвет интенсивностью (целое число от 0 до 255);
function GetBlue(color: ColorType): integer;
Выделяет синий цвет интенсивностью (целое число от 0 до 255).
7
8.
Действия с графическим окном8
9.
Операторы графическихпримитивов.
9
10.
Операторы графическихпримитивов
10
11.
Форматы цветов11
12.
Модуль GraphABCМодуль GraphABC содержит процедуры и функции для
рисования в
графическом окне. Они подразделяются на следующие группы:
- Графические примитивы
- Действия с цветом
- Действия с пером
- Действия с кистью
- Действия со шрифтом
- Действия с графическим окном
12
13.
Действия пером(стиль и цвет рисования)13
14.
Действия кистью (стиль и цвет рисования)14
15.
Для работы с графикой в pascal abcиспользуется
модуль GraphABC.
Система координат в Паскале соответствует
экранной системе координат и выглядит следующим
образом
uses
GraphABC;
begin
...
end.
15
16.
Управление размером экрана (окна)SetWindowWidth(w) — устанавливает ширину
графического окна
SetWindowHeight(h)
— устанавливает высоту
Очистка
графического окна
графического
окна графическое окно белым цветом.
ClearWindow;
- очищает
ClearWindow(color); - очищает графическое окно
указанным
цветом.
Пример программы очистки экрана:
program clear;
uses GraphABC;
begin
ClearWindow;
ClearWindow (clGreen);
end.
16
17.
Установка графическогоокна
Для установки размеров графического окна
используется
процедура SetWindowSize(ширина, высота), например:
SetWindowWidth(600);
SetWindowHeight(400)
;
17
18.
Цвета в ПаскальABC
18
19.
Графические примитивы1. Точка
2. Линия
3.Прямоугольник
4. Окружность
5. Эллипс
6. Сектор
7. Дуга
19
20.
ТочкаДля отображения точки в паскале используется
процедура:
SetPixel(x,y,color) — закрашивает один пиксел
с
координатами (x,y) цветом color точки в Паскале
Программа:
uses GraphABC;
begin
SetPixel(300,200,clred);
end.
20
21.
ЛинияLine(x1,y1,x2,y2) — рисует отрезок с началом в
точке (x1,y1) и
концом в точке (x2,y2)
Программа:
21
22.
Ломаныелинии
Процедуры MoveTo
(x1, y1) и LineTo (x2, y2).
Процедуры работают в паре: MoveTo передвигает курсор
в
определенную точку, а процедура LineTo рисует линию с
этой
точки до точки, определенной параметром данной
процедуры.
22
23.
Рисованиефигур
Rectangle(x1,y1,x2,y2)
— рисует прямоугольник,
заданный координатами противоположных вершин
(x1,y1) и
(x2,y2).
23
24.
Прямоугольник сзаливкой
24
25.
Заливкакистью
SetBrushColor(color) – устанавливает цвет кисти.
Заливка кистью распространяется на замкнутый контур, описание
которого
следует за процедурой установки цвета кисти.
Program zalivka_kist;
uses GraphABC;
Begin
SetBrushColor(clGreen);
Rectangle(50,50,300,300);
end.
25
26.
Цвет и толщинаконтура
Задаются процедурами: SetPenWidth(w) и
SetPenColor(color);
Program
pryamougolnik;
uses GraphABC;
begin
SetPenColor(clred);
SetPenWidth(20);
Rectangle(50,50,200,200
);
FloodFill(100,100,clBlue
);
end.
26
27.
Треугольник
Line(x1,y1,x2,y2);
LineTo(x,y);
27
28.
Окружность
Circle(x,y,r) — рисует окружность с центром в точке
(x,y) и
радиусом r.
28
29.
ДугаArc(x,y,r,a1,a2) окружности
— рисует дугу окружности с центром в точке
(x,y) и радиусом r, заключенной между двумя лучами,
образующими углы a1 и a2 с осью OX (a1 и a2 –
вещественные,
задаются в градусах и отсчитываются против часовой
стрелки).
29
30.
Эллипс
Ellipse(x1,y1,x2,y2) - рисует эллипс, заданный своим
описанным прямоугольником с координатами
противоположных вершин.
Program oval;
uses GraphABC;
begin
Ellipse(50,50,200,350);
FloodFill(50+100,50+100,clred);
Ellipse(250,150,550,300);
FloodFill(250+100,150+100,clBlue);
end.
30
31.
Пример 1 выполнениязадания.
Нарисовать домик:
31
32.
Пример 1 выполнениязадания.
Program Domik;
uses Graphabc; //подключение
модуля
begin
SetWindowWidth(800); //ширина
окна
SetWindowHeight(600); //высота
окна
SetPenWidth(3); //толщина пера
SetFontSize(18); //размер шрифта
SetFontColor(clRed); //цвет шрифта
SetFontStyle(fsBold); //жирный стиль
TextOut(100,100,'Домик'); //текст
Rectangle(200, 300, 600,600); //дом
Circle(400,225, 40); //круг
//SetBrushColor(clBlue; //цвет заливки
окна
FillRect(300, 400,500,500);
//процедура заливки окна
rectangle(300,400,500,500); //окно
Line(400,400,400,500); // окно
Line(300,450,500,450); //окно
Line(200,300,400,150); //крыша
Line(400,150,600,300); //крыша
Line(480,210,480,160); //труба
Line(480,160,520,160); //труба
Line(520,160,520,240); //труба
end.
32
33.
Пример 2 выполнениязадания.
Определите координаты и составьте
программу, выводящую на
экран рисунок дома и дерева.
Program domik_2;
uses GraphABC;
var i: integer;
st:string;
begin
SetWindowSize(500, 500); {Коричневая стена}
SetPenWidth(2);
SetBrushColor(clBrown);
FillRect(100,50,150,100); {Крыша желтого цвета}
SetPenColor(clBrown);
Line(125,25,80,75);
Line(125,25,170,75);
FloodFill(125, 30,clYellow); {Крона дерева}
SetPenColor(clGreen);
SetBrushColor(clGreen);
Ellipse(100,150,150,200);
{ствол дерева}
SetBrushColor(clBrown);
33
FillRect(120,200,130,230);
end.
34.
Пример2 выполнениязадания
.
Используя оператор цикла и введя переменную
для пересчета координат по оси x, постройте
“поселок”, состоящий из 5 домов. Внесите
соответствующие дополнения и изменения в
предыдущую программу.
34
35.
Алгоритм решения примера2.
Весь наш «поселок» выстроился вдоль горизонтальной оси
экрана — оси X.
Построение рисунка начинается с левого верхнего угла стены
первого дома — точки с координатами (100, 50). Координата Y не
изменяется. Чтобы начать рисовать второй домик, нужно
координату X увеличить на 150 (50 точек — ширина первого
дома и 100 точек — расстояние между домиками).
Выберем в качестве параметра цикла целочисленную
переменную X.
Для всех элементов нашего рисунка абсолютное значение
координаты X заменим на относительное.
Например, для стены дома процедура для рисования запишется
следующим образом: FillRect(x,50,x+50,100);
35
36.
Алгоритм решения примера2.
Сформулируем условие выполнения циклических действий для
нашей задачи.
Какие координаты имеет левый верхний угол пятого дома?
Конечное значение выбранного нами параметра цикла x = 700.
Тогда условие выполнения цикла записывается так: x<=700.
Словесное описание алгоритма:
● переменной цикла x присвоить начальное значение 100;
● пока x<=700 выполнять серию действий:
✔ «Нарисуй дом и дерево»;
✔ после каждого фрагмента рисунка увеличивать
значение переменной цикла на 150.
36
37.
Пример программы задания2Program Domik;
uses GraphABC;
var i: integer;
st:string;
x:integer;
begin
SetWindowSize(800,
500);
x:=100;
While x<=700 do
begin
{Коричневая стена}
SetPenWidth(2);
SetBrushColor(clBrow
n);
FillRect(x,50,x+50,100);
{Крыша желтого цвета}
SetPenColor(clBrown);
Line(x+25,25,x-20,75);
Line(x+25,25,x+70,75);
FloodFill(x+25,
30,clYellow);
{Крона дерева}
SetPenColor(clGreen);
SetBrushColor(clGreen);
Ellipse(x,150,x+50,200);
{ствол дерева}
SetBrushColor(clBrown);
FillRect(x+20,200,x+30,230);
x:=x+150;
end;
end.
37
38.
Практическаяработа
1. Загрузите среду PascalABC .
2. Наберите шаблон графической программы.
3. Впишите в тело программы процедуру рисования точки Setpixel с координатами
(30,30) сине-зеленого цвета.
4. Запустите программу на выполнение.
5. Постройте отрезок зелёного цвета процедурой Line от точки
(80,40) до (180,50) (не забудьте задать цвет до рисования линии процедурой
Setpencolor).
6. Увеличьте толщину линии данного отрезка до 3 пикселей процедурой Setpenwidth
и установите тип линии пунктирный процедурой Setpenstyle.
7. Нарисуйте окружность процедурой Circle в точке (280,60) и радиусом 55.
8. Для контура окружности установите бирюзовый цвет.
9. Постройте прямоугольник процедурой Rectangle с сиреневым
контуром, если координаты диагонали (420,40) и (600,140).
10. Тип линии у прямоугольника сделайте из точек.
11. Изобразите дугу процедурой Arc в точке (50,120), радиусом 50, угол начала 0,
угол конца 90 (т.е. дуга занимает I первую четверть окружности).
12. Нарисуйте прямоугольник процедурой FillRect с координатами
диагонали (20,150) и (200,250). Предварительно установите красный цвет заливки
процедурой Setbrushcolor.
Program ;
Uses graphABC;
Var
Begin
блок решения задачи;
End.
38
39.
13. Измените заливку на синий цвет и установите \ \ \ штриховку.14. Нарисуйте окружность процедурой Pie в точке (300,200), радиуса 70.
15. Закрасьте её в сплошной жёлтый цвет.
16. Контур окружности тоже сделайте жёлтым.
17. Нарисуйте верхнюю половину окружности темно-красного цвета в
точке (480,200), радиусом 40, используя процедуру Pie.
18. Контур сделайте серого цвета.
19. Изобразите нижнюю половину этой же окружности.
20. Нарисуйте треугольник из отдельных сплошных линий яркозеленого цвета с вершинами (200,300), (280,400), (400,270).
21. Cделайте ему заливку того же цвета, используя процедуру Floodfill.
22. Справа от треугольника нарисуйте произвольный пятиугольник
красного цвета.
39
40.
Результат выполнения практическойработы
Дополнительно:
Нарисовать
фигурку
На свободном месте
подпишите
свою фамилию, имя и группу
40
41.
Задания для лабораторной работы.1. Согласно варианту, составить TP-программ для построения на
экране монитора геометрического объекта, который представлен
на рис. 3. Номера вариантов указаны в правом нижнем углу
геометрических объектов.
Указания. При построении TP-программ использовать
операторы цикла для формирования повторяющихся элементов
изображения. Например, забор - набор прямоугольников с
изменяющимися координатами, шахматное поле-набор квадратов
и тому подобное.
2. Для выполнения домашнего задания необходимо задаться
координатами фрагментов или рисунка экранной матрицей.
3. Программу следует дополнить операторами, которые
обеспечивают перемещение отдельных элементов рисунков или
изменении характера изображения. Например, экран телевизора
меняет свой цвет.
4. Сделать выводы по лабораторной работе.
41
42.
Варианты задания длялабораторной работы.
42
43.
Контрольныевопросы
1. Как загрузить среду программирования Pascal ABC?
2. Какие координаты имеет экран среды программирования
PascalABC?
3. Как нарисовать линию?
4. С помощью, какой процедуры можно рисовать прямоугольника?
5. С помощью, какой процедуры можно рисовать окружность?
6. Какие координаты надо задать, чтобы нарисовать дугу?
7. С помощью, какой процедуры можно задать цвет контура геометрической фигуры?
8. С помощью, какой процедуры можно залить цветом
геометрическую фигуру?
43
Программирование