Лекция: Программирование графики
Графический режим
|
После запуска PascalABC, по умолчанию, запускается текстовый режим. Для работы с графикой служит отдельное графическое окно. Чтобы его открыть, необходимо подключить модуль GraphABC.В этом модуле содержится обширный набор процедур и функций, предназначенных для работы с графическим экраном, а также некоторые встроенные константы и переменные, которые могут быть использованы в программах с графикой. С их помощью можно создавать разнообразные графические изображения и сопровождать их текстовыми надписями.
Шаблон графической программы
Program <имя программы>;
Uses graphABC;
Var <список переменных>:<тип переменных>;
Begin
<здесь находится непосредственно
блок решения задачи>
End.
Uses graphABC - подключение модуля библиотеки графических процедур;
Модуль GraphABC
Модуль GraphABC содержит процедуры и функции для рисования в графическом окне. Они подразделяются на следующие группы:
§ Действия с графическим окном;
§ Графические примитивы;
§ Действия с цветом;
§ Действия с пером;
§ Действия с кистью;
§ Действия со шрифтом.
Действия с графическим окном
SetWindowTitle('Заголовок'); Устанавливает заголовок графического окна
SetWindowSize(w,h); Устанавливает размеры клиентской части графического окна в пикселах
SetCoordinateOrigin(x0,y0); Устанавливает начало координат в точку (x0,y0)
SetCoordinateScale(sx,sy); Устанавливает масштаб системы координат
SetCoordinateAngle(a); Устанавливает поворот системы координат.
Графические примитивы
Формат записи | Как работает |
Setpixel(x,y,color); | Закрашивает один пиксель с координатами (x,y) цветом color. |
Line(x1,y1,x2,y2); | Вычерчивает линию от точки c координатами (x1,y1) до точки (x2,y2). |
Rectangle(x1,y1,x2,y2); | Рисует контур прямоугольника со сторонами, параллельными сторонам экрана. Точки с координатами (х1,у1) и (х2,у2) определяют диагональ прямоугольника. |
RoundRect(х1,у1,х2,у2,w,h); | Рисует прямоугольник со скругленными краями. Точки с координатами (х1,у1) и (х2,у2) определяют диагональ прямоугольника., а w и h — ширину и высоту эллипса, используемого для скругления краев. |
Circle(x,y,R); | Рисует окружность радиуса R с центром в точке с координатами (x,y). |
Ellipse(x1,у1,х2,y2); | Рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2). |
Аrc(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). |
MoveTo(x,y); | Передвигает невидимое перо к точке с координатами (x,y); эта функция работает в паре с функцией LineTo (x,y). |
LineTo(x,y); | Рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y). |
TextOut(x,y,s); | Выводит строку s в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст из строки s). |
FloodFill(x,y,c); | Заливает область одного цвета цветом c, начиная с точки (x,y). |
FillRect(x1,y1,x2,y2); | Заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти. |
Примитивы для рисования
PutPixel(x,y,C); Закрашивает пиксел с координатами (x,y) цветом c;
LineTo(x,y); Рисует отрезок от текущей позиции до точки (x,y). Текущая
позиция переносится в точку (x,y);
Line(x1,y1,x2,y2); Рисует отрезок от точки (x1,y1) до точки (x2,y2);
Line(x1,y1,x2,y2,c); Рисует отрезок от точки (x1,y1) до точки (x2,y2) цветом c;
DrawCircle(x,y,r); Рисует окружность с центром (x,y) и радиусом r;
DrawEllipse(x1,y1,x2,y2); Рисует границу эллипса, ограниченного
прямоугольником, заданным координатами противоположных вершин (x1,y1) и (x2,y2)
DrawRectangle(x1,y1,x2,y2); Рисует границу прямоугольника, заданного
координатами противоположных вершин (x1,y1) и (x2,y2)
Arc(x,y,r,a1,a2); Рисует дугу окружности с центром в точке (x,y) и радиусом r,
заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 –
вещественные, задаются в градусах и отсчитываются против часовой стрелки)
DrawPie(x,y,r,a1,a2); Рисует сектор окружности, ограниченный дугой с
центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими
углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются
против часовой стрелки)
TextOut(x,y,'Текст'); Выводит строку s в прямоугольник к координатами левого
верхнего угла (x,y)
FloodFill(x,y,с);Заливает область одного цвета цветом c, начиная с точки (x,y).
Имена цветов (Color)
Стандартные цвета задаются символическими константами:
clBlack – черный
clPurple – фиолетовый
clWhite – белый
clMaroon – темно-красный
clRed – красный
clNavy – темно-синий
clGreen – зеленый
clBrown – коричневый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
clCream – кремовый
clAqua – бирюзовый
clOlive – оливковый
clFuchsia – сиреневый
clTeal – сине-зеленый
clGray – темно-серый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clLtGray – светло-серый
clDkGray – темно-серый
clMedGray – серый
clSilver – серебряный
В место константы можно использовать функцию RGB(r,g,b:);
Возвращает целое значение, являющееся кодом цвета, который содержит красную, зеленую и синюю составляющие с интенсивностями r, g и b соответственно (r, g и b – целые в диапазоне от 0 до 255, причем, 0 соответствует минимальной интенсивности, 255 – максимальной).
Begin
SetWindowSize(556,456); {Устанавливает размер окна}
SetPenColor(RGB(0,0,255));
Line(0,0, WindowWidth, WindowHeight);
Line(0,WindowHeight, WindowWidth, 0)
end.
Программа рисования окружности :
program z3;
uses graphABC;
Begin
setpencolor(clBlue); {устанавливает цвет рисования окружности - синий}
setpenstyle(psdot); {устанавливает стиль линии рисования окружности – пунктирная линия}
setpenwidth(3); {устанавливает ширину линии рисования окружности }
setbrushstyle(bsSolid ); {устанавливает стиль заливки окружности}
setbrushcolor(clred); {устанавливает цвет заливки окружности}
circle(225,160,50); {рисует окружность}
end.
Begin
setpencolor(clpurple); {устанавливает цвет рисования линий - фиолетовый}
line(100,100,400,300); {рисует линию от точки (100,100) до точки (400,300)}
line(400,300,20,300); {рисует линию от точки (400,300) до точки (20,300)}
line(100,100,20,300); {рисует линию от точки (100,100) до точки (20,300)}
floodfill(150,250,clBlue);{заливает полученную замкнутую область (в программе
треугольник) синим цветом, начиная с точки
(150,250}
SetBrushStyle(bsHatch);
{SetBrushHatch(bhVertical);} {устанавливает стиль штриховки
вертикальными линиями}
DrawEllipse(400,100,600,200);
FillEllipse(400,100,600,200);
{Заполняет и рисует прямоугольник}
FillRect(400,300,600,480);
DrawRectangle(400,300,600,480);
end.
Действия со шрифтом
Формат записи | Как работает | ||||||||||||||||||
SetFontColor(color); | Устанавливает цвет шрифта (смотри таблицу цветов). | ||||||||||||||||||
SetFontSize(sz); | Устанавливает размер шрифта в пунктах. | ||||||||||||||||||
SetFontName(s); | Устанавливает наименование шрифта. По умолчанию установлен шрифт, имеющий наименование MS Sans Serif. Наиболее распространенные шрифты – это Times New Roman, Arial и Courier New. Наименование шрифта можно набирать без учета регистра. | ||||||||||||||||||
SetFontStyle(fs); | Устанавливает стиль шрифта ( fs ), который задается следующими именованными константами:
|
program z1; uses graphABC; begin setpencolor(clred); setbrushcolor(clnavy); ellipse(40,150,250,210); setbrushcolor(clyellow); ellipse(340,150,550,210); setbrushcolor(clred); circle(295,190,25); setbrushcolor(clolive); ellipse(265,225,325,425); setbrushcolor(cllime); ellipse(265,5,325,150); end. | program z2; uses graphABC; begin setwindowsize(500,500); setpenwidth(3); setbrushcolor(clfuchsia); circle(225,160,50); line(225,160,225,180); line(210,190,240,190); line(225,210,225,250); line(100,100,200,260); line(200,260,400,260); line(210,350,200,480); line(240,350,250,480); rectangle(200,230,250,350); setbrushcolor(cllime); fillrect(0,480,500,500); setbrushcolor(clwhite); circle(205,150,10); circle(245,150,10); end. |
Лекция: Программирование графики
Графический режим
|
После запуска PascalABC, по умолчанию, запускается текстовый режим. Для работы с графикой служит отдельное графическое окно. Чтобы его открыть, необходимо подключить модуль GraphABC.В этом модуле содержится обширный набор процедур и функций, предназначенных для работы с графическим экраном, а также некоторые встроенные константы и переменные, которые могут быть использованы в программах с графикой. С их помощью можно создавать разнообразные графические изображения и сопровождать их текстовыми надписями.
Дата: 2019-03-05, просмотров: 264.