Тема работы «Программирование на языке Паскаль»
Изучались графические операторы языка Паскаль, операторы с помощью которых можно осуществить движение Объекта.
Компьютерная графика – область информатики, изучающая методы и свойства обработки изображений с помощью программно – аппаратных средств.
Цель работы: создать графический объект средствами языка Паскаль и придать ему движения.
Были применены операторы:
Оператор цикла использовался для создания эффекта движения. Для движения танка использовалось увеличение значения координаты x, движения шаров – уменьшение координаты у
Применена в программе задержка движения, т.к танк очень быстро двигался.
Но танк при движении мерцал, так как рисование средствами Паскаль происходит очень медленно. Пока оно идёт, картинка на экране успевает много раз обновиться. Отсюда мерцание.
Для того чтобы убрать мерцание использовался оператор LockDrawing
Рисунок выполнен в цветовой гамме, поэтому были использованы различные цвета.
Рисунок сначала рисовался на координатной плоскости, затем его координаты переносились в программу.
Вложение | Размер |
---|---|
programmirovanie_v_pascalabc.pptx | 606.43 КБ |
Слайд 1
Програм м ирование в PascalABC Подготовил : Орлов Илья Ученик 6 «А» класса Учитель: Малахова Елена Николаевна Частное общеобразовательное учреждение «Лицей № 35 открытого акционерного общества «Российские железные дороги»Слайд 2
Pascal Компьютерная графика в Паскале – область информатики, изучающая методы и свойства обработки изображений с помощью программно-аппаратных средств.
Слайд 3
Цель моей работы: создать графический объект и придать ему движение
Слайд 4
Line Line(x1,y1,x2,y2)- рисует отрезок с началом в точке ( x1,y1) и концом в точке ( x2,y2).
Слайд 5
Rectangle Rectangle(x1,y1,x2,y2)- рисует прямоугольник, заданный координатами противоположных вершин ( x1,y1) и ( x2,y2).
Слайд 6
Circle Circle( x,y,r )- рисует окружность с центром в точке ( x,y ) и радиусом r.
Слайд 7
FloodFill ( x,y , corol )- заливает область одного цвета цветом corol , начиная с точки ( x,y ). SetPenWidth (3) – устанавливает толщину отрезка в пикселях ; SetPenColor ( clRed ); - устанавливает цвет отрезка;
Слайд 8
Оператор цикла: Использовался для создания эффекта движения: for <счетчик1> := <значение1> to < конечное_значение > do <оператор1>;
Слайд 9
Задержка движения Sleep (ms)
Слайд 10
LockDrawing ; Рисование средствами PascalABC происходит очень медленно. Пока оно идет, картинка на экране успевает много раз обновиться. Отсюда мерцание. То есть, мы видим не окончательную картинку, а процесс ее рисования. Окончательную картинку в общем-то не видим — как только она построилась, мы ее тут же стираем и начинаем новый цикл рисования. Для борьбы с этим эффектом придумали двойную буферизацию. Идея в том, чтобы сначала построить картинку в памяти (не выводя на экран), а затем отобразить новый кадр на экране целиком, без промежуточных вариантов, где не хватает половины лучиков. Для этого в начале программы вызываем процедуру LockDrawing .
Слайд 11
Основные цвета в Паскале Clblack - чёрный clskyblue - голубой Clpurple - фиолетовый clyellow - жёлтый Clwhite - белый clcream - кремовый Clmaroon - тёмно-красный claqua - бирюзовый Clred - красный clolive - оливковый Clnavy - тёмно-синий clfuchsia - сиреневый Clgreen - зелёный clteal - тёмно-зелёный Clbrown - коричневый clgray - тёмно-серый Clblue - синий clmedgray - серый
Слайд 12
Программа: Program pr; uses GraphABC ; var I,X,Y,D: integer; Begin LockDrawing ; for i :=1 to 500 do Begin FloodFill (10,20,clSkyBlue); Line(190+i,260,170+i,280); Line(170+i,280,170+i,300); Line(170+i,300,190+i,320); Line(170+i,300,190+i,320); Line(190+i,320,350+i,320); Line(350+i,320,370+i,300); Line(350+i,320,370+i,300); Line(370+i,300,370+i,280); Line(370+i,280,350+i,260); Line(350+i,260,190+i,260); Line(230+i,260,230+i,240); Line(230+i,240,250+i,220); Line(250+i,220,310+i,220); Line(310+i,220,330+i,240); Line(330+i,240,330+i,260); Rectangle(330+i,250,390+i,240); Line(190+i,260,210+i,230); FloodFill (365+i,245,clGreen); Line(100,140-i,100,60-i); Ellipse(90,30-i,110,70-i); Line(360,150-i,360,70-i); Ellipse(350,70-i,370,30-i); Line(510,180-i,510,100-i); Ellipse(500,100-i, 520,60-i); Line(230,150-i,230,80-i); Ellipse(220,80-i,240,40-i); FloodFill (100,50-i,clpurple); FloodFill (230,60-i,clyellow); FloodFill (360,60-i,cllime); FloodFill (510,80-i,clsilver); Redraw; Sleep(6); ClearWindow ; End; Line(210+i,230,240+i,230); Line(230+i,230,230+i,160); Rectangle(230+i,190,290+i,160); Circle(210+i,290,30); Circle(270+i,290,30); Circle(330+i,290,30); FloodFill (250+i,180,clred); FloodFill (210+i,290,clBrown); FloodFill (270+i,290,clBrown); FloodFill (330+i,290,clBrown); FloodFill (260+i,240,clGreen); FloodFill (240+i,270,clGreen); FloodFill (300+i,270,clGreen); FloodFill (300+i,310,clGreen); FloodFill (240+i,310,clGreen); FloodFill (360+i,280,clGreen); FloodFill (180+i,280,clGreen); FloodFill (210+i,250,clGreen);
Слайд 13
В результате работы программы получается рисунок в движении:
Слайд 14
Спасибо за внимание!
Ледяная внучка
В.А. Сухомлинский. Самое красивое и самое уродливое
Рисуем крокусы акварелью
Попробуем на вкус солёность моря?
Весенние чудеса