Ввод графической информации может быть осуществлён с различных устройств: клавиатуры, мыши, сканера или графического планшета. Каждое из них имеет те или иные достоинства, но основной характеристикой является удобство использования. Клавиатура плохо подходит для построения изображений, так как она изначально предназначена для набора символьной, а не графической информации. Однако применение клавиатуры для ввода графической информации имеет определённые преимущества. С клавиш можно перемещать курсор каждый раз на одну позицию.
procedure ColArc(x, y: integer; r: integer; nc: byte); begin SetPenColor(rgb(c[nc, 1], c[nc, 2], c[nc, 3])); Arc(x, y, r + 10, 0, 180); Arc(x, y, r - 10, 0, 180); line(x - r - 11, y - 2, x - r + 11, y - 2); line(x + r - 11, y - 2, x + r + 11, y - 2); floodfill(x, y - r, rgb(c[nc, 1], c[nc, 2], c[nc, 3])); end;
begin setwindowsize(500, 300); for i := 1 to 7 do ColArc(250, 300, 100 + (i * 20), i); end.
const
c: array [1..7, 1..3] of byte = ((50, 50, 133), (0, 0, 255), (0, 160, 227), (0, 255, 0), (255, 255, 0), (239, 127, 26), (255, 0, 0));
var
i: byte;
procedure ColArc(x, y: integer; r: integer; nc: byte);
begin
SetPenColor(rgb(c[nc, 1], c[nc, 2], c[nc, 3]));
Arc(x, y, r + 10, 0, 180);
Arc(x, y, r - 10, 0, 180);
line(x - r - 11, y - 2, x - r + 11, y - 2);
line(x + r - 11, y - 2, x + r + 11, y - 2);
floodfill(x, y - r, rgb(c[nc, 1], c[nc, 2], c[nc, 3]));
end;
begin
setwindowsize(500, 300);
for i := 1 to 7 do
ColArc(250, 300, 100 + (i * 20), i);
end.