русс | укр

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

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

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

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


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

Построение графика функции


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


При выводе на экран графических изображений используется графическая система координат. Графические координаты задают положение каждого пиксела, отображаемого на экране. В отличие от обычной (декартовой) системы координат, графические координаты принимают только целочисленные значения. Диапазон изменения графических координат ограничен снизу нулём, а сверху разрешением экрана по горизонтали и вертикали. Максимальное значение x- и y -координат можно получить, используя функции GetMaxX и GetMaxY. Графическая координата y отсчитывается сверху вниз.

Геометрические декартовы координаты точки (x,y) для её изображения на экране необходимо пересчитать в графические (xg,yg) по формулам:

;

,

где x0, y0 – смещение изображения на экране от левого края и сверху; yG – разрешение экрана по вертикали; dx и dy – размер собственно изображения по горизонтали и вертикали соответственно; xmin, ymin, xmax, ymax– минимальные и максимальные значения аргумента x и значения функции y в диапазоне построения графика; ëaû – целая часть числа a.

Таким образом, для построения графика функции необходимо:

- получить таблицу значений функции y = f(x) в диапазоне изменения x от xнач до xкон;

- найти минимальные и максимальные значения аргумента x и значения функции y в диапазоне построения графика;

- пересчитать действительные значения x и y в графические xg и yg;

- нарисовать на экране область построения графика и оси координат;

- отправить графический указатель (перо) в начало координат;

- задать цвет и стиль линий;

- последовательно соединить линиями (или отметить маркерами) точки графика.

При построении нескольких графиков на одном координатном поле необходимо определить максимальные и минимальные значения x и y для всех графиков.

Рассмотрим пример использования графического режима для построения графика функции y = sin x. В примере используется 3 подпрограммы-функции f, xe и уe, причём xe и уe вызываются без параметров:



Program Prg_graf;

Uses Crt, Graph;

Var

xn, xk, x, y, Ymin, Ymax, dx:real;

MX, MY,i, n: word;

Gd, Gm: integer;

 

Function f(xf:real):real; { Расчет значений функции }

begin

f:=sin(xf); { Здесь приводим выражение для вычисления }

{или f:=exp(-0.5*xf*xf);} { значения Вашей функции }

end;

 

Function Xe:word; {Расчет позиции на экране для X}

begin

Xe:=10+Round((MX-20)*(x-xn)/(xk-xn));

end;

 

Function Ye:word; { Расчет позиции на экране для Y }

begin { На экране отсчет идет сверху-вниз, }

{ на обычном графике – наоборот }

Ye:=MY-10-Round((MY-20)*(f(x)-Ymin)/(Ymax-Ymin));

end;

 

Begin { Начало основной программы }

xn:=-5; xk:=5; n:=250; { Исходные данные }
{ Или при вводе исходных данных с клавиатуры:

Write(' x начальное = '); Readln(xn);

Write(' x конечное = '); Readln(xk);

Write(' количество точек графика = '); Readln(n);

}

dx:=(xk-xn)/(n-1); { Интервал между точками на оси Х }

{ Нахождение минимума и максимума функции }

x:=xn; Ymin:=f(xn); Ymax:=f(xn);

for i:=2 to n do

begin

x:=x+dx;

if f(x)<Ymin then Ymin:=f(x);

if f(x)>Ymax then Ymax:=f(x);

end;

Gd:=Detect;

InitGraph(Gd,Gm,''); { Не забудьте скопировать egavga.bgi }

{ в папку с программой Prg_graf.pas }

if GraphResult <> 0 then

begin

Writeln('Ошибка инициализации графического режима');

Halt(1);

end;

MX:=GetMaxX; MY:=GetMaxY;

Rectangle(0,0,MX,MY); { Рамка вокруг всего экрана }

Rectangle(10,10,MX-10,MY-10); { Рамка вокруг поля графика }

OutTextXY(270,2,'График функции'); { Вывод строки }

x:=0; Line(Xe,MY-10,Xe,10); { Рисуем ось ординат для x=0}

OutTextXY(Xe-10,15,'Y'); { Подписываем ось ординат }

y:=0; Line(10,MY-Ye,MX-10,MY-Ye);{ Рисуем ось абсцисс для y=0}

OutTextXY(MX-20,MY-Ye+2,'X'); { Подписываем ось абсцисс }

OutTextXY(Xe-10,MY-Ye+2,'0'); {Подписываем начало координат}

{ Рисуем сам график }

x:=xn; MoveTo(Xe, Ye); { Перемещаем перо в начало координат }

for i:=2 to n do

begin

x:=x+dx; LineTo(Xe,Ye); { Чертим линию до следующей точки}

end;

Readln;

CloseGraph;

End.

Задания

1. Ввести текст программы Prg_graf с клавиатуры в системе Turbo Pascal и сохранить в свою папку.

2. Выполнить отладку программы.

3. Пользуясь программой построить графики для следующих функций:

1) y = exp( - ax2);

2) y = x /(sin(5x) + 1,5);

3) y = a x2+ bx + c;

4) y = ± , где –r £ x £ r;

5) E = 1010 / ;

6) y = 2x;

7) y =|cos(x)|;

8) y = x/(1 - x2);

9) y = ± x ;

10) y = 0,1x sin(x/0,5).



<== предыдущая лекция | следующая лекция ==>
Задания | Создание движущихся изображений


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


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

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

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


 


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

 
 

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

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