battimenti

esci con turbomatematica.htm

esempi di composizione di onde con medesima ampiezza

e frequenza leggermente diversa

per evidenziare il fenomeno dei battimenti

video.avi

battimenti1
http://youtu.be/49RSqEk2SN0

 


 

program batti1;
(* esempio di onde grafiche e suono applicato *)

uses crt,graph;

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

procedure disegna(a1,a2,a3,a,b,c:integer);
var d,x,y,s1,s2,s3,yr,risu:integer;
rad1,rad2,rad3,sx,sy,sz:real;
sr1,sr2,sr3,sr4:string;
begin
cleardevice;
x:=1;
y:=100;
yr:=250;
setcolor(7);
outtextxy(10,400,'frequenze delle onde da comporre');
line(1,y,600,y);
line(1,yr,600,yr);
for d:=0 to 600 do
begin
str(a1,sr1);
str(a2,sr2);
str(a3,sr3);
rad1:=d*3.14/(180/a1);
rad2:=d*3.14/(180/a2);
rad3:=d*3.14/(180/a3);
sx:=sin(rad1);
sy:=sin(rad2);
sz:=sin(rad3);
s1:=trunc(sx*a);
s2:=trunc(sy*b);
s3:=trunc(sz*c);
risu:=s1+s2+s3;
str(risu,sr4);
setcolor(3);
outtextxy(10,350,sr1);
line(d,y+s1,d,y+s1);
setcolor(5);
outtextxy(10,360,sr2);
line(d,y+s2,d,y+s2);
outtextxy(10,370,sr3);
setcolor(6);
line(d,y+s3,d,y+s3);
setcolor(7);
outtextxy(400,10,'risultante');
outtextxy(500,10,sr4);
line(d,yr,d,yr+s1+s2+s3);
sound(y+s1);
sound(y+s2);
sound(y+s3);
delay(2);
if (risu=0) then delay(1000);
setcolor(0);
outtextxy(500,10,sr4);
end;
nosound;
outtextxy(10,10,'premi return');
readln;
end;

begin
grafica;
(* frequenze ampiezze *)
disegna(1,2,3,60,60,60);
disegna(2,4,6,60,60,60);
disegna(1,2,3,60,60,60);
disegna(20,21,22,60,60,60);
disegna(10,11,12,60,60,60);
disegna(40,41,42,60,60,0);
closegraph;
writeln('premi enter');
readln;
end.