Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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

Введение | Глава 1 | Рисование узоров | Рисование поля для различных игр | Движение двоичного образа по фоновой картинке | В динамических приложениях | Перемещение картинок | События от мыши | Движение образа по удерживанию левой кнопки мыши | Код клавиши |


Читайте также:
  1. XXXVI. Царствование Соломона. Мудрость юного царя, его величие и могущество. Построение и освящение храма41.
  2. Аналитическое представление функций
  3. Базовым принципом концепции NGN является отделение друг от друга функций переноса и коммутации, функций управления вызовом и функций управления услугами.
  4. Вариационный ряд (ВР) и его изучение. Построение ряда. Виды рядов.
  5. Взаимосвязь финансовых инструментов государства его функций и видов финансовой политики
  6. ВОПРОС 2.5: Что следует делать после освоения ребенком элементарных фигур - опорных фундаментальных образов?
  7. Вопрос 32. Цели деятельности и характеристика функций Центрального банка Российской Федерации.

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

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

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

Поместим эту процедуру в разделе implementation модуля Unit 1. Здесь 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 = 2sin x.

 

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. Для вывода точки на Paintbox 1 (или Form 1) используем свойство 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 и работа с растровыми рисунками


Дата добавления: 2015-08-20; просмотров: 100 | Нарушение авторских прав


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

mybiblioteka.su - 2015-2024 год. (0.007 сек.)