Funktionsplotter (zeichnungsgenauigkeit)

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo, find ich ja mal wirklich super das man hier posten kann ohne sich zu Reggen :toll:

Zu meinem Problem:

Ich Programmiere zZ einen Funktionsplotter in form einer Application.

Funktionniert soweit auch ganz alles nur mein Problem ist die zeichengenauigkeit. Und zwar ist es möglich die Skalierung des Koordinatensystems einzustellen (Also xmax ymax ...)
Davon hängt natürlich auch die beschriftung der Achsten zusammen..soweit noch kein Problem.
Zum bestimmen der Position habe ich eine Methode geschrieben die "Welt in Pixelkoordinaten" umwandelt.

Zum eigentlichen Problem weiß nicht genau wie ich das beschreiben soll...wenn ich den Grpahen zeichne habe ich nicht Punkte für jeden Pixel..sondern nur pro schritt der sich aus der skalierung berechnet. Das ganze sieht dann doch sehr unschön aus (je nach xmax ymax). Leider weiß ich nicht wie ich es hinbekommen soll Funkionswerte für jeden Pixel zu bekommen und die skalierung einzuhalten. Ok ich hoffe das is zu verstehen :oops:

 

André Uhres

Top Contributor
Gast hat gesagt.:
..wenn ich den Graphen zeichne habe ich nicht Punkte für jeden Pixel..sondern nur pro Schritt der sich aus der skalierung berechnet. Das ganze sieht dann doch sehr unschön aus (je nach xmax ymax)...
Die Punkte hängen doch von der Funktion ab, nicht wahr?
Demnach müsste die Funktion, abhängig von der Skalierung, einen Punkt pro Pixel liefern können.
 
G

Gast

Gast
Naja das schon aber irgendwie muss die funktion dann ja an die Skalierung angepasst werden!

dazu hab ich eine Methode die folgendes macht
Code:
 intEinheitX = 500 / intXMax;
            intEinheitY = 500 / intYMax;

            if (blnIsX) {
                return ((intEinheitX * intWert));
            } else {
                return ((intEinheitY * -intWert));
            }
        }

wobei 500 die länge einer Achse ist (z.B Positive x-AChse)
intXMax ist der Maximale Wert auf der XAchse
 

waldwichtel

Aktives Mitglied
Hi, ich programmier gerade eine ähnliche Aufgabe und hab es folgendermassen gelöst:

Ich ermittle die Gesamtbreite meines Zeichenfelds in Pixeln und hab dann eine funktion die für jeden X-Pixelwert den entsprechenden Y-Pixelwert zurückgibt. Das ganze schreib ich dann in Array und hab dann eine Funktion die die Weerte im Array als Polyline verbindet.

Schau dir mal die drawPolyLine() von Graphics an.
 
G

Gast

Gast
Hy, hast frage falsch verstanden. Zeichne mit einem Path und Affine Transformation aus Graphics2d.

Wenn ich die berechnung der YWerte Pro Pixel mache (d.H z.B 200Pixel entspricht 200Einheiten) klappt alles super weil ich für jeden X Wert einen Y Wert bekommen.

Nun bietet mein Programm die möglichkeit die einheiten frei zu wählen. Dann kommt die Obere berechnung zum einsatz und dann wird der Graph hässlich, komme nur nicht auf das Problem..ist vielleich auch nen Denkfehler drin.
 

djpauer

Mitglied
hoi
hab mal ne frage, wie hast du überhaupt das ding hinbekommen? würd mich ma interesieren, weil ich auch sowat baue im jbuilder 2005
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben