Урок 1 Знакомство с графическим модулем и процедурами, устанавливающими текущий цвет рисунка, тип закраски и ее цвет, рисующими прямоугольник и трехмерный.

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



Advertisements
Похожие презентации
Урок 1 Знакомство с графическим модулем и процедурами, устанавливающими текущий цвет рисунка, тип закраски и ее цвет, рисующими прямоугольник и трехмерный.
Advertisements

Экран в графическом режиме представляет собой прямоугольник, заполненный точками – пикселями. X Y y x (0,0) Для построения изображения используется система.
Графика в Паскале Учитель информатики и ИКТ СОШ 60 Грязнова А. В.
Электронный справочник по процедурам и функциям модуля Graph языка программирования Turbo Pascal автор: Алиева Ирина Викторовна Учитель информатики и ИКТ.
1 Графика в Pascal Модуль Graph. 2 Подключение дополнительных библиотек Для работы в графическом режиме необходимо подключение модуля Graph. Первой инструкцией.
ГРАФИЧЕСКИЙ РЕЖИМ Turbo Pascal 7.0. Графические операции Система координат Инициализация Изображение точек Изображение линий Закрашенные фигуры Вывод.
Задание графического режима Линия Прямоугольник Окружность Эллипс Дуга выход Тест 2Тест 1 содержание.
1 Программирование на языке Паскаль Графика. 2 Система координат (0,0) (x,y)(x,y) X Y x y.
Построение точки и отрезков прямых. Для построения точки служит процедура PutPixel(X,Y, цвет) Для построения точки служит процедура PutPixel(X,Y, цвет)
Модуль GraphМодуль GraphИнициализация и завершение гpафического режима InitGraph (driver, mode : integer; path : string); При driver:=detect включается.
Графика в Turbo Pascal ГБОУ СПО «КСТ», г. Калуга преподаватель Шамрина Ольга Николаевна.
Графический режим Инициализация графического режима. Построение точки, линии.
Операторы графики. Содержание Открытие и закрытие графического режимаОткрытие и закрытие графического режима Графические операторы Обобщение (основные.
Анимация Анимация - компьютерная имитация движения с помощью изменения (и перерисовки) формы объектов или показа последовательных изображений с фазами.
Линейный алгоритм в графических задачах. Вся поверхность монитора в графическом режиме представляется совокупностью прямоугольников, которые называются.
На алгоритмическом языке Турбо - Паскаль тема: «Графический режим монитора» Методические разработки учителя информатики лицей 1581 Лапшиной О.М г.
«Графические возможности языка программирования Паскаль»
Тема урока Анимация в Pascal ABC. n:= LoadPicture (name) – загружает рисунок из файла с именем name в оперативную память и возвращает описатель рисунка.
Графические возможности Pascal. Любое изображение на экране монитора формируется из отдельных элементов – пикселов (от англ. Pixel - Picture Element –
Урок по теме : «Введение в графику в языке программирования Turbo Pascal» Автор: Казначей, учитель информатики Urok-informatiki.ru.
Транксрипт:

Урок 1 Знакомство с графическим модулем и процедурами, устанавливающими текущий цвет рисунка, тип закраски и ее цвет, рисующими прямоугольник и трехмерный параллелепипед. Uses Graph – подключение модуля. Close Graph – останавливает работу графической системы. Экран: Координаты левого верхнего угла экрана – 0,0. Х увеличивается слева направо от 0 до 639. Y увеличивается сверху вниз от 0 до 479. Инициализация графической системы и перевод аппаратуры в графический режим. Процедура InitGraph(var граф_драйвер: integer;var граф_режим: integer; путь_драйвер:string).

Процедура SetColor(цвет:word) Устанавливает текущий цвет рисунка. 0черный 1синий 2зеленый 3бирюзовый 4красный 5малиновый 6коричневый 7светло-серый 8темно-серый 9светло-голубой 10светло-зеленый 11светло-бирюзовый 12светло-красный 13светло-малиновый 14желтый 15белый

Процедура SetFillStyle(образец:word;цвет:word)Устанавливает тип закраски и ее цвет. 0 заполнение фоновым цветом 1непрерывное заполнение 2заполнить --- 3заполнить /// 4заполнить жирными /// 5заполнить жирными \\\ 6заполнить \\\ 7заполнить редкой штриховкой 8 частой пересекающейся штриховкой 9заполнить прерывистыми линиями 10заполнить редкими точками 11заполнить частыми точками

Процедура Bar(x1,y1,x2,y2:integer) Рисует столбец, используя стандартный тип и цвет закраски, заданные с помощью процедуры SetFillStyle. Процедура Bar3d(x1,y1,x2,y2:integer;глубина:word;вершина:boolean) Используя текущий тип и цвет закраски, рисует трехмерный параллелепипед. Вершина может быть истина – TRUE, тогда рисуется верхняя грань и ложь – FALSE, тогда верхняя грань не рисуется. Пример: Трехмерный параллелепипед. Program gr; Uses crt,graph; Var gd,gm:integer; Begin gd:=detect; InitGraph(gd,gm,c:\tp\); SetFillStyle(8,5); SetColor(5); Bar3d(100,100,300,250,60,true); Repeat until keypressed; CloseGraph; End. РезультатРезультат

0непрерывная линия 1линия из точек 2линия из точек и тире 3пунктирная линия 4тип, определяемый пользователем 1нормальная толщина 3жирная линия Урок 2 Линии, окружности, прямоугольники, точки, заливка Процедура SetLineStyle(тип_линии:word;образец:word;толщина:word) Устанавливает текущую толщину и тип линии; параметр образец используется для типа, определяемого пользователем, для остальных типов этот параметр=0. Тип линии Толщина линии

Закрашенные концентрические окружности program krugi; uses crt,graph; var gd,gm:integer; x0,r,y0:integer;c:word; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); c:=1; x0:=320;y0:=240;r:=100; while r>0 do begin SetColor(c); SetFillStyle(1,c); Circle(x0,y0,r); FloodFill(x0,y0,c); r:=r-5;if c

Эллипсы program ellipsy; uses crt,graph; var d,min,x,x0,y,y0,gd,gm:integer; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); setcolor(10); min:=5;x0:=320;y0:=240;y:=200;x:=min;d:=5; while y>=min do begin ellipse(x0,y0,0,359,x,y); x:=x+d;y:=y-d end; repeat until keypressed; closegraph end. РезультатРезультат

Урок 3 Использование случайных чисел Процедура Randomize – инициализирует генератор случайных чисел; Функция Random(n) – возвращает случайное целое число в диапазоне от 0 до n; Примеры программ: Звездное небо program zwezda; uses crt,graph; var gd,gm:integer; i,x,y,c:integer; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); randomize; for i:=1 to 1000 do begin x:=random(639); y:=random(479); c:=random(15); PutPixel(x,y,c); end; repeat until keypressed; closegraph end. РезультатРезультат Случайные точки в центре экрана program krug; uses crt,graph; var gd,gm,i,r,c,x,y:integer; xc,yc:real; begin gd:=detect;r:=50; initgraph(gd,gm,'c:\tp\'); randomize; repeat x:=random(639);y:=random(479); c:=random(15); xc:=x-320;yc:=y-240; if xc*xc+yc*yc

Процедура Line(x1,y1,x2,y2:integer) Рисует прямую линию из точки (x1,y1) в точку (x2,y2), толщина и тип которой задаются процедурой SetLineStyle, а цвет устанавливается процедурой SetColor. Процедура Circle(x,y:integer;радиус:word) Рисует окружность с заданным радиусом и центром, используя текущий цвет Процедура Ellipse(x,y:integer;нач_угол,кон_угол:word;радX,радY:word) Рисует эллиптическую дугу от начального до конечного угла, используя x,y в качестве центра, радX и радY – горизонтальная и вертикальная оси Процедура Rectangle(x1,y1,x2,y2:integer) Рисует прямоугольник, используя текущий цвет и тип строки. (x1,y1) – верхний левый угол прямоугольника, (x2,y2) – нижний правый. (0

Урок 4 Рисование линий Текущий указатель в графическом режиме аналогичен курсору, который используется в текстовом режиме. Различает их то, что текущий указатель не виден. Процедура LineRel(dx,dy:integer) Проводит прямую линию в точку, заданную относительным расстоянием (dx,dy) от текущего указателя; Процедура LineTo(x,y:integer) Рисует прямую линию из точки, в которой находится указатель в точку (x,y); Процедура MoveRel(dx,dy:integer) Перемещает текущий указатель на расстояние, заданное относительными координатами от его текущей позиции; Процедура MoveTo(x,y:integer) Перемещает текущий графический указатель в точку (x,y).

Примеры программ Развернутые конверты program konwert; uses crt,graph; var gd,gm:integer; x0,y0,r:integer; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); x0:=100;y0:=400;r:=100; MoveTo(x0,y0); LineTo(x0,y0-r);LineTo(x0+r,y0-r); LineTo(x0+r,y0);LineTo(x0,y0); LineTo(x0+r,y0-r);LineTo(x0+r div 2,y0-r*2); LineTo(x0,y0-r);LineTo(x0+r,y0); MoveRel(r,0); LineRel(0,-r);LineRel(r,0); LineRel(0,r);LineRel(-r,0); LineRel(r,-r);LineRel(-r div 2,-r); LineRel(-r div 2,r);LineRel(r,r); repeat until keypressed; closegraph end. РезультатРезультат Ступени program stupeni; uses crt,graph; var gd,gm:integer; x0,y0,r,i:integer; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); x0:=10;y0:=400;r:=20; MoveTo(x0,y0); for i:=1 to 10 do begin LineRel(0,-r);LineRel(r,0) end; for i:=1 to 10 do begin LineRel(0,r);LineRel(r,0) end; repeat until keypressed; closegraph end. Результат

Урок 5 Движение объекта Примеры программ: Движущийся квадрат program dw; uses crt,graph; var x1,x2,y1,y2,gd,gm:integer; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); x1:=0;y1:=0;x2:=20;y2:=17; repeat setcolor(10); Rectangle(x1,y1,x2,y2);delay(10000); setcolor(0); Rectangle(x1,y1,x2,y2); x1:=x1+10;x2:=x2+10;y1:=y1+7;y2:=y2+7 until (x2>=GetMaxX) or (y2>=GetMaxY); setcolor(10); Rectangle(x1,y1,x2,y2); repeat until keypressed; closegraph end. РезультатРезультат

Движение человечка program ch; uses crt,graph; var gd,gm:integer; x0,x,r,y0,y:integer; procedure chelovek(xp,yp:integer); begin Circle(xp,yp,r); Line(xp,yp+r,xp,yp+2*r); Line(xp,yp+2*r,xp+r,yp+3*r); Line(xp,yp+2*r,xp-r,yp+3*r); Line(xp,yp+2*r,xp,yp+3*r); Line(xp,yp+3*r,xp+r,yp+5*r); Line(xp,yp+3*r,xp-r,yp+5*r); end; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); x0:=20;y0:=240;r:=20; x:=x0;y:=y0; while x

Движение с изменением цвета и типа закраски program diagonali; uses crt,graph; var i,j,x1,x2,y1,y2,gd,gm:integer; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); rectangle(0,0,639,479); repeat x1:=1;y1:=1;x2:=100;y2:=50; j:=1;i:=0;{движение вниз и вправо} while x2

Урок 6 Графики функций Началом координат будем считать точку с координатами (320, 240). Тогда оси координат: line(0,240,639,240) – ось X; line(320,0,320,479) – ось Y; Построим график функции Y=X. Пусть X изменяется от Начальное значение X=-200. В цикле будем увеличивать значение аргумента на шаг (например на 5), вычислять значение функции и ставить точку с координатами X, Y с помощью процедуры PutPixel. В параметрах процедуры перед значением Y будем ставить знак минус, так как 0 по оси Y вверху. Все значения Y будем увеличивать на 240, а X – на 320, чтобы «передвинуть» график в нашу систему координат. Для растягивания графика по осям координат (иначе его не будет видно) умножаем значения Х и Y на коэффициент 10, то есть меняем масштаб графика.

Примеры программ: График функции Y=X program grafiki; uses crt,graph; var gd,gm:integer; i,x0,y0:integer;x,y:real; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); SetColor(7); rectangle(0,0,639,479); x0:=320;y0:=240; line(320,0,320,479);line(0,y0,639,y0); x:=-20; for i:=1 to 80 do begin x:=x+0.5;y:=x;PutPixel(round(x*10+x0),round(-y*10+y0),7) end; repeat until keypressed; closegraph; end. РезультатРезультат Для графиков тригонометрических функции нужно задавать другие коэффициенты по осям координат, так в следующем примере эти коэффициенты 20 и 50. Аргумент тригонометрической функции – угол в радианах

Графики тригонометрических функций: sinX, cosX, tgX program grafiki; uses crt,graph; var gd,gm:integer; i,n,x0,x,y0,y,y1,y2:integer; ug:real; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); SetColor(7); rectangle(0,0,639,479); x0:=0;y0:=240;ug:=0.1; line(0,0,0,479);line(0,240,639,240); for i:=1 to 1000 do begin x:=round(ug*20+x0); y:=round(-sin(ug)*50+y0); y1:=round(-cos(ug)*50+y0); y2:=round((-sin(ug)/cos(ug)+y0)); PutPixel(x,y,4);PutPixel(x,y1,2);PutPixel(x,y2,14); ug:=ug+pi/100 end; repeat until keypressed; closegraph; end. РезультатРезультат

Линия, соединяющая графики синуса и косинуса program grafiki; uses crt,graph; var gd,gm:integer; i,n,x0,x,y0,y,y1,c:integer; ug:real; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); SetColor(7); rectangle(0,0,639,479); repeat x0:=10;y0:=240;ug:=0;c:=1; for i:=1 to 100 do begin x:=round(ug*30+x0); y:=round(-sin(ug)*100+y0); y1:=round(-cos(ug)*150+y0); setcolor(c);SetLineStyle(0,0,3); line(x,y,x+10,y1);delay(5000); {setcolor(0); line(x,y,x+10,y1); {убрать фигурные скобки для изменения картинки} ug:=ug+pi/18;if c

Графики функции sinX*sinX/10 с разными амплитудами program grafiki; uses crt,graph; var gd,gm:integer; i,n,x0,x,y0,y,y1,y2:integer; ug:real; begin gd:=detect; initgraph(gd,gm,'c:\tp\'); SetColor(7);rectangle(0,0,639,479); x0:=0;y0:=240;ug:=0.1; line(0,0,0,479);line(0,240,639,240); for i:=1 to 1500 do begin x:=round(ug*10+ug/9+x0); y:=round(-sin(ug)*sin(ug/10)*50+y0); y1:=round(-sin(ug)*sin(ug/10)*60+y0); y2:=round(-sin(ug)*sin(ug/10)*70+y0); PutPixel(x,y,4);PutPixel(x,y1,2);PutPixel(x,y2,14); ug:=ug+pi/60 end; repeat until keypressed; closegraph; end. РезультатРезультат

Урок 7 Параметрическое задание кривых Параметрическое задание окружности с центром в начале координат 0,0 X,Y α r Параметрическое задание любой окружности 0,0 X,Y α r X 0,Y 0

Примеры программ: Окружность program krug; uses crt,graph; var gd,gm:integer; x,y,f:real; i,x0,y0,r,c:integer; begin gd:=detect; write('введите радиус окружности и цвет (1-15)');read(r,c); initgraph(gd,gm,'c:\tp\'); x0:=320;y0:=240;f:=0;MoveTo(x0+r,y0); SetColor(c); for i:=1 to 100 do begin f:=f+2*pi/100; x:=x0+r*cos(f);y:=y0+r*sin(f); LineTo(round(x),round(y)); end; repeat until keypressed; closegraph end. РезультатРезультат

Убегающий многоугольник program ubeg_mn; uses crt,graph; var i,x0,y0,r,gd,gm,n,c:integer; f,x,y:real; begin write('введите число сторон многоугольника_');read(n); gd:=detect; initgraph(gd,gm,'c:\tp\'); c:=1; x0:=320;y0:=240;r:=150;f:=0; while r>0 do begin setcolor(c); x:=x0+r*cos(f);y:=y0+r*sin(f); moveto(round(x),round(y)); for i:=1 to n do begin f:=f+2*pi/n; x:=x0+r*cos(f);y:=y0+r*sin(f); lineto(round(x),round(y));delay(40000); end; f:=f+3;r:=r-3;if c

Салфетка program salfetka; uses crt,graph; var gd,gm:integer; f:real; i,j,x0,y0,n,c,r:integer; vr:array[1..100,1..2]of integer; begin gd:=detect; write('введите число вершин и цвет (1-15)');read(n,c); initgraph(gd,gm,'c:\tp\'); x0:=320;y0:=240;f:=0;r:=130; SetColor(c); for i:=1 to n do begin {заполнение массива вершин} vr[i,1]:=round(r*cos(f)+x0); vr[i,2]:=round(r*sin(f)+y0); f:=f+2*pi/n; end; for i:=1 to n-1 do for j:=i+1 to n do Line(vr[i,1],vr[i,2],vr[j,1],vr[j,2]); repeat until keypressed; closegraph end. РезультатРезультат