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

Проведение численных расчетов желательно сопровождать визуализацией промежуточных и окончательных результатов на экране монитора. Это позволяет избежать некоторых ошибок, а также контролировать результаты расчета и оптимизировать алгоритм. Графики функций строятся обычно в декартовой системе координат (XoY). Функция может быть задана в явном виде, например, y=F(x), в неявном: F(x, y)=0, или в параметрическом виде: x=Fx(t), y=Fy(t).

Здесь F(x), F(x, y), Fx(t), Fy(t) - функции, x, t - аргументы (параметры).

Значения "x", "y", полученные в результате расчета, будем называть расчетными координатами точек. При построении графика на экране монитора расчетные значения "x", "y" необходимо пересчитать в графические (экранные) координаты xG, yG. Напомним, что графические координаты изменяются в пределах [0.. GetMaxX] - по горизонтали, [0.. GetMaxY] - по вертикали.

Для изменения графических координат экрана в Турбо-Паскале предусмотрено задание графического окна процедурой:

SetViewPort(xG1, yG1, xG2, yG2, Cl);

где (xG1, yG1), (xG2, yG2) - координаты левого верхнего и правого нижнего вершин прямоугольника, образующего графическое окно (тип Integer).

Cl - признак рисования за границами окна (тип Boolean) задается в модуле Graph константами: ClipOn = True - рисование только в пределах окна,

ClipOff= False - рисование в пределах экрана.

После задания графического окна изменяется начало системы координат (рисунок на экране сохраняется) и можно рисовать кривые с отрицательными значениями координат точек, например, установив начало координат в центре экрана:

xG2:= GetMaxX; yG2:= GetMaxY; xG1:= xG2 div 2; yG1:= yG2 div 2;

и задав Cl:= ClipOff; Направление осей при этом не меняется, график не масштабируется, а процедура SetBkColor(N); изменит цвет всего экрана. Графическое окно можно очистить процедурой

ClearViewPort;

При этом восстанавливается система координат экрана, а изображение в области прямоугольника с координатами вершин (xG1, yG1), (xG2, yG2) затирается цветом фона.

Построение графиков на экране монитора имеет свои особенности, связанные с пикселным изображением и системой координат экрана. Поскольку для некоторых режимов работы монитора отношение ширины к высоте экрана не равно (GetMaxX+1)/(GetMaxY+1), то при построении по точкам вместо окружности получается эллипс. Для рисования правильных геометрических фигур по точкам необходимо подключить процедуру:

 
 


GetAspectRatio(xx, yy);

возвращающую значения xx, yy - параметры (тип Word), определяющие коэффициент сжатия изображения k = xx/yy. При построении графиков или рисовании

фигур по точкам значения координат "y" необходимо умножить на "k". Отметим, что для монитора VGA в режиме Gm=2 значение k=1.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: