Читаем Язык программирования ABC PASCAL полностью

clBlack – черный

clCream – кремовый

clPurple – фиолетовый

clAqua – бирюзовый

clWhite – белый

clOlive – оливковый

clMaroon – темно-красный

clFuchsia – сиреневый

clRed – красный

clTeal – сине-зеленый

clNavy – темно-синий

clGray – серый

clGreen – зеленый

clLime – ярко-зеленый

clBrown – коричневый

clLightGray – светло-серый

clBlue – синий

clMoneyGreen – цвет зеленых денег

clSkyBlue – голубой

clDarkGray – темно-серый

clYellow – желтый

Задание стиля и цвета пера

* SetPenColor(цвет) – устанавливает цвет пера, задаваемый параметром color.

* SetPenWidth(ширина) – устанавливает ширину пера.

* SetPenStyle(стиль) – устанавливает стиль пера (сплошной, пунктир и т.п.), возможные значения указаны в таблице (стиль применим только к ширине пера 1 пиксел)

psSolid

psDash

psDashDot

psClear

psDot

psDashDotDot

Текущее перо используется для рисования линий, прямоугольников, ломаных, окружностей, эллипсов, дуг и т.п.

Пример:

Program Gr02;

Uses GraphABC;

Var i : integer;

begin

SetWindowSize(512,512);

SetPenStyle(psDash);

SetBrushStyle(bsClear);

Circle (256,256,WindowHeight div 2);

end.

- 12 -

Задание стиля и цвета кисти

* SetBrushColor(цвет) – устанавливает цвет кисти

* SetBrushPicture(имя файла) – устанавливает в качестве образца для закраски кистью образец, хранящийся в файле, при этом текущий цвет кисти при закраске игнорируется.

* ClearBrushPicture – очищает рисунок-образец, выбранный для кисти.

* SetBrushStyle(стиль) – устанавливает стиль кисти, задаваемый параметром bs.

Возможные стили кисти:

bsSolid bsClear bsCross bsDiagCross bsHorizontal bsBDiagonal bsVertical bsFDiagonal

Текущей кистью закрашиваются все замкнутые фигуры, контур фигур рисуется текущим пером. Чтобы нарисовать не закрашенную фигуру, используйте SetBrushColor(bsClear).

Пример:

Program Gr03;

Uses GraphABC;

Var i,j : integer;

begin

SetWindowSize(512,512);

SetBrushColor(rgb(128,0,255));

SetBrushStyle(bsDiagCross);

Rectangle(10,10,WindowWidth-10,WindowHeight-10);

end.

Некоторые графические примитивы[6]

* Line(x1, y1, x2, y2) – рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).

* Circle(x,y,r) – рисует окружность с центром в точке (x,y) и радиусом r.

* Ellipse(x1, y1, x2, y2) – рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2).

* Rectangle(x 1,y1,x2,y2) – рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).

* RoundRect(x 1,y1,x2,y2,w,h) – рисует прямоугольник со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев.

* Arc(x,y, r, a1,a2) – рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).

* Pie(x,y,r,a1,a2) – рисует сектор окружности, ограниченный дугой (параметры процедуры имеют тот же смысл, что и в процедуре Arc).

* Chord(x,y, r, a1,a2) – рисует фигуру, ограниченную дугой окружности и отрезком, соединяющим ее концы (параметры процедуры имеют тот же смысл, что и в процедуре Arc).

* FloodFill(x,y,color) – закрашивает область одного цвета, начиная с точки (x,y) цветом color.

Задание:

Напишите программу, использующую не менее трех процедур рисования, которая рисовала бы несложный рисунок (домик, автомобиль, и т.п.)

- 13 -

Пример решения задания

Program avto;

uses graphABC;

var i : integer;

begin

SetWindowSize (800,600);

SetPenStyle (psClear); // верхняя часть автомобиля

setBrushColor (Clgreen);

rectangle (250,250,550,351);

setBrushColor (ClAqua); // окна

rectangle (255,255,395,345);

rectangle (405,255,545,345);

setBrushColor (Clgreen); // корпус

rectangle (50,350,750,500);

setBrushColor (ClYellow); // фары

rectangle (749,375,764,400);

setBrushColor (ClRed);

rectangle (35,375,51,400);

setBrushColor (ClLightGray); // бампер

RoundRect (725,450,775,475,10,10);

RoundRect (25,450,75,475,10,10);

SetPenStyle (psSolid); // двери

Перейти на страницу:

Похожие книги