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

Приступая к проблеме компьютерного построения графиков, весьма полезно предварительно рассмотреть формулу, позволяющую пропорционально переносить точки из одного числового отрезка в другой. Пусть имеется отрезок числовой прямой [xmin,xmax]. Внутри отрезка обозначена точка, соответствующая некоторому числу x. В практике компьютерного построения графиков (и не только) иногда требуется найти "аналог" этой точки x на каком-то другом отрезке [x`min,x`max]. Обозначим аналог точки x через x`. Относительное местоположение числа x` на отрезке [x`min,x`max] должно быть точно таким же, как относительное местоположение числа x на интервале [xmin,xmax]. Для нахождения такой точки можно использовать формулу:

(1)

где

xmin,xmax - границы интервала, в котором заключено исходное число;

x`min,x`max - границы интервала, в который оно проецируется;

x, x` - исходное число и его образ.

Например, представим себе, что группа учащихся отвечает на вопросы теста. На каждый вопрос в тесте предложены варианты ответов. Каждый ответ имеет свою "цену" в баллах. Предположим, что всего в процессе тестирования каждый учащийся может набрать от 7-ми до 43-х баллов. Задача преподавателя состоит в том, чтобы по результатам теста выставить оценку от 2-х до 5-ти. Для этого можно воспользоваться формулой (1). Пусть, например, студент Иванов набрал 28 баллов. Тогда:

x = 28, xmin = 7 , xmax = 43, x`min = 2, x`max = 5.

В итоге оценка Иванова составит:

Существуют числовые интервалы, в которые особенно часто приходится проецировать данные. Это, например, доли (интервал от 0 до 1), проценты (интервал от 0 до 100). Часто интересно бывает выразить какие-то числовые данные, как значения в интервале от -1 до +1. В этих случаях вид формулы (1) упрощается. При отображении данных в интервал от -1 до +1 формула (1) примет вид:

Для отображения чисел в интервал от 0 до 100 можно воспользоваться выражением:

При отображении чисел в интервал от 0 до 1 формула (1) принимает простой вид:

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

Function f(x As Single) As Single
 f = Abs(Sin(x ^ 2) * x)
End Function
Sub Screen_click()
 screen.Cls
 Xmin! = Text1(0).Text
 Xmax! = Text1(1).Text
 Ymin! = Text1(2).Text
 Ymax! = Text1(3).Text
 X0% = 300 * (0 - Xmin!) / (Xmax! - Xmin!)
 Y0% = 300 * (0 - Ymin!) / (Ymax! - Ymin!)
 Y0% = 300 - Y0%
 screen.Line (X0%, 0)-(X0%, 300)
 screen.Line (0, Y0%)-(300, Y0%)
 hx! = (Xmax! - Xmin!) / 300
 x! = Xmin!
 For Xn% = 0 To 300
 y! = f(x!)
 Yn% = 300 * (y - Ymin!) / (Ymax! - Ymin!)
 Yn% = 300 - Yn%
 screen.PSet (Xn%, Yn%)
 x! = x! + hx!
 Next Xn%
End Sub

График строится на объекте screen (PictureBox) размером 300*300 пикселов в ответ на щелчок мышки. Кроме точек графика, на экран выводятся оси координат (разумеется, если в заданном интервале x и y они видны). В программе должны быть предварительно заданы четыре константы Xmin, Xmax, Ymin, Ymax. Эти константы определяют собой математическое "окно", которое будет отображено на экране. В приведенной процедуре описана пара переменных действительного типа x и y, в которых размещаются текущие значения математических координат точек графика (x, f(x)). Кроме них, в процедуре используются целые переменные Xn и Yn, в которых размещаются значения пиксельных координат точек графика. Целые переменные Xo и Yo - это экранные координаты крайних точек, определяющие местоположение осей координат в экранном образе отображённого математического окна. Сам график функции строится по трёмстам точкам. Для каждой единицы экранной координаты Хn вычисляется математическое значение координаты у=f(х). Значение f(х) вычисляется с помощью подпрограммы-функции. Экранная координата Yn, соответствующая математической координате y, определяется путём вычитания из трёхсот округлённого результата пересчёта по формуле (1). В теле цикла for при помощи метода Pset в пиксел с экранными координатами (Хn, Yn) ставится точка.

Построение и исследование графиков функций - не только нужное дело, но и достаточно интересное времяпровождение. Воспроизведя на своём компьютере приведенную процедуру, Вы сможете вполне насладиться этим занятием, а, возможно, и чему-то научиться. Изменяя вид функции f(x), а также константы Xmin, Ymin, Xmax, Ymax, Вы сможете строить любые графики, следя лишь за тем, чтобы в процессе счёта не возникали математически некорректные ситуации типа деления на ноль.

А. КОЛЕСНИКОВ,
andr61@mail.ru

Версия для печатиВерсия для печати

Номер: 

31 за 1999 год

Рубрика: 

Азбука программирования
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!