46483 (665563), страница 2
Текст из файла (страница 2)
SetFillStyle(1,ScreenColor); Bar(0,0,GetMaxX,GetMaxY);
{вычислим длины осей и положение начала координат}
Lx:=GetMaxX+1-LeftBlank-RightBlank;
Ly:=GetMaxY+1-TopBlank-BottomBlank;
Px:=LeftBlank; Py:=GetMaxY-BottomBlank;
{нарисуем оси}
SetColor(AxisColor);
MoveTo(LeftBlank,TopBlank-1); LineRel(0,Ly); LineRel(Lx,0);
{оцифруем ось X}
SetTextJustify(CenterText,TopText);
FOR i:=1 TO TicsNumX DO BEGIN
MoveTo(LeftBlank+i*Lx DIV TicsNumX,Py); LineRel(0,TicSize);
IF i=1 THEN s:='' ELSE Str(i,s); MoveRel(0,2); OutText(s+'Pi');
END;
{оцифруем ось Y}
SetTextJustify(RightText,CenterText);
FOR i:=1 TO TicsNumY DO BEGIN
MoveTo(Px,Py-i*Ly DIV TicsNumY); LineRel(-TicSize,0);
Str(i/10:3:1,s); MoveRel(-2,0); OutText(s);
END;
{выведем пояснительный текст}
SetTextJustify(CenterText,CenterText); SetColor(TextColor);
MoveTo(LeftBlank+Lx DIV 2,TopBlank DIV 2);
OutText('график функции Cos(x)');
{выведем показатель степени}
MoveRel(TextWidth('график функции Cos(x)') DIV 2-TextWidth('(x)'),TextHeight('s'));
SetTextStyle(SmallFont,0,PowerSize); OutText('2');
{вычислим масштабы по X и Y}
Mx:=Lx/x1; My:=Ly;
{нарисуем график}
SetLineStyle(0,0,3); SetColor(LineColor); MoveTo(Px,Py-Ly);
FOR i:=1 TO n DO BEGIN
x:=i*x1/n; LineTo(Px+Round(Mx*x),Py-Round(My*f(x)));
END;
{сделаем задержку}
READLN;
{перейдем в текстовый режим}
CloseGraph;
END.
Это неплохая программа, но автор хотел бы предостеречь от ее бездумного использования как эталона во всех случаях. Она использует априорную информацию о виде изображаемой функции: минимальное значение функции = 0, максимальное значение функции = 1, начало координат находится в точке пересечения осей и т.п. В ваших программах все может быть не так.
Список литературы
Для подготовки данной работы были использованы материалы с сайта http://elib.albertina.ru/