Содержание:
Графика в Паскале
Для работы с графикой в pascal abc используется модуль GraphABC. Для его подключения используется следующий код:
uses GraphABC; begin ... end. |
Система координат в Паскале соответствует экранной системе координат и выглядит следующим образом:
Управление цветом
Для того, чтобы использовать цвет, необходимо применить этот цвет к инструменту перо:
- SetPenColor(color) — устанавливает цвет пера, задаваемый параметром color;
- setBrushColor(color) — устанавливает цвет кисти, задаваемый параметром color;
- либо для палитры RGB: SetPenColor(rgb(0-255, 0-255, 0-255));
- FloodFill(x,y,color) — заливает область одного цвета цветом color, начиная с точки (x,y).
или использовать для заливки:
После чего можно использовать процедуры для рисования геометрических фигур.
clBlack – черный
clPurple – фиолетовый
clWhite – белый
clMaroon – темно-красный
clRed – красный
clNavy – темно-синий
clGreen – зеленый
clBrown – коричневый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
clCream – кремовый
clAqua – бирюзовый
clOlive – оливковый
clFuchsia – сиреневый
clTeal – сине-зеленый
clGray – темно-серый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clLtGray – светло-серый
clDkGray – темно-серый
clMedGray – серый
clSilver – серебряный
Точки, отрезки и ломаные
Для отображения точки в паскале используется процедура:
uses GraphABC; begin SetPixel(300,200,clred); end. |
Для рисования линии используется:
uses GraphABC; begin SetPenColor(clgreen); line(100,50,500,250); end. |
Ломаные можно рисовать с помощью процедур MoveTo (x1, y1)
и LineTo (x2, y2)
.
Процедуры работают в паре: MoveTo
передвигает курсор в определенную точку, а процедура LineTo
рисует линию с этой точки до точки, определенной параметром данной процедуры.
uses GraphABC; begin ... SetPenColor(clblue); MoveTo (x1, y1); LineTo (x2, y2); LineTo (x3, y3); LineTo (x4, y4); LineTo (x5, y5); end. |
[Название файла: L4_2task0.pas
]
Для установки размеров графического окна используется процедура
или, например:
SetWindowWidth(600); SetWindowHeight(400); |
Рисование фигур
uses GraphABC; begin Rectangle(50,50,200,200); end. |
uses GraphABC; begin Rectangle(50,50,200,200); FloodFill(100,100,clBlue); end. |
Line(x1,y1,x2,y2);
LineTo(x,y);
uses GraphABC; begin setpenwidth(20); setpencolor(clred); moveTo(300,100); lineTo(500,300); lineto(100,300); lineto(300,100); floodfill(300,200,clgreen); end. |
uses GraphABC; begin Circle(500,200,100); FloodFill(500,200,clred); end. |
1 2 3 4 5 | uses GraphABC; Begin SetPenWidth(10); Arc(300,250,150,45,135); end. |
Функция random для использования окраски
* раскрасить круги случайным цветом
[Название файла: L4_2task3.pas
]
Нарисуйте пару десятков концентрических окружностей, то есть окружностей разного радиуса, но имеющих общий центр.
[Название файла: L4_2task4.pas
]
Нарисовать штриховку на Паскале можно, используя процедуры рисования прямоугольника и линии:
Программа будет выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | uses graphABC; var i, x1, x2, y1, y2, N: integer; h, x: real; begin x1 := 100; y1 := 100; x2 := 300; y2 := 200; N := 10; Rectangle (x1, y1, x2, y2); h := (x2 - x1) / (N + 1); x := x1 + h; for i:=1 to N do begin Line(round(x), y1, round(x), y2); x := x + h; end; end. |
Нарисуйте шахматную доску.
[Название файла: L4_2task6.pas
]
Анимация в Паскале
Анимация в программировании заключается в том, что сначала рисуется фигура цветным инструментом, затем с тем же координатами рисуется та же фигура белым цветом. После чего происходит сдвиг фигуры и действия повторяются.
1 2 3 4 5 6 7 8 9 10 11 12 | uses GraphABC; var x:integer; begin x:=40; repeat SetPenColor(clWhite); Circle(x,100,10); {Рисуем белую окружность} SetPenColor(clBlack); Circle(x,100,10); {Рисуем черную окружность} x:=x+1 {Перемещаемся немного направо} until x>600; end. |
Нумерация заданий сбита
спасибо:) исправлено
а есть ли решения заданий?