Построение кривых

Построение кривых производится в системе координат. В зависимости от характера кривой положение системы координат на экране может быть различным. Пусть начало выбранной системы координат находится в точке экрана (x0, y0). Тогда систему координат можно построить как два отрезка: горизонтальный (0, y0) – (639,y0) и вертикальный (x0, 0) – (x0, 349). Для простоты стрелки и обозначения осей можно не делать, хотя при желании это не составит труда.

Для построений в системе координат на осях должны быть выбраны масштабы и необязательно одинаковые. Их берут такими, чтобы все характерные точки кривой поместились на экране, и чтобы кривую можно было достаточно хорошо разглядеть. Пусть масштабы по осям выбраны соответственно Mx и My точек в одной единице длины. Когда масштабы выбраны, на осях можно сделать разметку. Это можно сделать построением в цикле набора коротких отрезков перпендикулярно оси. Более того, можно всю плоскость экрана разграфить в клеточку для получения представления о координатах любой точки полученной кривой. Вновь для простоты этого делать не будем.

Если область определения аргумента в уравнениях, задающих кривую, ограничена, можно построить кривую для всей области определения. Если же она не ограничена, то по разным причинам обычно бывает достаточно построить кривую на некотором ограниченном промежутке изменения аргумента. Обозначим этот промежуток (a, b).

На выбранном промежутке функции, описывающие кривую, могут иметь точки разрыва. Если число таких точек n, то кривую нужно строить на n+1 промежутке непрерывности. Границами этих промежутков служат точки разрыва и концы исходного промежутка (a, b). Множество границ промежутков непрерывности образует массив из n+2 элементов: a(0) = a, a(1), . . . ,a(n), a(n+1) = b.

Процесс построения дуги кривой на каждом промежутке непрерывности одинаков и может быть организован в виде подпрограммы.

Как известно, в языке программирования Basic существуют графические операторы построения точки, отрезка и прямоугольника, окружности, эллипса и дуги. Наиболее удобным способом построения произвольной кривой является замена ее последовательностью отрезков. В графическом режиме 9 последовательность отрезков будет выглядеть плавной дугой, если вся кривая будет состоять примерно из 100 отрезков.

Для построения последовательности отрезков нужно организовать цикл. Параметром в этом цикле нужно использовать аргумент функций, задающих кривую. Шагом изменения аргумента нужно выбрать сотую часть длины промежутка (a, b), то есть . Поэтому процесс построения дуги кривой на одном промежутке непрерывности можно организовать следующим образом:

- Сначала задать значение аргумента немного больше левой границы промежутка непрерывности, например на 0,1 шага (границами промежутка могут быть точки разрыва).

- Вычислить координаты точки кривой для этого значения аргумента по заданным уравнениям.

- Построить точку кривой по вычисленным координатам.

- Увеличить значение аргумента на величину шага и в цикле до числа, немного меньшего правой границы промежутка, вычислять координаты точек кривой и строить отрезки до этой точки.

При построении точек и отрезков в программе, естественно, нужно указывать не вычисленные, а экранные координаты точек. Если координаты точки в построенной на экране системе координат обозначить (x; y) и ее же экранные координаты (X; Y), то легко увидеть из приведенного справа чертежа, что X = x0 + x Mx и Y = y0 – y × My.

В проведенных выше рассуждениях не было речи об уравнениях, описывающих кривую. То есть речь идет об универсальной программе для построения любой кривой.

Кривая может быть описана обычным уравнением или параметрическими уравнениями . Чтобы программа построения кривой действительно была универсальной, эти уравнения должны быть описаны в ней как функции пользователя.

Из всего сказанного следует приведенная ниже блок-схема алгоритма построения на экране произвольной кривой.