Построение одного периода синусоиды, например,
WIND0W (XMIN,YMIN)-(XMAX,YMAX)
Построение одного периода синусоиды, например, может выглядеть следующим образом:
Программа 8_03.bas
RЕМ Построение синусоиды
SCREEN 12
VIEW (10,10)-(410,210),2,1
LINE (400,100)- (0,100) ' Построение оси х и возврат СР в ее начало
WIND0W (0,-1)-(б.З,1) ' 0бъявление пределов изменения функции
F0R X=.l Т0 6.3 STEP .1
Y=SIN(X) ' Вычисление значения функции
LINE -(X,Y) ' Проведение отрезка прямой из СР в (X,Y)
NEXT X
END
В пакете BGI область графического вывода устанавливается процедурой
setviewport:
ТС: setviewport(xmin,ymin,xmax,ymax,clip);
TP: SetViewPort(xmin,ymin,xmax,ymax,clip);
Экранные координаты точек (xmin,ymin) и (xmax,ymax) определяют, соответственно, положение левого верхнего и правого нижнего углов прямоугольной области вывода. Система координат в зоне вывода привязана своим началом к левому верхнему углу прямоугольника, и ее ось у, к сожалению, направлена вниз. Параметр clip, который может принимать только два значения (в Си — о или не о, в Паскале — true или false), управляет режи-
мом отсечения графических изображений, выходящих своими частями за пределы области вывода. При clip = о или clip = false отсечение не производится. 0бъявление окна графического вывода в ТС и ТР автоматически чистит окно и переводит текущую точку в начало координат. По умолчанию фон окна черный, а линии рисуются белым цветом.
Программа построения периода синусоиды на Паскаче, например, может выглядеть следующим образом:
Программа 8_03.pas
program sinl;
uses graph; var
gd,gm,xe,ye,k:integer;
x,y,dx:double;
begin
gd:=0;
InitGraph(gd,gm,'');
dx:=0.1;
SetViewPort(10,10,410,210, false) ;
LineTo(0,200); {0бводим границы установленного окна}
LineTo(400,200); LineTo(400,0);
LineTo(0,0);
{Проводим ось х и возвращаем СР в ее начало}
Line(400,100,0,100);
for k:=0 to 63 do
begin
x:=k*dx;
y:=sin(x);
xe:=round(x*400/6.28);
{Преобразуем программные координаты к экранным - хе, уе }
ye:=round(100-y*100);
Содержание Назад Вперед