Планируемые результаты
Метапредметные
Ученик научится планировать свои действия, понимать и принимать учебную задачу, сформулированную учителем, прислушиваться к мнению одногруппников, находить и исправлять свои ошибки, презентовать свои работы.
Ученик получит возможность научиться проявлять инициативу, мыслить творчески.
Инициализация графического режима
Для рисования необходимо инициализировать графический режим.
В наших примерах рассматривается стандартный режим 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.
Здесь х,у – координаты, с – цвет.
Таблица цветов
clBlack – черный clPurple – фиолетовый clWhite – белый clMaroon – темно-красный clRed – красный clNavy – темно-синий clGreen – зеленый clBrown – коричневый clBlue – синий clSkyBlue – голубой clYellow – желтый clCream – кремовый
clAqua – бирюзовый clOlive – оливковый clFuchsia – сиреневый clTeal – сине-зеленый clGray – темно-серый clLime – ярко-зеленый clMoneyGreen – цвет зеленых денег clLtGray – светло-серый clDkGray – темно-серыйclMedGray – серыйclSilver – серебряный
Программа
program RPOCLAB; | SetPenColor(clGreen); | SetPenColor(clYellow); |
Планеты
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);
Звезды
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;
Код (полностью)
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.
© ООО «Знанио»
С вами с 2009 года.