Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi TPaintBox - Graphen zeichnen... (https://www.delphipraxis.net/9905-tpaintbox-graphen-zeichnen.html)

Ömmel 7. Okt 2003 14:55


TPaintBox - Graphen zeichnen...
 
Hallo!
Ich wollte mich mal erkundigen, wie das ist, wenn man in ein Koordinatensystem im PaintBox Objekt geraden zeichnen kann! ich mein jetzt nicht willkürlich geraden, sondern welche, die der Benutzer des programms durch die Gleichung y=mx+n bestimmen kann! das ausrechnen der gleichung ist kein problem mehr, jedoch das zeichnen der graphen! :oops:
thx!
Ömmel

P.S.: habe mich im Forum vertan, sorry, könnte das hier einer der Mods in Delphi language packen? :angle2:

Dagon 7. Okt 2003 15:05

Re: TPaintBox - Graphen zeichnen...
 
Am besten du zeichnest die Gerade mit Hilfe von MoveTo und LineTo. In einer While-Schleife berechnest du das y in dem du das x um z. B. 0.1 vergrösserts.

Also etwa so:

Delphi-Quellcode:
...
x := -10;
y := m*x+y;
PaintBox1.Canvas.MoveTo(x, y);
while x <= 10 do
begin
  y := m*x+n;
  PaintBox1.Canvas.LineTo(x, y);
  x := x + 0.1;
end;
...

Christian S. 7. Okt 2003 15:16

Re: TPaintBox - Graphen zeichnen...
 
Wieso in einer Schleife? Bei einer Gerade kann ich doch einfach durchzeichnen, oder?

Dagon 7. Okt 2003 15:26

Re: TPaintBox - Graphen zeichnen...
 
@Peter Lustig: Ach ja, ich Dummkopf :oops:.

@Ömmel: Dann reicht es, wenn man zwei y-Werte berechnet und dann den ersten MoveTo übergibt und den zweiten LineTo.

Mirilin 7. Okt 2003 15:35

Re: TPaintBox - Graphen zeichnen...
 
:hi:

Zitat:

x := x + 0.1;
-->
Delphi-Quellcode:
procedure MoveTo(X, Y: Integer);
ans Runden denken...

Mirilin 7. Okt 2003 16:45

Re: TPaintBox - Graphen zeichnen...
 
:hi:

Delphi-Quellcode:
...
W := PaintBox.Width div 2;
H := PaintBox.Height div 2;
...
procedure TMainForm.DrawGraph(m, q: Double; c : TColor = clRed);
var
  P1, P2 : TPoint;
begin
  P1.X := W;
  P2.X := -W;
  P1.Y := Round(-W * m + q);
  P2.Y := Round( W * m + q);
  SetViewPortOrgEx(PaintBox.Canvas.Handle, W, H, nil); //Da ich den Mittelpunkt in der Mitte haben will.
  with PaintBox.Canvas do
  begin
    Pen.Color := c;
    MoveTo(-P1.X,-P1.Y);
    LineTo(-P2.X,-P2.Y);
  end;
end;
Vielleicht kannst Du ja damit was anfangen...

Mirilin 7. Okt 2003 20:06

Re: TPaintBox - Graphen zeichnen...
 
Liste der Anhänge anzeigen (Anzahl: 2)
:hi:

Ich häng mal ein kleines Progrämmchen an...
Man kann simple Geradengleichungen im Stile y=mx+q eingeben es sollte dann die Geraden zeichnen
und den Schnittpunkt ausgeben.

Ömmel 8. Okt 2003 17:57

Re: TPaintBox - Graphen zeichnen...
 
Besten Dank! Die Antworten waren super! thx Ömmel

Ömmel 8. Okt 2003 18:03

Re: TPaintBox - Graphen zeichnen...
 
ich bins mal wieder! sag mal, das download programm kann ich nicht öffnen, wenn ich nicht mind. die gleiche delphi version hab wie du, gell?! naja, ist auch egal.. :coder:

Wormid 8. Okt 2003 18:04

Re: TPaintBox - Graphen zeichnen...
 
Nettes Progrämmli, wenn Du das Programm jetzt noch dazu bringen könntest, auch mit quadratischen und kubischen Funktionen zu arbeiten, dann könnte ich da sogar echt was mit anfangen... :wink:

Also, hau rein! :coder:

Gruß

Wormid


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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 by Thomas Breitkreuz