Построение графиков функций
Проведение численных расчетов желательно сопровождать визуализацией промежуточных и окончательных результатов на экране монитора. Это позволяет избежать некоторых ошибок, а также контролировать результаты расчета и оптимизировать алгоритм. Графики функций строятся обычно в декартовой системе координат (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.
Дата добавления: 2016-06-29; просмотров: 1507;