русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Урок 11 — <<Графіка в Паскале>> Приклади

Графіка в Паскале будується за допомогою підключення модуля Граф, тобто на екрані комп'ютера можна отримувати не тільки послідовності символів, але й різноманітні малюнки, схеми, малюнки. У нашому прикладі - це побудувати графік функції в Паскале. Для цього в Паскаль включаються спеціальні засоби - графічні процедури і оператори, які знаходяться в модулі Graph (uses Graph;).

Мета уроку - це познайомитися з можливостями графічних операторів, побудова графічних зображень в Паскале.

Слід зазначити, що графічне зображення на екрані складається з точок (наприклад, фотографії у газетах, журналах та ін.). Кількість точок (пікселів) на екрані залежить від роздільної здатності екрана. Кожна точка задається двома координатами (x, y). Точка з координатами (0,0) знаходиться у верхньому лівому куті екрана. Вісь Х спрямована вправо, а ось У вниз.

Процес побудови зображень за допомогою графічних процедур розбивається на окремі етапи:

1. Перемкнути монітор в графічний режим з допомогою оператора InitGraph (Driver, mode, <шлях до драйвера>).
2. Встановити роздільну здатність екрана за замовчуванням режимом Detect або процедурою SetGraphMode. Режим Detect встановлює роздільну здатність екрана 640*480 пікселів, тобто координата Х може приймати значення від 0 по 639, а від 0 за 479.
3. Очистити і ініціалізувати графічний екран процедурою ClearDevice.
4. Встановити колір фону оператором SetBkColor і колір зображення оператором SetColor.
5. Вивести на екран точки, відрізки, прямокутники, дуги, кола, еліпси.
6. Вивести на екран зафарбовані фігури.
7. Вивести тексти та підписи на екран. Для використання операторів Write і Writeln в графічному режимі необхідно виконати наступну операцію присвоювання : DirectVideo := FALSE; Або використовувати процедуру Outtextxy(x,y,св), яка виводить рядок st, починаючи з позиції x, y.

Кольору в операторах задаються за допомогою своїх кодів:

0 - чорний; 4 - червоний; 8 - темно-сірий; 12 - яскраво-червоний;
1 - синій; 5 - пурпурний; 9 - яскраво-синій; 13 - яскраво-пурпурний;
2-зелений; 6 - коричневий; 10 - яскраво-зелений; 14 - жовтий;
3 - бірюзовий; 7 - світло-сірий; 11 - яскраво-бірюзовий; 15 - білий.

Цифрове кодування кольору відповідає послідовності IRGB для 0-3 бітів. Біт 3 - біт інтенсивності I, біт 2 - біт червоного R, біт 1 - біт зеленого G, біт 0 - біт синього B. Наприклад, 11=8+2+1, тобто біти 3,1,0 - інтенсивний синьо-зелений (бірюзовий).

Основні графічні оператори для побудови зображень:

PutPixel (X, Y, колір) - висновок точки на екран, де X, Y - координати точки ;
Line ( X1, Y1, X2, Y2 ) - проводить лінію з точки з координатами (X1, Y1 ) в точку з координатами ( X2, Y2 );
Rectangle (X1, Y1, X2, Y2 ) - прямокутник зі сторонами, паралельними осям координат; (X1, Y1), (X2, Y2) - координати, що визначають одну з діагоналей прямокутника ;
Bar ( X1, Y1, X2, Y2 ) - зафарбований прямокутник (без окантовки);
Circle ( X, Y, радіус ) - на екран виводиться коло з центром в точці ( X, Y )(тип integer) ;
Arc (X, Y, початковий кут, кінцевий кут, радіус) - на екран виводиться дуга кола з центром в точці (X, Y ); кути задаються в градусах; дуга малюється ПРОТИ годинникової стрілки;
Ellipse ( X, Y, початковий кут, кінцевий кут, горизонтальний радіус, вертикальний радіус) - на екран виводиться еліптична дуга з центром у точці з координатами ( X, Y ) (тип integer);
SetFillStyle (заповнення, колір) - визначення виду і кольору заповнення області;
FloodFill (x, y, колір кордону) - заливання замкненій області.

Приклад програми побудови графіка функції.

program graphic;
uses graph;
var driver, mode, errorcode : integer; xm,ym,i,j : integer;
pi,pi300,x1,y1,x2,y2, sc : real;
st1,st2,st3 : string;
function f(x:real) : real;
begin
f:=sin(x)+sin(2*x)+sin(3*x)-1-cos(x)-cos(2*x);{ функція для побудови}
end; {графіка}
begin
st1:="x";st2:="y";
st3:=" Press ENTER";
sc:=50;
driver:=9; {egavga}
mode:=2; {640х480 пікселів}
initgraph(driver,mode,"d:\bp\bgi"); {ініціалізація графічного режиму }
errorcode:=graphresult;
if errorcode<>grok then {} помилка
begin
writeln("Error init Graph");
closegraph;
halt;
end;
xm:=getmaxx div 2;
ym:=getmaxy div 2;
{ xm=320;ym=240;центр екрану}
line(xm,20,xm,460);{вісь y}
line(20,ym,620,ym);{ вісь x}
outtextxy(630,ym,st1); {маркування осі х}
outtextxy(xm,10,st2); {маркування осі у}
pi:=3.1415926; pi300:=pi/300;
x1:=-pi;
for i:=0 to 24 do {розмітка осі х вертикальними рисками}
begin
line(xm+round(80*x1),230,xm+round(80*x1),250);
x1:=x1+pi300*25;
end;
x1:=-pi; {власне побудова графіка відрізками прямих}
while x1<pi do
begin
y1:=f(x1);x2:=x1+pi300;
y2:=f(x2);
line(xm+round(80*x1), ym-round(sc*y1),
xm+round(80*x2), ym-round(sc*y2));
x1:=x2;
end;
outtextxy(270,470,st3);
readln;
closegraph;
end.

Програма компілюється і видає графік функції. Показати картинту я не зможу, тому що він виконується тільки в повноекранному режимі.

Переглядів: 4734

Повернутися взміст


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн