русс | укр

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

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

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

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


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

Практическое задание N 2. 1


Дата добавления: 2014-11-28; просмотров: 534; Нарушение авторских прав


 

1. Задать графическое окно с началом в центре экрана. Для драйвера VGA в режимах 0, 1, 2 при k=1 и k = xx/yy выполнить следующие действия.

1. 1. Процедурой Circle(x, y, r); нарисовать окружность радиусом 50 с центром в начале координат. Процедурой Line(x1, y1, x2, y2); нарисовать квадрат, описанный вокруг окружности. Очистить графическое окно.

1. 2. Процедурой Rectangle(x1, y1, x2, y2); нарисовать квадрат со стороной 100 с центром в начале координат. Процедурой Line(xi, yi, xj, yj); нарисовать окруж-ность (в виде многоугольника), вписанную в квадрат. Очистить графическое окно.

Примечание. Вывести надпись - номер режима и значение k. При k=1 и режимах 0, 1 окружность не будет вписанной в квадрат.

 

Построение графика функции Y = F(x) с масштабированием по осям координат.

 

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

 
 


0 left right XG Пусть задана непрерывная функция F(x)

в диапазоне изменения аргумента x=[A. . B].

up y

Требуется построить по N точкам график

функции Y=F(x) в прямоугольной области

A 0 B x экрана left, up, right, down.

down

0 £ left, right £ GetMaxX

YG 0 £ up, down £ GetMaxY

 

Алгоритм построения графика функции Y=F(x).

1). Определяем массивы значений аргумента и функции: x[i], Y[i]=F(x[i]), где i= 1. . . N. При равномерном разбиении интервала [A. . B] массивы можно задавать операторами:



Dx:= (B-A)/(N-1);{ шаг разбиения по "х" }

for i:= 1 to N do begin

x[i]:= A + round(Dx*(i-1)); Y[i]:= F(x[i]) end;

 

2). Определяем наибольшее (Y_MAX) и наименьшее (Y_MIN) значения функции в заданном интервале изменения аргумента:

 

Y_MAX:= Y[1]; Y_MIN:= Y[1];

for i:= 1 to N do begin

IF Y_MAX < Y[i] THEN Y_MAX:= Y[i];

IF Y_MIN > Y[i] THEN Y_MIN:= Y[i] end;

 

В случае явного задания функции, для аргумента "х" имеем наибольшее значение X_MAX:= B и наименьшее значение X_MIN:= A.

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

 

3). Определяем коэффициенты масштабирования при построении графика в заданной области экрана:

 

Kx:= (right-left)/(X_MAX - X_MIN);

Ky:= (down - up )/(Y_MAX - Y_MIN);

 

Если параметры функции "х" и "y" имеют одинаковую размерность или оба безразмерны, то может появиться искажение естественной формы кривой вследствие разного масштабирования по осям координат: чрезмерное растяжение/сжатие по одной из осей. Например, при рисовании по точкам вместо окружности будет нарисован эллипс. Кроме этого следует учитывать искажение формы графика, регулируемое параметрами процедуры GetAspectRatio(xx, yy). Для вывода графика без искажения формы кривой следует переназначить координаты области экрана так, чтобы получить Ky=K*Kx, где K=xx/yy.

XG   YG

Операторы для автоматического масштабирования приведены ниже в модуле GR_F для различных случаев, определяемых значением параметра “pr”.

1: pr = 1. Пусть заданы нижняя, верхняя и левая границы области построения графика: down, up, left. Необходимо найти значение right при условиях: Ky = K * Kx и right<=GetMaxX. Если условие ограничения графика по длине экрана не выполняется, то полагается right:=GetMaxX; и значение "up" корректируется (уменьшается).

XG
       
   
 
 

 


 

YG

2: pr = 2. Пусть заданы левая, правая и нижняя границы области построения графика: left, right, down. Необходимо найти значение up при условиях: Kx = Ky / K и up>=0. Если условие ограничения графика по высоте экрана не выполняется, то полагается up:=0; и значение "right" корректируется (уменьшается).

4). Строим оси координат (начало координат x = 0, y = 0 ).

 

5). Строим график в виде последовательных отрезков используя аналоги графических процедур BGI:

moveto_G(x[1], y[1]);

for i:=2 to N do lineto_G(x[i], y[i]);

 

Ниже приводятся операторы модуля GR_F, наращивая который аналогами графических процедур BGI можно строить графики в расчетной области.

 

Unit GR_F;{ модуль GR_F }

{$N+}{подключение сопроцессора}



<== предыдущая лекция | следующая лекция ==>
Построение графиков функций | IMPLEMENTATION


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


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

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

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


 


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

 
 

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

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