При работе в графическом режиме изображение на экране строится не из символов, а из точек – пикселов. Каждый пиксель (точка) имеет две координаты: х и у При работе в графическом режиме изображение на экране строится не из символов, а из точек – пикселов. Каждый пиксель (точка) имеет две координаты: х и у
Геометрические размеры пикселя определяются разрешением монитора. Разрешение монитора задается в виде x x y, где x – количество возможных пикселов на экране по горизонтали, а y – количество пикселов по вертикали. Например, известны следующие разрешения мониторов: Геометрические размеры пикселя определяются разрешением монитора. Разрешение монитора задается в виде x x y, где x – количество возможных пикселов на экране по горизонтали, а y – количество пикселов по вертикали. Например, известны следующие разрешения мониторов: 320х200; 640x480; 800x600; 1024x768; 1280x1024 – и т.д.
Любая графическая картинка формируется из простых геометрических фигур. Это точки, отрезки (линии), прямоугольники, окружности и т.д. Из геометрии известно, что положение геометрического объекта и его форма задаются координатами его точек. Любая графическая картинка формируется из простых геометрических фигур. Это точки, отрезки (линии), прямоугольники, окружности и т.д. Из геометрии известно, что положение геометрического объекта и его форма задаются координатами его точек. Графические координаты задают положение точки на экране монитора. Поскольку минимальным элементом, к которому имеет доступ программист, является пиксель, в качестве графических координат используют порядковые номера пикселов.
Началом отсчета является левый верхний угол экрана. Значения х – координаты отсчитывается слева направо, а значения у – координаты – сверху вниз Началом отсчета является левый верхний угол экрана. Значения х – координаты отсчитывается слева направо, а значения у – координаты – сверху вниз
Важно помнить: Важно помнить: Графические координаты принимают только целочисленные значения. Графические координаты принимают значения, ограниченные как снизу (нулевым значением), так и сверху (значением разрешения экрана монитора). Графическая координата у отсчитывается сверху вниз.
Рисование различных геометрических фигур осуществляется с помощью специальных стандартных команд (процедур). Рисование различных геометрических фигур осуществляется с помощью специальных стандартных команд (процедур). Команды для работы в графическом режиме хранятся в библиотечном модуле GraphAbc. Подключение графического модуля: uses GraphABC;
В модуле GraphAbc с помощью команды setwindowsize(X,Y) можно задавать размеры графического окна. В модуле GraphAbc с помощью команды setwindowsize(X,Y) можно задавать размеры графического окна. По умолчанию графическое окно будет принимать размеры экрана компьютера.
program tochka; program tochka; uses graphabc; {подключение модуля GraphAbc} begin setwindowsize(640,480); {устанавливает размеры графического окна} setpixel(100,120,clBlack); {устанавливает черный цвет пера и рисует точку с координатами (100,120)} end.
Общий вид команды: Общий вид команды: Line(x1,y1,x2,y2), где (x1,y1) и (x2,y2) - координаты точек отрезка, которого соединяет линия.
Программа рисования отрезка, соединяющего две точки с координатами (120,150) и (150,80) красным цветом пера, может выглядеть так: Программа рисования отрезка, соединяющего две точки с координатами (120,150) и (150,80) красным цветом пера, может выглядеть так: program Linii; uses graphabc; begin setwindowsize(640,480); setpencolor(clred); {устанавливает красный цвет пера} line(120,150,300,100); {рисует отрезок от точки с координатами(120,150)до точки с координатами с координатами (300,100)} end.
program treugolnik; program treugolnik; uses graphabc; begin setwindowsize(640,480); setpenwidth(5); {устанавливает ширину текущего пера. В скобках указывается количество пикселей, образующих ширину линии} setpencolor(clred); {устанавливает красный цвет пера} line(100,200,170,70); {рисует отрезок от точки с координатами (100,200)до точки с координатами с координатами (170,70)} setpencolor(clGreen); {устанавливает зеленый цвет пера} line(170,70,250,200); {рисует отрезок от точки(170,70) до точки(250,200)} setpencolor(clBlue); {устанавливает синий цвет пера} line(250,200,100,200); {рисует отрезок от точки(250,200) до точки(100,200)} {результат - треугольник со сторонами разных цветов} end.
Важно помнить: Важно помнить: Рисуя линии, можно задавать ее размер (координатами ее концов), цвет, ширину (толщину) и стиль. Для задания стиля линии в модуле GraphAbc существует процедура SetPenStyle (Style), где Style - константы стилей пера (см. Приложение к главе 3). Линия может быть сплошной, пунктирной, штрихпунктирной, штриховой.
Program treug_zakrash; Program treug_zakrash; uses graphabc; begin setwindowsize(640,480); clearwindow(clWhite); {очищает графическое окно белым цветом} setpenwidth(3); {устанавливает ширину текущего пера} setpenstyle(pssolid); {устанавливает стиль линии – сплошная линия} setpencolor(clgreen); {устанавливает зеленый цвет пера} line(100,200,170,70); {рисует линии зеленым цветом} line(170,70,250,200); line(250,200,100,200); floodfill(440,120,clred); {Закрашивает треугольник красным цветом} end.
Важно помнить: Важно помнить: Закрашивать можно только замкнутые фигуры, контур которых нарисован одним цветом. В процедуре заливки floodfill(х,у,c) указывается координата точки (х,у), которая обязательно должна попасть во внутреннюю область закрашиваемой фигуры.
Прямоугольники можно рисовать с помощью команды rectangle(x1,y1,x2,y2) Прямоугольники можно рисовать с помощью команды rectangle(x1,y1,x2,y2) Окружности можно рисовать с помощью команды circle(x,y,r)
program gemetry; program gemetry; uses graphabc; begin setwindowsize(640,480); setpencolor(clBlue); {устанавливает голубой цвет пера для рисования контура прямоугольника} setpenwidth(6); {устанавливает ширину пера} rectangle(50,50,250,150); {рисует прямоугольник, заданный координатами противоположных вершин} setpencolor(clred); {устанавливает красный цвет пера для рисования контура окружности} circle(350,100,60); {рисует окружность с центром в точке с координатами (350,100) и радиусом 60} end.
program gemetry3; program gemetry3; uses graphabc; Begin setwindowsize(640,480); clearwindow(clYellow); {устанавливает желтый цвет фона} setpencolor(clteal); {устанавливает сине-зеленый цвет пера} setpenwidth(5); {устанавливает ширину линии} setbrushcolor(clolive); {устанавливает оливковый цвет кисти} rectangle(100,100,300,200); {рисует закрашенный оливковым цветом прямоугольник} setbrushcolor(clblue); {устанавливает синий цвет кисти} circle(400,150,50); {рисует закрашенный синим цветом круг} setfontstyle(fsbold); {устанавливает стиль шрифта} setfontsize(15); {устанавливает размер шрифта} setbrushcolor(clwhite); {устанавливает белый цвет кисти} setfontcolor(clolive); {устанавливает оливковый цвет шрифта} textout(100,220,'Прямоугольник'); {делает надпись} setfontcolor(clblue); {устанавливает синий цвет шрифта} textout(380,220,'Круг'); {делает надпись} end.
Из приведенного выше примера видно, что рисовать можно на «холсте» определенного цвета, который задается с помощью процедуры установки цвета графического окна clearwindow(color). Из приведенного выше примера видно, что рисовать можно на «холсте» определенного цвета, который задается с помощью процедуры установки цвета графического окна clearwindow(color). Закрасить прямоугольник и круг можно, используя процедуру закраски кистью setbrushcolor (color)
С помощью процедур setfontcolor, setfontstyle, setfontsize, setbrushcolor, textout рисунки можно подписать. С помощью процедур setfontcolor, setfontstyle, setfontsize, setbrushcolor, textout рисунки можно подписать.
program skvoreshnik; program skvoreshnik; uses graphabc; begin setwindowsize(1280,1024); clearwindow(clwhite); {устанавливает белый цвет фона} setpencolor(clteal); {устанавливает сине-зеленый цвет пера} setpenwidth(5); {устанавливает ширину линии} rectangle(100,150,250,300); {рисует прямоугольник} setbrushcolor(clyellow); {устанавливает желтый цвет кисти для закраски круга} circle(170,200,25); {рисует закрашенный желтым цветом круг} floodfill(150,160,clBrown); {закрашивает коричневым цветом прямоугольник - стену скворечника} line (100,150,175,90); {эти линии рисуют крышу} line (175,90,250,150); floodfill(175,100,clgreen); {Закрашивает треугольник (крышу) коричневым цветом} end.
В модуле graphabc имеется еще и другие команды рисования графических примитивов, например, команда рисования эллипса. Зная основы работы в графическом режиме, их вы сможете изучить самостоятельно (см. Приложение к главе 3). В модуле graphabc имеется еще и другие команды рисования графических примитивов, например, команда рисования эллипса. Зная основы работы в графическом режиме, их вы сможете изучить самостоятельно (см. Приложение к главе 3).