русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

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

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Урок 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), которая выводит строку 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.

Программа компилируется и выдает график функции. Показать картинту я не смогу, потому что он выполняется только в полноэкранном режиме.

Просмотров: 20756

Вы можете --> Заказать программу или Задать вопрос на форуме

Вернуться воглавление


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.