Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sinus Kurve für Newbie (https://www.delphipraxis.net/16335-sinus-kurve-fuer-newbie.html)

b3nny 15. Feb 2004 16:15


Sinus Kurve für Newbie
 
So ich bin neu im Forum und auch in DElphi. Ich habe einen Taschenrechner geproggt den ihr auch auf meiner Seite findet:
www.sub-ben.de.vu
um den gehts auch. ich würde gerne eine funktion einbauen die es mir ermöglicht eine sinus kurve zu zeichnen. zum beispiel mit der funktion:
f(x)= sin x
ich ahne schon wie das ganze gehen soll. möglicherweise muss ich mit canvas etc. arbeiten, aber wie genau??? wenn ich versuche einen graphen zu zeichen passieren immer die dümmsten sachen. zum beispiel kann ich irgendwie nicht in der mitte des images zeichen und und und und. HELFT MIR... plz
thx im vorraus :wink:

MikeS 15. Feb 2004 16:34

Re: Sinus Kurve für Newbie
 
mit MoveTO legst du den Startpunkt fest und mit LineTo das Ende. zwischen MoveTO und LineTo ist nach dem ausführen eine Gerade!
um eine Sinuskurve zu zeichnen könntest du in einer for schleife von 0 bis x zählen in dan sin i ausrechnen!

das könnte dann ungetestet wie folgt aussehen:

Delphi-Quellcode:
[..]

altx := 0; alty := 0;
x1 := einstellbar;
x2 := einstellbar;

for i := x1 to x2 do
begin
  y := sin(i);
  image1.canvas.moveto(altx, alty);
  image1.canvas.lineto(i, y);
  altx := i;
  alty := y;
end;

Mirilin 15. Feb 2004 16:51

Re: Sinus Kurve für Newbie
 
Liste der Anhänge anzeigen (Anzahl: 1)
:hi:



Ich habs kurz so gemacht. ( :gruebel: hoffe es klappt )

Delphi-Quellcode:
type
  TMainForm = class(TForm)
...
private
    Bit : TBitmap;
    procedure DrawSinus;
end;
...
const
  H = 200;
  W = 2*H;
...
procedure TMainForm.DrawSinus;
var
  i : Integer;
  X,Y : Double;
begin
  SetViewPortOrgEx(Bit.Canvas.Handle,0,H div 2,nil);
  Bit.Canvas.MoveTo(0,0);
  Bit.Canvas.Pen.Color := clRed;
  for i := 0 to W do
  begin
    X := i / W * 2 * pi;
    Y := -sin(X)*H / 2;
    Bit.Canvas.LineTo(i,Round(Y));
  end;
  SetViewPortOrgEx(Bit.Canvas.Handle,0,0,nil);
end;
mfg Tobias

b3nny 15. Feb 2004 17:49

Re: Sinus Kurve für Newbie
 
Wow.großes thx. das treibt meine arbeit ungemein voran. thx.thx.thx :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz