русс | укр

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

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

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

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


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

Построение графиков элементарных функций


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


Для построения графиков рекомендуем использовать компонент TPaintbox (вкладка System). В этом случае нет необходимости задавать положение области на форме.

Для того чтобы построить оси координат, нужно задать положение начала математической системы координат и масштабы каждой из осей. Подчеркнем, что отсчет положения начала системы координат ведется в пикселях от левого верхнего угла компонента TPaintbox. Обозначим через u0 и v0 расстояния до начала системы координат по горизонтали и вертикали соответственно. Масштабы по оси абсцисс и по оси ординат обозначим mx и my, их тоже следует задавать в пикселях. Переменные u0, v0, mx, my включим в список глобальных переменных.

Теперь перейдем непосредственно к построению графика. Сначала нам нужно создать процедуру (назовем ее xytouv), которая преобразовывала бы математические координаты в экранные. Алгоритм преобразования прост: значение математической координаты (вещественное число) умножается на масштаб, округляется функцией round и прибавляется к значению u0 (положение начала координат). Это для оси абсцисс. Для оси ординат сложение следует заменить на вычитание, поскольку экранная координата отсчитывается «вниз».

Поместим эту процедуру в разделе implementation модуля Unit1. Здесь x, y – математические координаты точки графика, а u, v – ее экранные координаты. Так как процедура xytouv возвращает экранные координаты u и v, то перед переменными u, v следует написать var.

 

procedure xytouv(x,y:real; var u,v:integer);

begin

u:=u0+round(x*mx);

v:=v0-round(y*my);

end;

 

Напишем функцию f(x), с помощью которой задается математическая формула функции. Для примера будем строить график функции y = 2sinx.

 

Function f (x : real) : real;

begin

f:=2*sin(x);

end;

 

Затем выберем отрезок на оси абсцисс, на котором будет изображен график функции. Для линейний и квадратичной функций это может быть симметричный отрезок, например [−10; 10]. Для логарифмической функции необходимо выбирать отрезок в положительной части оси абсцисс, например, [0.01; 10]. Для функций синуса и косинуса можно взять любой отрезок, например [−p; p]. В нашем примере пусть будет отрезок [−2p; 2p]. Границы выбранного отрезка будут входными параметрами xmin и xmax для процедуры Graphic.



Будем менять переменную х на отрезке[xmin; xmax] с некоторым шагом dx, который подбираем экспериментально. Начинайте со значения, например, dx = 0,01. Для вывода точки на Paintbox1 (или Form1) используем свойство Pixels канвы Canvas. Ниже приведен код процедуры Graphic.

 

procedure Graphic(xmin, xmax, dx : real);

{xmin, xmax – минимальное и максимальное значения x,

dx – «шаг» построения}

var x,y:real; u,v:integer;

begin

x:=xmin; {присваиваем x минимальное значение}

while x<xmax do

begin

y:=f(x); {вычисляем y }

{Преобразуем математические координаты в экранные}

xytouv(x,y,u,v);

{Ставим точку зеленого цвета с координатами u,v}

Form1.Paintbox1.Canvas.Pixels[u,v]:=clgreen;

x:=x+dx; {увеличиваем x}

end;

end;

 

Вызовем процедуру graphic в коде обработчика TForm1.Button1Click (кнопка «Построить»).

procedure TForm1.Button1Click(Sender: TObject);

begin

Graphic(-2*pi, 2*pi, 0.01);

end;

 

В итоге получим график, изображенный на рис. 12.

 

Рис. 12. График функции y= 2sinx на отрезке [–2p; 2p].

Задание. Расширьте возможности приложения. Через компонент TMainMenu задайте несколько функций. Для этого в код функции f вставьте оператор выбора case, в котором разным номерам будут соответствовать различные функции.

 

 

2.2. Класс TBitmap и работа с растровыми рисунками



<== предыдущая лекция | следующая лекция ==>
Для построения графиков | В случайных местах


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


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

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

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


 


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

 
 

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

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