Лекция: Программирование графики
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Лекция: Программирование графики

Графический режим

       0 100 200 300 400 500 600     640
    В графическом режиме экран представляет собой совокупность точек, каждая из которых может быть окрашена в один из 16 цветов.Каждая точка экрана имеет свои координаты (х,у).Начало координат находится в верхнем левом углу экрана.Координаты точек возрастают слева направо и сверху вниз. Левая верхняя точка имеет координаты (0,0), а правая нижняя имеет координаты (640,480).Для того, чтобы программа могла выводить на экран графические примитивы (линии, окружности, прямоугольники и т.п.), необходимо инициализировать графический режим.

 

 

 


    После запуска 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 ), который задается следующими именованными константами:  
Константа Стиль шрифта
fsNormal обычный
fsBold жирный
fsItalic наклонный
fsBoldItalic жирный наклонный
fsUnderline подчеркнутый
fsBoldUnderline жирный подчеркнутый
fsItalicUnderline наклонный подчеркнутый
fsBoldItalicUnderline жирный наклонный подчеркнутый

 


 

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.



Лекция: Программирование графики

Графический режим

       0 100 200 300 400 500 600     640
    В графическом режиме экран представляет собой совокупность точек, каждая из которых может быть окрашена в один из 16 цветов.Каждая точка экрана имеет свои координаты (х,у).Начало координат находится в верхнем левом углу экрана.Координаты точек возрастают слева направо и сверху вниз. Левая верхняя точка имеет координаты (0,0), а правая нижняя имеет координаты (640,480).Для того, чтобы программа могла выводить на экран графические примитивы (линии, окружности, прямоугольники и т.п.), необходимо инициализировать графический режим.

 

 

 


    После запуска PascalABC, по умолчанию, запускается текстовый режим. Для работы с графикой служит отдельное графическое окно. Чтобы его открыть, необходимо подключить модуль GraphABC.В этом модуле содержится обширный набор процедур и функций, предназначенных для работы с графическим экраном, а также некоторые встроенные константы и переменные, которые могут быть использованы в программах с графикой. С их помощью можно создавать разнообразные графические изображения и сопровождать их текстовыми надписями.

 

 


Дата: 2019-03-05, просмотров: 238.