Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Schrittweite beim Graphenzeichnen regeln (https://www.delphipraxis.net/94955-schrittweite-beim-graphenzeichnen-regeln.html)

Alexander Roth 28. Jun 2007 14:53


Schrittweite beim Graphenzeichnen regeln
 
Hi,

also ich will Graphen besser/schneller zeichnen indem ich die Schrittweite dynamiasch anpasse.
Ich suche nun nach Seiten die das gut erklären. Wisst ihr welche?

Gruß Alexander

Muetze1 28. Jun 2007 18:33

Re: Schrittweite beim Graphenzeichnen regeln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Was meinst du mit "Schrittweite"? Wenn du Graphen zeichnest, dann hast du eigentlich immer zwei Möglichkeiten der Heransgehensweise:

1. Du machst eine Schleife über den Wertebereich und berechnest für jeden x Wert der Schleife den y Wert. Nachteil: Zoomt man in einen Teil der Funktion rein, also dass man einen Teilwertebereich hat, dann kann die Schleife nicht mithalten und berechnet im schlechtesten Falle keinen einzigen Punkt.

2. Du gehst alle Pixel deiner gezeichneten X Achse durch und rechnest für jeden Pixel anhand der Gesamtbreite und des Wertebereiches den X Wert des Pixels aus. Diesen dann in die Funktion einsetzen und das Ergebnis dann anhand des Y Wertebereiches wieder skalieren und Punkt malen.

Welche von beiden Methoden nutzt du und was meinst du mit "Schrittweite"? Durch das Wort schliesse ich fast auf den ersten Ansatz, aber das ist nur eine Vermutung...

Ach so, ich habe mal ein Beispiel angehangen, welches den Unterschied verdeutlicht. Dabei ist die CheckBox "Bad way" welche den Unterschied aufzeigt. Bei der linearen Funktion ist es kein Unterschied, aber bei der quadratischen Funktion und verändertem Wertebereich sieht man es deutlicher. Ansonsten kann man mit der anderen CheckBox nochmal genau die berechneten Punkten ausgeben lassen.

Alexander Roth 28. Jun 2007 19:21

Re: Schrittweite beim Graphenzeichnen regeln
 
Hi,

das normale Zeichnen ist mir vollkommen klar, da habe ich mich wohl ein bisschen missverständlich ausgedrückt.
Mit der Schrittweite meine ich einfach delta x, also den x Abstand zwischen zwei berechneten Punkten.
Es geht mir, um auf meine Frage zurückzukommen, darum die Schrittweite dynamisch an die Steigung (oder an die Änderung der Steigung?) anzupassen, damit ich, wenn starke Veränderungen an der Funktion sind, die Schrittweite zu verkleinern.
Somit will ich bei unwichtigen Stellen wenig und bei Stak sich verändernden Stellen viele Punkte zeichnen.
Somit spare ich Punkte ein und habe einen schöner aussehenden Graphen.

Ich such ja auch nur, da das vielleicht zu speziell ist, nach Seiten sie das erklären wie man das machen kann.

Gruß Alexander

Muetze1 28. Jun 2007 19:26

Re: Schrittweite beim Graphenzeichnen regeln
 
Dadurch dass die Funktion immer kantig wird, wenn du Punkte auslässt, wäre doch der 2. Weg die beste Lösung, wobei dort die Anzahl der Punkte egal ist, da du jeden sichtbaren Pixel berechnest. Also alles was maximal aktuell sichtbar ist, wird berechnet. Ansonsten sehe ich - ausser bei komplizierten Formeln eine lange Berechnung - keinen Nachteil. Zur Not müsstest du einfach mal die erste Ableitung bilden, dann hast du die Steigung und somit kannst du doch entscheiden ob und wie stark sich der Graph verändert...

Alexander Roth 28. Jun 2007 20:35

Re: Schrittweite beim Graphenzeichnen regeln
 
Du hast recht. Es ist eine gute Sache.
Und es ist nicht schwer und es erfordert keine Korrekturrechnungen.

Ich werde dann wahrscheinlich deine Idee anwenden.
Vielen Dank.

Gruß Alexander


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 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