русс | укр

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

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

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

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


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

Построение прямоугольников и ломаных


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


Для построения прямоугольника достаточно вызвать процедуру

Rectangle( Х1, Y1, Х2, Y2 : Integer ),

которая изобразит на экране прямоугольник с диагональю (X1, Y1) — (X2, Y2). Для рисования квадрата надо выбрать высоту прямоугольника так, чтобы она равнялась произведению ширины на коэффициент сжатия изображения (см. разд. 19.4.2).

Чтобы построить фигуры с большим количеством вершин (в том числе и незамкнутые), можно воспользоваться процедурой

DrawPoly( NumPoints : Word; VAR PolyPoints )

Она позволяет рисовать на экране дисплея любую ломаную, заданную набором координат некоторого множества точек. Это может быть как сложная геометрическая фигура, так и табличная математическая функция. Параметр NumPoints — это количество точек ломаной (заметим, что если необходимо нарисовать замкнутый многоугольник с N вершинами, то значение NumPoints должно быть на единицу больше числа N, а координата (N+1)-й точки должна быть такой же, как координата первой). Под бестиповым параметром PolyPoints понимается какая-либо переменная, состоящая из наборов двухкомпонентных записей. Поля каждой записи должны содержать координаты X и Y очередной точки. В модуле Graph введен такой тип:

TYPE

PointType = RECORD

X, Y : Integer { координаты точки }

END; {430}

Обычно набор точек организуется как массив из записей типа PointType (и именно к такой структуре приводится значений параметра Poly Point при работе процедуры DrawPoly). Пример построения графика функции с помощью процедуры DrawPoly приведен на рис. 19.14.

USES Graph; { подключен модуль Graph } {$I initgraf.pas} { процедура инициализации } CONST Pi = 3.14151828; * { константа Pi (замещает функцию) } Pi2 = 2*Pi; { различные производные от Pi... } Pi001 = 0.01*Pi; VAR angle : Real; sine_func : Array[1..201] of PointType; {массив точек } maxy, i : Integer; BEGIN GrInit; { инициализация графики } maxy := GetMaxY div 2; { середина экрана по оси Y } angle := 0.0; { задание стартовых значений } i := 0; { счетчик точек в sine_func } repeat { цикл заполнения sine_func } Inc(i); sine_func[i].x := Round( 100*angle ) + 10; sine_func[i].y := Round( 100*Sin(angle) ) + maxy ; angle := angle + Pi001; until angle > Pi2; DrawPoly(i,sine_func); { рисование графика синуса } ReadLn; { пауза до нажатия ввода } CloseGraph { закрытие графики } END.

Рис. 19.14



С помощью DrawPoly можно вывести график части функции. Для этого достаточно указать при передаваемом массиве номер n первого рассматриваемого элемента (т.е. точки), а в первом параметре — количество рассматриваемых точек, начиная с n-й, например

DrawPoly( 20, sine_func[100] );

Такой вызов выведет ломаную по точкам с номерами 100, 101, ..., 119.

При выводе количества точек, соизмеримого со значением GetMaxX, и при несплошном стиле линии может оказаться, что шаг между соседними точками соответствует ширине пробела между пунктиром. В итоге линия может вообще не проявиться на экране. Надо либо уменьшить число точек, либо избрать сплошной тип линии. {431}



<== предыдущая лекция | следующая лекция ==>
Окружности, эллипсы и дуги | Немного о цветах


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


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

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

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


 


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

 
 

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

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