Zum Inhalt springen

Undefinierte Fläche färben


danvan

Empfohlene Beiträge

Hallo,

Es geht um folgendes:

Angenommen ich lasse von Java einen Funktionsgraphen zeichnen und möchte die Fläche unter dem Graphen einfärben (d.h. zwischen dem graphen und der x-achse). Wie macht man das am besten?

Soll man ein GeneralPath-Objekt erstellen und es den Graphen nachzeichnen lassen, dann am ende einen geraden strich runter zur Abszisse, strich links, und dann verbinden s.d. daraus eine Fläche wird? Oder gibt es angenehmere Verfahren dafür?

LG ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Angenommen ich lasse von Java einen Funktionsgraphen zeichnen und möchte die Fläche unter dem Graphen einfärben (d.h. zwischen dem graphen und der x-achse). Wie macht man das am besten?

Ich verweise auf JFreeChart

Das Färben eines beliebigen Graphen ist durchaus nicht trivial. Ich denke die Basis wird ein FloodFill- oder SpanFloodFill-Algorithmus sein, wobei man je nach Struktur des Graphen durchaus auf Probleme stoßen kann. Ich denke hier müsste man konkret aufgrund der mathematischen Funktion schauen, wie das Verhalten ist

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da fallen mir mehrere Sachen ein. Entweder zu zeichnest bei jeden Pixel, den du auf der x-Achse nach vorn gehst eine Linie nach unten oder du arbeitest mit ((Graphics)g).drawPolygon(...). Da kannst dann den Startpunkt des Diagrammsegments, den Endpunkt und dann natürlich die Drunterliegenden Punkte auf der x-Achse angeben. So hab ich solche Dinge bis jetzt meistens gemacht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

[...] ((Graphics)g).drawPolygon(...)

Das Problem bei Polygonen oder von Dir genannten Linien-Methode ist, dass es eine gewisse "Gutartigkeit" des Graphen voraussetzt bzw. sich auch nur um eine Anzahl an überschaubaren Punkten handelt. Wenn man sehr viele Datenpunkte hat oder der Graph z.B. unstetig ist bzw die die Zeta-Funktion ist eine einfache Approximation mittels Polygonzug nicht mehr optisch schön glatt.

Problematisch wird es, wenn Du z.B. kein karthesisches Koordinatensystem hast oder den Graphen in R^3 plotten willst und ihn dann entsprechend färben möchtest.

Was ich konkret verwenden würde, würde ich von der Problemstellung abhängig machen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was ich konkret verwenden würde, würde ich von der Problemstellung abhängig machen

Klar. Die von mir gennanten Varianten funktionieren nur bei Funktionsgraphen (jede X-Coordinate wird nur einmal vom Graphen "befahren").

DrawPolygon macht wirklich nicht immer das was man will... Da gibts schnell mal "komische Effekte". Kann man aber für Graphen mit raltiv wenigen zu verbindenden Punkten durchaus machen.

Die Methode mit drawLine nach unten hat bei mir bislang immer gefunzt. Zuletzt hab ich die bei einem Höhendiagramm verwendet mit zig 1000 Punkten von denen natürlich nur ein bruchteil gezeichnet werden konnte. War schon flott genug. Wenn man weniger Punkte hat oder die Punkte mehrere X-Pixel auseinander liegen muss man sich die punkte dazwischen halt interpolieren, das ist aber auch recht einfache Mathematik.

Ich hab bislang meist mit linearen Projektionen gearbeitet und mit der drawLine-Methode. War eigentlich recht simpel und hat mich auch bei dem Höhendiagramm nicht im Stich gelassen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...