onde varie

esci con turbomatematica.htm

program sfasa1;
(* onde con vario sfasamento e loro risultante *)
uses crt,graph;
var pausa:integer;

procedure grafica;
var sc,tp:integer;
stringa:string;
begin
sc:=0;
tp:=0;
stringa:='bgi';
initgraph(sc,tp,stringa);
end;

procedure disegna(g1,f:integer);
var onda1,onda2,x,y,a1,angolo,risu:integer;
rad1,rad2:real;
fase,sa1,sr:string;
begin
cleardevice;
x:=10;
y:=200;
a1:=50;
str(f,fase);
str(a1,sa1);
setcolor(7);
outtextxy(10,10,'due onde con diverso sfasamento,stessa frequenza');
outtextxy(10,30,'con stessa ampiezza');
outtextxy(200,30,sa1);
outtextxy(10,50,'sfasamento=');
outtextxy(200,50,fase);
outtextxy(10,70,'risultante');
line(x,y,700,y);
line(x,10,x,400);
f:=trunc(f/g1);
for angolo:=0 to 640 do
begin
setcolor(3);
rad1:=angolo*PI/(180/g1);
rad2:=((angolo+f)*PI/(180/g1));
onda1:=-trunc(a1*sin(rad1));
onda2:=-trunc(a1*sin(rad2));
risu:=onda1+onda2;
str(-risu,sr);
line(x+angolo,y+onda1,angolo+x,y+onda1);
setcolor(4);
line(x+angolo,y+onda2,x+angolo,y+onda2);
setcolor(5);
outtextxy(200,70,sr);
line(x+angolo,y+risu,x+angolo,y+risu);
delay(pausa);
setcolor(0);
outtextxy(200,70,sr);
end;
readln;
end;

begin
clrscr;
writeln('scrivi valore per velocita disegno');
writeln('scrivi 0..10..100..200.500..');
readln(pausa);
grafica;
(* inserire frequenza e sfasamento*)
disegna(1,0);
disegna(1,30);
disegna(1,60);
disegna(1,90);
disegna(1,120);
disegna(1,150);
disegna(1,180);
disegna(2,0);
disegna(2,30);
disegna(2,60);
disegna(2,90);
disegna(2,120);
disegna(2,150);
disegna(2,180);
readln;
closegraph;
end.