![]() |
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:
![]() 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: |
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; |
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:
mfg Tobias
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; |
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 07:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz