Diagrammwerte werden falsch herum angezeigt

  • Themenstarter Themenstarter Tommy347
  • Beginndatum Beginndatum
T

Tommy347

Gast
Hallo Leute,

ich habe ein Problem. Ich habe ein Säulendiagram welches Daten aus einer anderen Klasse ausliest (derzeit noch testdaten). Mein Problem ist das die Werte falsch herum angezeigt werden. Damit meine ich dass das Diagramm nach unten geht.

BSP.

Säule 1: 100

Säule 2: 25

Säule 3: 80

Die y-Achse hab ich fest definiert und da startet jede Säule und gehen dann anstatt nach oben (weil positive zahlen), nach unten in den negativen Bereich.

Wieso ist das so und was kann ich dagegen machen?

Danke im Vorraus

Viele Grüße

Tommy
 
Es wird dir so niemand helfen können weil es Tausend verschiedene Fehler sein können, deshalb wäre es angebracht Quellcode zu posten.
Außerdem ist die X-Achse die waagerechte. Von der Y-Achse gehen Säulen selten nach Oben oder Unten.

Mfg
 
Hey,

ja ich meinte die X-Achse :>

hier der Code

Java:
// METHODEN
	public void paint(Graphics g) {
		super.paint(g);
		g.setColor(Color.gray);
		int y = 0;
		Graphics g2d = (Graphics2D) g;
		((Graphics2D) g2d).setRenderingHint(RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON);

		int i = 0;

		label.setText(diagrambar.getPj().getProjectname());
		diagrambar.getEffort();
		diagrambar.getRs();
		diagrambar.getSumBWH();

		g.setColor(colorList.get(i));
		g.fill3DRect(60 * i + 100, y + 300, 50, ((int) (diagrambar.getEffort())), true);
		i++;


		diagrambar.getEffort();
		diagrambar.getRs();
		diagrambar.getSumBWH();

		g.setColor(colorList.get(i));
		g.fill3DRect(60 * i + 100, y + 300, 50, ((int) (diagrambar.getRs())), true);
		i++;

		diagrambar.getEffort();
		diagrambar.getRs();
		diagrambar.getSumBWH();

		g.setColor(colorList.get(i));
		g.fill3DRect(60 * i + 100, y + 300, 50, -((int) (diagrambar.getSumBWH())), true);

		i++;
	}
 
public abstract void fillRect(int x,
int y,
int width,
int height)


Fills the specified rectangle. The left and right edges of the rectangle are at x and x + width - 1. The top and bottom edges are at y and y + height - 1.

Das sollte deine Fragen klären. Ich nehme an, dies ist auch bei fill3DRect so. Tja.... wie dreht man das denn nun um? Ich weiß es 🙂
 
Zuletzt bearbeitet:
Der Standard-Ursprung einer Komponente bzw. dessen Graphics Objekts liegt links/oben die x-Achse ist von links nach rechts orientiert, die y-Asche von oben nach unten
 
was auch immer das dann für eine noch komplizierte draw-Zeile wird, besser nicht 3x derart kompliziert kopieren,
stattdessen eine neue Methode:
[c]drawBalken(int i, int y, double hohe)[/c]
definieren, vielleicht gar noch ohne y wenn das immer 0 ist,
darin dann die komplizierten 60 * i + 100-Rechnungen, den Cast auf int und was immer du jetzt noch einbauen musst,
die drei Aufrufe sind dann vergleichsweise schön sauber einfach
 

Zurück
Oben