1 Pascal Модуль GraphABC Лекция 10. 2 Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой.

Презентация:



Advertisements
Похожие презентации
1 Pascal Модуль GraphABC. 2 Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией.
Advertisements

ABCPascal Модуль GraphABC. Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией.
Тема урока X Y.
1 Графика в Pascal. 2 Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией.
Пункт плана Введение Граф. примитивы Граф. примитивы Текст Литература Гайдаржи Александра Андреевна
Магистрант Хаитов Икром Джураевич. Как называется элементарная точка на экране монитора ? Пиксель 2 В виде чего строятся изображения на экране ? Растров.
Пункт плана Введение Граф. примитивы Граф. примитивы Текст Литература.
Графика в РАВС Модуль crt, graphabc Графические примитивы SetPixel(x,y,color); Закрашивает один пиксел с координатами (x,y) цветом color. GetPixel(x,y);
Вы научились составлять программы, с помощью которых компьютер пишет на экране монитора, отвечает на вопросы, считает, решает математические задачи. Ранее.
Учебная система программирования вводный курс. УРОК 5. Графика и графические операторы в языке Паскаль Паскаль имеет развитую систему работу с графикой,
Практикум по графике PascalABC. Отличие между Turbo Pascal и PascalАВС PascalАВС Turbo Pascal 1. Включение библиотеки графических процедур и функций 2.
Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией программы должна быть.
Использование графических возможностей языка программирования (точка, отрезок, окружность, прямоугольник)
1 Графика в Pascal Модуль Graph. 2 Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля Graph. Первой инструкцией.
Вы научились: Составлять программы с помощью которых компьютер – пишет слова, – считает, – решает задачи, – выполняет выражения, – …– …– …– … А что ещё.
Графика в Pascal Графика в Pascal. Модуль GraphABC Модуль GraphABC.
§ 28 Линейные массивы и работа с графикой на языке Pascal Глава 3. Программирование на языках JavaScript и Pascal.
11 класс. №005. Использование графических возможностей среды программирования для построения геометрических фигур. Закрашивание фигур.Часть 2.
Тема урока Использование растровых изображений в Pascal ABC.
Графические примитивы (процедуры) SetPixel(x,y,color); рисует точку с координатами (x, y) цветом color Line(x1,y1,x2,y2); рисует отрезок из точки с координатами.
Транксрипт:

1 Pascal Модуль GraphABC Лекция 10

2 Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля GraphABC. Первой инструкцией программы должна быть инструкция uses GraphABC;

3 Графический режим Графический экран PasсalABC (по умолчанию) содержит 640 точек по горизонтали и 400 точек по вертикали. 640 точек 400 точек Начало отсчета – левый верхний угол экрана

4 Управление экраном SetWindowWidth(w) - Устанавливает ширину графического окна; SetWindowHeight(h) - Устанавливает высоту графического окна;

5 ClearWindow; - очищает графическое окно белым цветом. ClearWindow(color); - очищает графическое окно указанным цветом. Очистка графического окна program clear; uses GraphABC; begin ClearWindow; ClearWindow (clMoneyGreen); end. Цвет зеленых денег

6 Графические примитивы 1.Точка 2.Линия 3.Прямоугольник 4.Окружность 5.Эллипс 6.Сектор 7.Дуга

7 Точка SetPixel(x,y,color) - Закрашивает один пиксел с координатами (x,y) цветом color program tochka; uses GraphABC; begin SetPixel(300,200,clred); end.

8 Линии LineTo(x,y) - рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y). x,y Program liniay; uses GraphABC; begin LineTo(300,200); end.

9 Линии Line(x1,y1,x2,y2) - рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2). Program liniay; uses GraphABC; begin line(100,50,500,250); end. x1,y1 x2,y2

10 Используемые цвета clBlack – черный clPurple – фиолетовый clWhite – белый clMaroon – темно-красный clRed – красный clNavy – темно-синий clGreen – зеленый clBrown – коричневый clBlue – синий clSkyBlue – голубой clYellow – желтый clCream – кремовый clAqua – бирюзовый clOlive – оливковый clFuchsia – сиреневый clTeal – сине-зеленый clGray – темно-серый clLime – ярко-зеленый clMoneyGreen – цвет зеленых денег clLtGray – светло-серый clDkGray – темно-серый clMedGray – серый clSilver – серебряный Random( ) – случайный цвет из всей палитры цветов Паскаля

11 Цвет линии SetPenColor(color) - устанавливает цвет пера, задаваемый параметром color. Program liniay; uses GraphABC; begin setpencolor(clred); line(30,30,400,350); end.

12 Пунктирная линия SetPenStyle( ); - устанавливает стиль пера, задаваемый номером. program prim; uses GraphABC; begin Setpencolor(clred); SetPenStyle(1); {1 - длинный штрих} Line(10,100,350,100); SetPenStyle(2); {2 - короткий штрих} Line(10,125,350,125); SetPenStyle(3); {3 - штрих-пунктир} Line(10,150,350,150); end.

13 Толщина линии SetPenWidth(n) - устанавливает ширину (толщину) пера, равную n пикселям. Program liniay; uses GraphABC; begin setpenwidth(20); setpencolor(clred); line(30,30,400,350); end.

14 Program treugolnik; uses GraphABC; begin setpenwidth(20); setpencolor(clred); line(300,100,500,300); lineto(100,300); lineto(300,100); floodfill(300,200,clgreen); end. Треугольник Рисуется процедурами Line(x1,y1,x2,y2); LineTo(x,y);

15 Прямоугольник Rectangle(x1,y1,x2,y2) - рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2). Program pryamougolnik; uses GraphABC; begin Rectangle(50,50,200,200); end. x1,y1 x2,y2

16 Заливка цветом FloodFill(x,y,color) - заливает область одного цвета цветом color, начиная с точки (x,y). Program pryamougolnik; uses GraphABC; begin Rectangle(50,50,200,200); FloodFill(100,100,clBlue); end. x1,y1 x2,y2

17 Заливка кистью SetBrushColor(color) - устанавливает цвет кисти. Заливка кистью распространяется на замкнутый контур, описание которого следует за процедурой установки цвета кисти. Program zalivka_kist; uses GraphABC; Begin SetBrushColor(clGreen); Rectangle(50,50,300,300); end.

18 Заливка кистью SetBrushStyle(номер от 0 до 7 или название) - устанавливает стиль кисти, задаваемый номером или символической константой. Program p12_zalivka; uses GraphABC; Begin SetBrushColor(clAqua); SetBrushStyle(1); Rectangle(10,10,100,100); SetBrushColor(clRed); SetBrushStyle(2); Rectangle(110,10,200,100); SetBrushColor(clBlue); SetBrushStyle(3); Rectangle(210,10,300,100); SetBrushColor(clGreen); SetBrushStyle(4); Rectangle(10,110,100,210); SetBrushColor(clYellow); SetBrushStyle(5); Rectangle(110,110,200,210); SetBrushColor(clBlack); SetBrushStyle(6); Rectangle(210,110,300,210); end. По умолчанию задается стиль 0 – сплошная заливка цветом.

19 Заливка кистью SetBrushPicture(fname) - устанавливает в качестве образца для закраски кистью образец, хранящийся в файле fname, при этом текущий цвет кисти при закраске игнорируется. uses GraphABC; begin SetBrushPicture('brush4.bmp'); Ellipse(0,0,640,400); end.

20 Program pryamougolnik; uses GraphABC; begin SetPenColor(clred); SetPenWidth(20); Rectangle(50,50,200,200); FloodFill(100,100,clBlue); end. Цвет и толщина контура Задаются процедурами SetPenWidth(w); SetPenColor(color);

21 Circle(x,y,r) - рисует окружность с центром в точке (x,y) и радиусом r. Окружность Program circle; uses GraphABC; begin Circle(500,200,100); FloodFill(500,200,clred); end. x1,y1 r

22 Эллипс Ellipse(x1,y1,x2,y2) - рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (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( , ,clBlue); end. x1,y1 x2,y2 x1,y1 x2,y2

23 Дуга окружности Arc(x,y,r,a1,a2) - Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки). Program duga; uses GraphABC; Begin SetPenWidth(10); Arc(300,250,150,45,135); end. x,y r

24 Pie(x,y,r,a1,a2) - рисует сектор окружности, ограниченный дугой (параметры процедуры имеют тот же смысл, что и в процедуре Arc). Сектор Program sector; uses GraphABC; begin Pie(300,200,100,0,90); FloodFill(300+10,200-10,clAqua); end.

25 Вывод текста в графическое окно TextOut(x,y,строка); - выводит строку текста в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст). Program text; uses GraphABC; begin TextOut(100,30,'Квадрат'); Rectangle(50,50,200,200); FloodFill(55,55,clBlue); end.

26 Действия со шрифтом SetFontName(name) - устанавливает наименование шрифта. SetFontColor(color) - устанавливает цвет шрифта. SetFontSize(sz) - устанавливает размер шрифта в пунктах. SetFontStyle(fs) - устанавливает стиль шрифта.

27 Название шрифта По умолчанию установлен шрифт, имеющий наименование MS Sans Serif. Наиболее распространенные шрифты – это Times, Arial и Courier New. Наименование шрифта можно набирать без учета регистра. Пример: SetFontName(Times);

28 Стиль шрифта Задается именованными константами: fsNormal – обычный; fsBold – жирный; fsItalic – наклонный; fsBoldItalic – жирный наклонный; fsUnderline – подчеркнутый; fsBoldUnderline – жирный подчеркнутый; fsItalicUnderline – наклонный подчеркнутый; fsBoldItalicUnderline – жирный наклонный подчеркнутый.

29 Program text; uses GraphABC; Begin SetFontName(Arial); SetFontSize(20); SetFontColor(clRed); TextOut(10,10,обычный'); SetFontStyle(fsItalic); SetFontColor(clBlue); TextOut(10,50,наклонный'); SetFontStyle(fsBold); SetFontColor(Random( )); TextOut(10,90,жирный'); SetFontStyle(fsUnderline); SetFontColor(Random( )); TextOut(10,130,подчеркнутый'); SetFontStyle(fsBoldItalicUnderline); SetFontColor(Random( )); TextOut(10,170,жирный, наклонный, подчеркнутый'); end. Например,

30 Используемые цвета Цвет можно задавать и с помощью функции RGB(r,g,b) где r, g и b – целые числа в диапазоне от 0 до 255. Функция возвращает целое значение, являющееся кодом цвета, который содержит красную, зеленую и синюю составляющие с интенсивностями r, g и b соответственно (0 соответствует минимальной интенсивности, 255 – максимальной). RGB(255,255,255) – соответствует белому цвету. RGB(0,0,0) – соответствует черному цвету.

31 Program color; uses GraphABC; begin Clearwindow(rgb(200,150,250)); TextOut(93,30,' Квадрат '); Rectangle(50,50,200,200); FloodFill(55,55,clRed); TextOut(275,30,' Эллипс'); Ellipse(250,50,350,200); FloodFill(250+50,50+50,clYellow); end. Например,

32 Вывод текста в графическое окно Program text2; uses Crt,GraphABC; begin clrscr; hidecursor; {скрывает текстовый курсор} gotoXY(12,3); write(Квадрат'); Rectangle(50,50,200,200); FloodFill(55,55,clYellow); end. Текст можно вывести с помощью операторов Gotoxy(x,y) и Write(текст), подключив дополнительно модуль Crt.

33 LoadPicture(fname) n:=LoadPicture(fname) – загружает рисунок из файла с именем fname в оперативную память и возвращает описатель рисунка в целую переменную n; если файл не найден, то возникает ошибка времени выполнения. Загружать можно рисунки в формате.bmp,.jpg или.gif. Загрузка готового рисунка

34 DrawPicture(n,x,y); Выводит рисунок с описателем n в позицию (x,y) графического окна. Вывод рисунка в графическое окно uses GraphABC; var pic: integer; begin pic:=LoadPicture('demo.bmp'); DrawPicture(pic,10,10); DestroyPicture(pic); end.

35 SavePicture(n, fname) - Сохраняет рисунок с описателем n в файл с именем fname. Рисунки можно сохранять в формате.bmp,.jpg или.gif. Сохранение созданного рисунка

36 Пример 1. Составим алгоритм, в результате которого будет нарисован один круг.

37 //Пример 2. Написать программу, которая выведет на экран монитора //отрезок красного цвета, соединяющий две точки //с координатами (150,400) и (300,100). Program Linii; Uses GraphAbc;// Подключение модуля GraphAbc Begin SetWindowSize(500,500); // Установка размеров графического окна SetPenColor(clRed); // цвет пера - красный Line(150,400,300,100); End.

38 //Нарисуем домик Program grafikal; Uses GraphAbc; Begin SetWindowSize(640,480); ClearWindow(clWhite); SetPenColor(clTeal); SetPenWidth(5); Rectangle(100,150,250,300); SetBrushColor(clYellow); Circle(170,200,25); FloodFill(150,160,clBrown); Line (100,150,175,90); Line (175,90,250,150); FloodFill(175,100,clGreen); End.

39 //Нарисуем трактор program tractor; uses graphabc; var x,y:integer; begin setwindowsize (940,680); setwindowtitle ('Трактор'); setpenwidth (2); x:=10; y:=10; setpencolor (clblack); rectangle(x+40,y+40,x+140,y+90); floodfill(x+50,y+50, clyellow); rectangle(x+50,y+50,x+80,y+85); floodfill(x+55,y+75, clolive); rectangle(x+95,y+10,x+130,y+65); floodfill(x+110,y+35, clgreen); circle(x+60,y+100,10); floodfill(x+60,y+100, clgray); circle(x+110,y+90,20); floodfill(x+110,y+90, clgray); end.

40 // Мозаика. Квадратики случайным образом меняются местами uses GraphABC; const w=25; w1=1; m=50; n=70; x0=0; y0=0; Var i, j, i1, j1, di, dj, v, k: integer; a: array [0..n, 0..m] of integer; begin SetWindowCaption('Мозаика'); for i:=0 to n-1 do for j:=0 to m-1 do begin a[i,j]:=RGB(Random(256),Random(256),Random(256)); SetBrushColor(a[i,j]); FillRect(x0+i*w,y0+j*w,x0+(i+1)*w-w1,y0+(j+1)*w-w1); end; while true do begin k:=k+1; if k mod 1000 = 0 then begin k:=0; Sleep(1); end; i:=Random(n-2)+1; j:=Random(m-2)+1; di:=Random(3)-1; dj:=Random(3)-1; i1:=i+di; j1:=j+dj; v:=a[i,j]; a[i,j]:=a[i1,j1]; a[i1,j1]:=v; SetBrushColor(a[i,j]); FillRect(x0+i*w,y0+j*w,x0+(i+1)*w-w1,y0+(j+1)*w-w1); SetBrushColor(a[i1,j1]); FillRect(x0+i1*w,y0+j1*w,x0+(i1+1)*w-w1,y0+(j1+1)*w-w1); end; end.