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

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

До сих пор при создании рисунков использовали только первый квадрант системы координат. Для построения большинства функций в требуемом интервале изменения необходимо работать хотя бы в двух квадрантах. В общем случае полезно изображать систему координат в любой части плоскости, но наиболее наглядно располагать ее в центре экрана. В таких случаях, установив начало координат в точке (x0, y0) на экране, можно координаты (x,y) произвольной точки кривой определять разностью (x-x0,y-y0). После этого в программе можно употреблять не только положительные, но и отрицательные значения.
Рисунок получается маленьким, поэтому требуется увеличить масштаб изображения. Если для функции будет использован весь экран, надо увеличить рисунок по x и по y в зависимости от выбранного экрана.
Выбрать масштаб увеличения можно следующим образом:
-определить горизонтальный и вертикальный размеры графика (для этого вводятся границы области значений и определяются максимальное и минимальное значение функции на заданной области определения, затем вычисляются разности максимального и минимального значений аргументов и функции, которые и являются горизонтальным и вертикальным размерами графика соответственно);
-определить масштаб (сначала определяются масштабы изображения по горизонтали и вертикали с учетом размеров выбранного экрана по формуле:
масштаб(г/в) = размер экрана (по г/в) / размер графика (по г/в), затем из них выбирается меньший, который и принимается за необходимый масштаб. В нашем случае графический экран имеет размеры 640 на 480.
В любом случае, чтобы высветить на экране точку, надо взять x, вычислить по данной абсциссе y и выполнить рисование точки. Так как на экране можно получить лишь ограниченное количество значений х, то их перебираем с помощью цикла.
Пример.  Построить график функции y=x2

Вариант 1

program f;
   uses graph;
   var gd, gm: integer;
       x,y: real;
begin
   gd:=detect;
   initgraph(gd, gm, ‘c:/ bp’);
   SetColor(5);
   Line(0, 240, 640, 240);
   Line(320, 0, 320, 480);
   x:=-20;
   While x<=20 do
     begin
         y:=-Sqr(x);
         PutPixel(x *5 + 320, y*5 +240, 15);
         x:=x+ 0.01;
         end;
end.


Вариант 2

program f;
  uses graph, crt;
  var gd, gm: integer;
         x, y, mx, my, m,x1, x2, y1, y2,h: real;

function f(x:real): real;
   begin
      f:= Sqr(x);
   end;
   clrscr; Write(‘Введите границы отрезка’);
   Read(x1, x2);
   y1:=f(x1);
   y2:=f(x2);
   mx:=640/(x2 –x1);
   my:=480/ (y2 – y1); If mx< my Then m:=mx
   else m:= my;
   h:=1/m; x:=x1;
   gd:=detect;
   initgraph(gd, gm, ‘c:/ bp’);
   SetColor(5);
   Line(0, 240, 640, 240);
   Line(320, 0, 320, 480);
   While x<= x2 do
begin
   y:=-f(x);
   PutPixel(x*m +320, y*m +240, 15);
   x:=x+ h;
end;
end.

Рассмотрим построение графика функции, заданной параметрически. В отличие от функции, заданной в явном виде y=f(x), параметр х в этом случае также является функцией, зависящей от некоторого значения.
Пример.Построить график функции (кардиоида) x = a cos t ( 1+ cost), y = a sin t( 1+cost), a > 0, tÎ, 2p)

Приведем фрагмент программы:

SetColor(5);
Line(0, 240, 640, 240);
Line(320, 0, 320, 480);
t:=0;
a:=3;
While t<= 3.1415 do
begin
x:=a*cos(t)*(1+cos(t));
y:=- a sin(t)*(1+cos(t));
PutPixel(x*5+320, y*5 +240, 15);
x:=x+ 0.01;
end;



Опубликовал admin
16 Ноя, Воскресенье 2003г.

Комментарии

Ни первый ни второй примеры в TurboP не работают без переделки т.к функция PutPixel  работает с значениями типа integer а в условии real. в результате выполнения программа выдает ошибку 26 type mismatch 




Программирование для чайников.