Thema: Delphi TCanvas : Sinuskurve

Einzelnen Beitrag anzeigen

Kännchen

Registriert seit: 18. Dez 2009
2 Beiträge
 
#1

TCanvas : Sinuskurve

  Alt 18. Dez 2009, 20:03
hi Leute. Bestimmt haben schon viele, viele unwissende Fragen zur Darstellung einer Sinusfunktion gestellt. Ich bin leider kein pro aber dafür Blond Mein Hauptproblem ist, dass die Sinuskurve nur als gestrichelte Linie oder Punkte dargestellt wird. Ok, eine Lösung hätte ich selber : Bogenmaß nutzen, spich Pie statt Grad. Aber wie genau setz ich das ein? Statt y=a*sin(b*x+c)+d lieber so ?? : y=a*sin(b*detograd(x)+c)+d ? oder y=a*sin(b*x*(Pie/180°)+c)+d ??? Leider hab ich kein Delphi auf meinem Rechner und kann somit nur theoretisch arbeiten. Könnte mir bitte jemand helfen?



Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var h,j,x,e1,e2,e3,e4:integer;
      a,b,c,d,y:real;
begin
     FOR j:=1 to 300 do
      begin
      form1.canvas.pixels[30,30+j]:=clblack;
      if j<=20 then
      begin
      form1.Canvas.Pixels[30-j,30+j]:=clblack;
      form1.Canvas.Pixels[50-j,50-j]:=clblack;
      end;
      end;
      for h:=1 to 550 do
      begin
      form1.canvas.pixels[20+h,320]:=clblack;
      if h<=20 then
      begin
      form1.canvas.pixels[570-h,320+h]:=clblack;
      form1.canvas.pixels[570-h,320-h]:=clblack;
      end;
      end;


      val(edit1.Text,a,e1);
      val(edit2.Text,b,e2);
      val(edit3.Text,c,e3);
      val(edit4.Text,d,e4);
      if (e1<>0) and (e2<>0) and (e3<>0) and (e4<>0) then
      begin
      application.MessageBox('Falsche Eingabe','Fehler',MB_ok);
      end
      else
      begin

         for x:=30 to 550 do
         begin
            y:=a*sin(b*x + c)+d;
            form1.Canvas.Pixels[30+round(100*y),320]:=clblack;
         end;
        end;


end;
[edit=Luckie]Delphi Code Tags ergänzt. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat