русс | укр

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

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

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

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


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

Многоугольники


Дата добавления: 2015-09-15; просмотров: 667; Нарушение авторских прав


 

Разрешающая способность графического режима определяется количеством выводимых пикселей по горизонтали и вертикали.

Значения эти различные, поэтому построение некоторых геометрических фигур будет происходить с искажениями. Например нарисованная окружность будет напоминать по форме эллипс. Для корректировки несоответствия размеров по вертикали и горизонтали введен коэффициент сжатия изображения, который можно получить процедурой :

GetAspectRatio(var Xasp,Yasp:word) - возвращающая максимальное разрешение по x - Xasp, и по оси y - Yasp. Коэффициент сжатия рассчитывается как отношение Xasp/Yasp.

 

Пример.

Uses Graph,Crt;

Var

X,Y,Driver,Mode:integer;

Xasp,Yasp:word;

Begin

Driver:=Detect;

InitGraph(Driver,Mode,'c:\bin\tp');

GetAspectRatio(Xasp,Yasp);

X:=20;

{ подгонка значения Y}

Y:=round(Xasp/Yasp)*X;

{ вывод квадрата }

Rectangle(0,0,X,Y);

readln;

CloseGraph;

End.

 

Rectangle(x1, y1, x2, y2 : integer) процедура вывода контура прямоугольника, установленным стилем изображения линии и заданным цветом.

Пример. Rectangle(10,10,100,100)

 

Bar(x1, y1, x2, y2: integer) - процедура изображения закрашенного прямоугольника. Данная процедура не производит обводку контура прямоугольника .

Пример. Bar(10,10,100,100);

 

Bar3D(x1, y1, x2, y2: integer; Depth:word; Top:boolean) -

процедура изображения параллелепипеда c закрашенной передней гранью. Выведенный параллепипед является прозрачным, т.к. за не закрашенными гранями можно увидеть другие элементы изображения. Где

x1, y1, x2, y2 как и в процедуре Bar.

Depth - значение в пикселях размера изображения для третьего измерения(0-16) - глубины изображения. Нулевой параметр глубины выводит закрашенный прямоугольник.

Top - способ изображения верхней грани. True - вычерчивается, False - нет. Значение Top можно задаать константами.



const

TopOn = true;

TopOff = false;

Это свойство используется для изображения параллелепипедов, поставленных друг на друга.

Пример.

Uses Crt,Graph;

Var Driver,Mode:integer;

Begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

Bar3D(10,10,110,60,10,TopOn);

Bar3D(10,60,50,110,10.TopOff);

readln;

CloseGraph

End.

DrawPoly(N:word; var PolyPoints:PointType) процедура изображения ломаной линии по N точкам с координатами, заданны-ми типом PointType, определенного как:

type PointType = Record

x, y:word

end;

Для вычерчивания замкнутой фигуры с N вершинами, нужно задавать (n+1) координат, где (n+1)-ая точка совпадает с первой. Например для вычерчивания треугольника нужно задать 4 вершины.

Пример.

Uses Crt,Graph;

Const Triangle : array[1..4] of PointType =

((x:50; y:100),(x:100;y:100), { координаты точек }

(x:150;y:150),(x:50;y:100));

Var Driver,Mode:integer;

Begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

DrawPoly(4,Triangle);

readln;

CloseGraph

end.

С помощью DrawPoly можно выводить на экран график функции по заданным значениям.

Процедура FillPoly(N:word; var PolyPoints:PointType) производит штриховку многоугольника и обвод его линией. Параметры N и PolyPoints аналогичны параметрам процедуры DrawPoly. Отличие от DrawPoly состоит в том, что координаты (n+1)-й точки могут не совпадать с первой. Однако эти точки будут все равно соединены и заштрихуется внутренняя область .

 



<== предыдущая лекция | следующая лекция ==>
MaxColor (максимальное количество | Дуги, окружности, эллипсы


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


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

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

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


 


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

 
 

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

Генерация страницы за: 0.003 сек.