Графика в АВС - Паскале
Автор: учитель математики и информатики МКОУ «Киикская средняя школа» НСО
Ливанова Татьяна Юрьевна
Цель:
Развитие алгоритмического мышления у учащихся;
Освоения основных алгоритмических конструкций;
Овладение навыками программирования;
Подготовка учащихся к успешному участию в олимпиадах различных уровней.
Планируемые результаты
Личностные
Планируемые результаты
Предметные
Планируемые результаты
Метапредметные
Изучение построено на примерах освоения работы с
1) Исполнителями:
Робот,
Черепашка,
Чертежник;
2) Построение алгоритмов с помощью конструктора блок – схем;
3) Составление программ на языках программирования (Паскаль).
Инициализация графического режима
Для рисования необходимо инициализировать графический режим.
В наших примерах рассматривается стандартный режим VGA – 640x480.
ABC-Pascal
uses GraphABC;
по умолчанию VGA-режим
Система координат:
Поскольку текст выводится слева-направо, сверху-вниз, то и в графическом режиме стандартная система координат выглядит так:
О
Х
У
Графические примитивы
SetPixel(x,y,c);
точка
SetPenColor(c);
Line (x1,y1,x2,y2);
линия
SetPenColor(c);
Circle(x,y,r);
окружность
SetPenColor(c);
Rectangle (x1,y1,x2,y2);
прямоугольник
SetPenColor(c);
SetBrushColor(c);
Rectangle (x1,y1,x2,y2);
прямоугольник закрашенный
SetPenColor(c);
Arc (x,y,r,a1,a2);
дуга; a1-начало дуги в градусах, a2-конец дуги в градусах
SetPenColor(c);
Ellipse (x,y,a1,a2,rx,ry);
эллипсная дуга; rx,ry – радиусы эллиса по соотв. осям.
FloodFill(x,y,c);
Заливает область, начиная с точки x,y, цветом c.
Здесь х,у – координаты, с – цвет.
Цвет
В ABC-Pascal цвет линии задается функцией SetPenColor(c); цвет заливки – SetBrushColor(c);
Цвета в PAscal – см. граф. константы (clblack, clwhite) или через RGB(<уровень красного>,<уровень зеленого>, <уровень синего>).
Таблица цветов
clBlack – черный clPurple – фиолетовый clWhite – белый clMaroon – темно-красный clRed – красный clNavy – темно-синий clGreen – зеленый clBrown – коричневый clBlue – синий clSkyBlue – голубой clYellow – желтый clCream – кремовый
clAqua – бирюзовый clOlive – оливковый clFuchsia – сиреневый clTeal – сине-зеленый clGray – темно-серый clLime – ярко-зеленый clMoneyGreen – цвет зеленых денег clLtGray – светло-серый clDkGray – темно-серыйclMedGray – серыйclSilver – серебряный
Создаем анимации
LockDrawing – Запрет на показ предыдущих изображений;
ClearWindow – Очистить экран;
Redraw – Вернуть изображение;
Sleep(k) – Задержка экрана на к миллисекунд.
Программа
program RPOCLAB; | SetPenColor(clGreen); | SetPenColor(clYellow); |
Космос(графика в Паскале)
Автор: ученик 7 класса МБОУ Тогучинского района «Киикская средняя школа»
Никита Кирюшин
Наставник - руководитель внеурочного курса
«Учимся программировать»: Ливанова Татьяна Юрьевна
Цель:
Изучить графические возможности среды программирования АВС - Паскаль;
Научиться создавать движение средствами программирования в среде АВС- Паскаль.
План выполнения работы
Пишем код круга;
В центре рисуем желтое Солнце;
Создаем планеты, с помощью цикла организуем их перемещение;
Для одной из планет пишем код для создания колец;
Добавляем звезды;
Заливаем фон.
Код круга
пишем процедуру planeta, где x, y - координаты центра планеты, c - цвет, r -радиус планеты.
procedure planeta(x,y,c,r:integer);
begin
setpencolor(c);
setbrushcolor(c);
circle(x,y,r);
end;
Планеты
c:=clbrown;
r:=15;
d:=100;
x:=trunc(500+d*cos((i*3.14)/180));
y:=trunc(400+d*sin((i*3.14)/180));
planeta(x,y,c,r);
c:=clblue;
r:=20;
d:=150;
x:=trunc(500+d*cos((2*(i+150)*3.14)/180));
y:=trunc(400+d*sin((2*(i+150)*3.14)/180));
planeta(x,y,c,r);
c:=clred;
r:=25;
d:=300;
x:=trunc(500+d*cos(((i-100)*3.14)/180));
y:=trunc(400+d*sin(((i-100)*3.14)/180));
planeta(x,y,c,r);
Кольцо Третьей планеты
x0:=x;
y0:=y;
for j:=0 to 345 do
begin
x:=trunc(x0+50*cos((3.14*j)/180));
y:=trunc(y0+50*sin((3.14*j)/180));
r:=5;
c:=rgb(200,200,200);
planeta(x,y,c,r);
end;
Звезды
for j:=1 to 8 do
begin
x:=trunc(random(1000));
y:= trunc(random(1000));
r:=trunc(random(10));
c:=rgb(trunc(random(255)),trunc(random(255)),trunc(random(255)));
planeta(x,y,c,r);
end;
Еще несколько штрихов
Clerwindow
Lockdrawing
Redraw
Sleep (100)
Очистка экрана (в начале цикла, стирает предыдущую картинку)
Рисовать на скрытом экране (предотвращает мигание экрана)
Вернуть картинку на экран
Задержка картинки (100 мс)
Код (полностью)
program nebo;
uses graphabc;
var i,j,x,y,k,c,r,d:integer;
var x0,y0:integer;
// Процедура "Планета"
procedure planeta(x,y,c,r:integer);
begin
setpencolor(c);
setbrushcolor(c);
circle(x,y,r);
end;
//Начало
begin
//Количество оборотов планет вокруг солнца
for k:=1 to 10 do
begin
//Прорисовка картины
for i:=0 to 360 do
begin
clearwindow;
lockdrawing;
//Солнце
setpencolor(clyellow);
setbrushcolor(clyellow);
circle(500,400,50);
//Первая планета
c:=clbrown;
r:=15;
d:=100;
x:=trunc(500+d*cos((i*3.14)/180));
y:=trunc(400+d*sin((i*3.14)/180));
planeta(x,y,c,r);
//Третья планета
c:=clred;
r:=25;
d:=300;
x:=trunc(500+d*cos(((i-100)*3.14)/180));
y:=trunc(400+d*sin(((i-100)*3.14)/180));
planeta(x,y,c,r);
//Кольцо вокруг третьей планеты
x0:=x;
y0:=y;
for j:=0 to 345 do
begin
x:=trunc(x0+50*cos((3.14*j)/180));
y:=trunc(y0+50*sin((3.14*j)/180));
r:=5;
c:=rgb(200,200,200);
planeta(x,y,c,r);
end;
//Звезды
for j:=1 to 8 do
begin
x:=trunc(random(1000));
y:= trunc(random(1000));
r:=trunc(random(10));
c:=rgb(trunc(random(255)),trunc(random(255)),trunc(random(255)));
planeta(x,y,c,r);
end;
//Фон космического пространства
floodfill(1,1,clblack);
redraw;
sleep(100);
end; end;
end.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.