Анимация в Pascal ABC
проект по информатике и икт (8, 9 класс) на тему
Предварительный просмотр:
Здравствуйте, Уважаемые члены жюри и присутствующие здесь конкурсанты. Хотим вам представить нашу исследовательскую работу по теме Графические возможности системы программирования Паскаль АБЦ. Тема работы выбрана не случайно, так как графика является довольно интересной областью программирования. Данный проект показывает, что можно создавать простые рисунки, анимацию не только в графических программах, таких как Paint, Adobe Photoshop, Corel Draw, но и в среде языка программирования PascalАВС.
Целью работы является разработка графического проекта в среде программирования PascalАВС.
Перед собой мы ставили следующие задачи:
1)Познакомиться с историей становления языка программирования PascalАВС.
2)Изучить основные понятия графики, функции и процедуры работы с графикой PascalАВС.
3) Освоить навыки создания графических изображений в среде программирования PascalАВС
Язык программирования Pascal был создан в 1968-1969 годах швейцарским учены Никлаусом Виртом. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа.
В настоящее время Pascal — один из наиболее известных языков программирования, который используется для обучения программированию в старших классах и на первых курсах вузов, и является базой для ряда других языков.
Pascal ABC разработан в 2002 году сотрудниками факультета математики, механики и компьютерных наук Южного федерального университета (Ростов-на-Дону, Россия) во главе со Станиславом Станиславовичем Михалковичем. Целью авторов было создание обучающей среды программирования, более современной, чем Borland Pascal и Turbo Pascal, более простой для изучения.
Язык Pascal является традиционным алгоритмическим языком. Правильная программа представляет собой формальную запись средствами языка некого алгоритма. Любая программа состоит из двух основных частей: описание последовательных действий и описание данных, которыми оперируют эти действия. Кроме того программа снабжена заголовком, который задает имя программы и завершается программа символом точки. Описание данных в программе предшествует описанию действий и должно содержать упоминание о всех объектах используемых в программе. Таким образом, общая структура программы выглядит следующим образом:
- заголовок программы;
- раздел описания переменных;
- раздел действий;
- точка.
Множество графических процедур и функций среды программирования Pascal собраны в модуле Graph . Для подключения библиотеки графических функций и процедур необходимо подключить модуль к вашей программе строкой Uses graph.
Положение каждой точки изображения задано координатами Х и У. Координаты- целые числа, они задают номера колонки и строки и не зависят от физического размера экрана. Оси координат направлены следующим образом: горизонтальная ось Х направлена слева направо; вертикальная ось У направлена сверху вниз; верхний левый угол имеет координаты(0, 0).
Рисунок 1.1
Очевидно, что запись изображения требует хранения информации о положении множества точек, для каждой из которых должен быть задан цвет. Цветное изображение получается смешиванием трех основных цветов – красного, зеленого и синего. Такая модель представления цвета называется моделью RGB ( Red - Green - Blue )
Стандартный модуль GraphABC системы PascalABC содержит типы, константы, переменные, процедуры и функции, позволяющие создавать изображения в специально графическом окне.
Рассмотрим конкретные примеры программ, в которых реализованы графические возможности системы Паскаль АБЦ .
Задача 1. Нарисовать 4 неподвижные окружности и одну окружность которая будет проходить через остальные окружности и будет менять свой цвет.
program animation; (заголовок программы, всегда пишется английскими буквами, может содержать цифры, пробел нельзя)
uses GraphABC; (подключаем графический модуль)
var i : integer; (описание переменной, слово integer показывает,что i – целое число,I – будет отвечать за изменяющуюся координату )
begin
SetWindowSize(400,400); (установим размер окна, в котором появиться изображение)
LockDrawing; (рисуем картинку в памяти компьютера не выводя промежуточный вариант сразу на экран)
//Движение от первой точки до второй
for i:=100 to 300 do (цикл с параметром)
begin
SetBrushColor(clWhite); (установка цвета окружности)
Circle (100, 100, 20); ( окружность (1 и 2 координата центра, 3 радиус)
Circle (300, 100, 20);
Circle (100, 300, 20);
Circle (300, 300, 20);
SetBrushColor(clBlack); (установка черного цвета)
Circle (i, 100, 20);
RedRaw;
ClearWindow(clWhite);
end;
//Движение от второй точки до третьей
for i:=100 to 300 do
begin
SetBrushColor(clWhite);
Circle (100, 100, 20);
Circle (300, 100, 20);
Circle (100, 300, 20);
Circle (300, 300, 20);
SetBrushColor(clBlue);
Circle (300, i, 20);
RedRaw;
ClearWindow(clWhite);
end;
//Движение от третьей точки до четвертой
for i:=300 downto 100 do
begin
SetBrushColor(clWhite);
Circle (100, 100, 20);
Circle (300, 100, 20);
Circle (100, 300, 20);
Circle (300, 300, 20);
SetBrushColor(clRed);
Circle (i, 300, 20);
RedRaw;
ClearWindow(clWhite);
end;
//Движение от четвертой точки до первой
for i:=300 downto 100 do
begin
SetBrushColor(clWhite);
Circle (100, 100, 20);
Circle (300, 100, 20);
Circle (100, 300, 20);
Circle (300, 300, 20);
SetBrushColor(clGreen);
Circle (100, i, 20);
RedRaw; (вызывает перерисовку всей картинки)
ClearWindow(clWhite);
end;
end.
- Задача №2 Создание проезжающего грузовика
Program mashina;
Uses GraphAbc; // подключим графическую библиотеку GraphAbc
var x:integer;
Begin
SetWindowSize(1000,500); //установим размер окна
lockdrawing; (рисуем картинку в памяти компьютера не выводя промежуточный вариант сразу на экран)
x:=0;
repeat ( начинается цикл с постусловием)
clearwindow;( очищает графическое окно белым цветом)
SetPenColor(clRed);( устанавливает цвет пера, задаваемый параметром color.)
SetBrushColor(clRed);( устанавливает цвет кисти, задаваемый параметром color.
Rectangle(x,100,x+300,300);(задаем координаты прямоугольника с изменениями)
SetPenColor(clBlue);
SetBrushColor(clBlue);
Rectangle(x+300,200,x+400,300);
SetPenColor(clBlack);
SetBrushColor(clBrown);
Circle(x+100,300,50); задаем координаты прямоугольника с изменениями)
Circle(x+300,300,50);
sleep(50); (скорость движения рисунка)
x:=x+5;
redraw
until x>windowwidth (условие завершения анимации)
end.
Задача №2
uses graphABC;
var xx, i: integer;
procedure Parovoz(x: integer);
begin
line(x+400,300,x+361,329); (чертим линию между точками)
line(x+361,329,x+400,329);
lineto(x+400,300); (вычерчивает линию от последнего положения указателя до точки с координатами)
floodfill(x+399,303,clSilver); // закрашиваем замкнутую область серебрянным цветом
line(x+490,240,x+470,260);
line(x+490,240,x+510,260);
line(x+510,260,x+470,260);
floodfill(x+486,245,clSilver);
setbrushcolor(clSilver); (устанавливаем цвет кисти)
rectangle(x+470,260,x+510,310); (рисуем прямоугольники)
Rectangle(x+400,330, x+540, 300);
rectangle(x+525,300,x+535,250);
rectangle(x+420,290,x+440,301);
setbrushcolor(clwhite);
circle(x+430,340,10); //??????
circle(x+490,340,10); //??????
line(x+430,340,x+490,340);
rectangle(x+480,270,x+500,301);
//??????? +
circle(x+490,280,5); //??????
circle(x+489,279,1); //????
line(x+490,285,x+490,300); //?????
line(x+490,289,x+480,289);
//??????? -
//???
setbrushcolor(cldkgray);
circle(x+540+random(5),220+random(5),10+random(5));
circle(x+565+random(5),210+random(5),20+random(5));
circle(x+590+random(5),200+random(5),20+random(5));
circle(x+615+random(5),190+random(5),10+random(5));
end;
procedure Obl (x,y: integer);
begin
// verh
setbrushcolor(clblue);
circle(x+25+random(5),y+random(5),15 +random(5));
circle(x+52+random(5),y+random(5),19 +random(5));
circle(x+80+random(5),y+random(5),15 +random(5));
end;
procedure Fon;
begin
//?????? +
line(0,350,640,350); //??????? ?????
line(0,360,640,360);//?????? ?????
lineto(640,350); //??????? ?? ????? ?????
floodfill(351,359,clbrown);
//?????? -
setbrushcolor(clyellow);
circle(520,70,25);
end;
begin
xx:=500;
lockdrawing;
while true do (бесконечный цикл)
begin
clearwindow(clSkyBlue);
Fon;
Parovoz(xx);
for i:=1 to 3 do
Obl (i*100-50,i*50);
xx:=xx-5;
sleep(10);
redraw;
if xx<-700 then xx:=500;
end;
end.
Выводы
При написании исследовательской работы рассматривался вопрос создания графических изображений в среде программирования Pascal АВС.
В ходе исследования мы изучили:
Основные понятия графики, функции и процедуры, возможности создания графических изображений в среде программирования Pascal АВС.
Полученные при исследовании знания и навыки будут полезны нам при дальнейшей работе в Pascal АВС, а также при работе с другими языками программирования.
Цели и задачи которые мы ставили для себя были достигнуты.
По теме: методические разработки, презентации и конспекты
Анимация. Создание анимации средствами растрового редактора GIMP
Дидактический материал создан средствами программы Smart Notebook 10. Предназначен для использования на уроках информатики 8-9 классах (по учебнику Н.Д.Угриновича) или во внеурочной деятельности.Работ...
Урок в 9 классе по информатике на тему "Растровая и векторная анимация. GIF анимация"
В данном уроке показано, как создавать GIF анимацию на компьютере в растровом редакторе GIMP...
План-конспект занятия по анимации. Изобразительные возможности анимации
План-конспект 3 занятия из блока: пластилиновая техника анимации...
Конспект занятия по анимации. Определение общих принципов анимации.
Конспект занятия по анимации. 12 принципов анимации по У. Диснею. Знакомство с первым принципом....
Конспект открытого занятия "Компьютерная анимация" (Покадровая анимация. Визуализация)
Знакомство с историей анимации, технологией создания анимации, с дальнейшим созданием компьютерной покадровой анимации, в программе по созданию 2D анимации Synfing Studio.Обучающиеся знакомятся с...
Элективный курс анимации в языке Pascal ABC
В целях повышения интереса к изучению языков программирования в 8 классе, а также для закрепления материала из алгебры и геометрии (координаты на плоскости) учащимся предлагается попробовать свои силы...
Разработка занятия: «Компьютерная анимация. Анимация в программе GIMP »
Данная методическая разработка представляет собой проект открытого занятия «Компьютерная анимация. Анимация в программе GIMP» по дополнительной общеобразовательной общеразвиваю...