CCTeam - Home> | Anthony Haley
Projekt: Sinus |
Die Programme "Sinus-Kurve" und "Sinus-Superposition" befassen sich mit
der grafischen Darstellung von Sinus-Kurven und gehen auf die
verschiedenen Möglichkeiten ein, deren Parameter zu aendern. Ich beschraenke mich in meinen Erklaerungen auf das Kernprogramm unter Verzicht auf alle delphi-spezifischen Umgebungsmodule. KERN-ROUTINE with Paintbox1 do begin Y0 := 300; X01:= 625+round(K1pi72/4); {K=Phasenposition} X02:= 625+round(K2pi72/4); F:=(F1+F2)/2; S:=1; if (F1 >10) or (F2 >10) then S:= 1/F; A:=-4000; { Periode links; 0-PUNKT ZENTRIERUNG} REPEAT Z1:=(A(PI/1000F1)); { Argument fuer Sinus } X1:=X01+ROUND(72Z1/F1 ; { X-Achsen-Dehnung } Y1:=Y0+ROUND(150L1SIN(Z1)); { Funktion } Z2:=(A(PI/1000F2)); { Argument fuer Sinus } X2:=X02+ROUND(72Z2/F2); { X-Achsen-Dehnung } Y2:=Y0+round(150L2SIN(Z2)); Y3:=Y1+Y2-Y0; {Ueberlagerung} canvas.Pixels[X1,Y1]:= 250; canvas.Pixels[X1,Y1+1]:= 250; canvas.Pixels[X1+1,Y1]:= 250; canvas.Pixels[X1+1,Y1+1]:= 250; canvas.Pixels[X2,Y2]:= clgreen; canvas.Pixels[X2,Y2+1]:= clgreen; canvas.Pixels[X2+1,Y2]:= clgreen; canvas.Pixels[X2+1,Y2+1]:= clgreen; canvas.Pixels[X1,Y3]:= clblue; canvas.Pixels[X1,Y3+1]:= clblue; canvas.Pixels[X1+1,Y3]:= clblue; canvas.Pixels[X1+1,Y3+1]:= clblue; A:=A+S; UNTIL (A>4000); { Periode rechts; 0-PUNKT ZENTRIERUNG } end; end;Y ist die Funktion, X das Argument. Die Indices 1 und 2 beziehen sich auf Funktion1 und Funktion2. Die Null-Indices bezeichnen die (konstanten) Anfangswerte. F1 und F2 sind die Frequenzen, L1 und L2 die zugehörigen Amplituden. K1 und K2 sind Phasen. Beim Aufruf des Programms erscheint eine Darstellung mit folgenden Standardwerten: L1=1 L2=1 F1=1 F2=2 K1=1 K2=2 Diese Standardwerte können vom Benutzer im Eingabefenster geaendert werden. A ist der Iterationsbereich, der in Schritten von S veraendert wird. Bei grossen Werten von F(>10) könnte es Probleme mit der grafischen Umsetzung geben (pixel to integer). Deshalb wird S in Abhaengigkeit von F korrigiert, wodurch sich eine Kompensation der Bilddarstellung erreichen laesst. Die Grafik zeigt das Bild der Kurven Sinus1(rot) und Sinus2(gruen) und deren Ueberlagerung(blau). ![]() Hier geht's zum Autor dieses Programms. |