2D-Grafik Rectangle mit double Werten zeichnen

OnJen

Neues Mitglied
Hallo Java-Forum

Auf einem JPanel zeichne ich Rectangles. Beim zoomen wird immer wieder die Position neu berechnet.
Hier ein Beispiel für die Berechnung beim Hereinzoomen.

Java:
double tempX = plant.getRectangle().getX()*zoomFactor;
double tempY = plant.getRectangle().getY()*zoomFactor;
plant.getRectangle().setRect(tempX, tempY, controller.getQuadratB(), controller.getQuadratH());

Wenn man jetzt ganz oft rein- und wieder rauszoomt, gibt es mit der zeit eine kleine abweichung in Richtung linke obere Ecke.
Meine Vermutung ist, dass es an der Rundung liegt, weil die doubles für die fillRect() und drawRect() Methode in Integer umgewandelt werden müssen.
hier der Ausschnitt der paintComponent() Methode:

Java:
for (Iterator<Plant> iterator = controller.getPlants().iterator(); iterator.hasNext();) {
				Plant plant = (Plant) iterator.next();
				rect = plant.getRectangle();
				g.setColor(plant.getBluetenFarbe());
                g.fillRect(rect.x, rect.y, controller.getQuadratB(), controller.getQuadratH());
                g.setColor(Color.black);
                g.drawRect(rect.x, rect.y, controller.getQuadratB(), controller.getQuadratH());
			}



Gibt es irgendeine Möglichkeit das zu umgehen, außer mit einem Schätzwert, der draufaddiert wird?

Gruß
Johannes
 
G

Gast2

Gast
Du solltest beim zoomen nur den Zoomwert ändern. Das orignal Rectangle solltest du nicht anpacken. In der paintComponent Methode holst du dir dann das Rectangle sowie den Zoomfaktor und berechnest dort erst das gezoomte Rectangle.
Wenn du dann wieder zurückzoomst ändert sich nichts an dem original Rectangle und dein Problem sollte geklärt sein.
 

OnJen

Neues Mitglied
Danke für die Antwort schonmal

Das Problem ist, ich muss das Original Rectangle anpacken weil man durch klicken auf die Rectangles an der Seite Informationen dazu sieht, und auch die Rectangles durch Mausdragging verschieben kann.

Wenn ich das also in die paint Methode schreibe, malt er sie zwar, aber man kann nicht mehr interagieren.
Deswegen hab ich extra eine zoomIn() und zoomOut() Methode geschrieben.
 

Marco13

Top Contributor
Ohne das im Detail nachvollzogen zu haben: Diesen Punkt kann man evtl. dadurch abdecken, dass man die Mausposition beim Anklicken in das gezoomte Koordinatensystem umrechnet (und mit dem Punkt, der sich daraus ergibt, dann rect.contains(p) oder so aufruft). Kannst ja mal überlegen, ob das für dich eine Option wäre...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Was genau bewirkt Rectangle in 2dGraphics? AWT, Swing, JavaFX & SWT 1
R AWT Rectangle mit Angle AWT, Swing, JavaFX & SWT 10
K 2048 Umsetzung mit Gridpane / Stackpane und / Rectangle AWT, Swing, JavaFX & SWT 0
N JavaFX Group: Gezieltes entfernen eines Objects (Rectangle) AWT, Swing, JavaFX & SWT 0
J JavaFX Rectangle innerhalb eines Rectangle oder Panes positionieren? AWT, Swing, JavaFX & SWT 1
U JavaFX GridPane - Circle auf Rectangle versetzten AWT, Swing, JavaFX & SWT 1
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
L JavaFX Rectangle mit Dock-Mechanismus AWT, Swing, JavaFX & SWT 3
K JavaFX TableView mit Rectangle AWT, Swing, JavaFX & SWT 3
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
T Rectangle Transparent und darunter liegende Objekte Bedienbar AWT, Swing, JavaFX & SWT 0
J Rectangle g.fillRec() X/Y Punkt AWT, Swing, JavaFX & SWT 5
TheSorm Rectangle drehen AWT, Swing, JavaFX & SWT 9
S Rectangle Border Color AWT, Swing, JavaFX & SWT 13
P drawString in einem Rectangle AWT, Swing, JavaFX & SWT 4
P Rectangle verschieben AWT, Swing, JavaFX & SWT 11
P ImageIcon auf Rectangle AWT, Swing, JavaFX & SWT 3
P Rectangle on JPanel zentrieren AWT, Swing, JavaFX & SWT 20
T Rectangle Namen geben? Alternativen auch gerne gesehen. AWT, Swing, JavaFX & SWT 2
D 2D-Grafik Form der GrafikObjekte ändern, Ellipse -> Rectangle AWT, Swing, JavaFX & SWT 2
K AWT Rectangle klappt nicht AWT, Swing, JavaFX & SWT 7
R Resize Rectangle Problem AWT, Swing, JavaFX & SWT 3
Schandro Den größten passenden java.awt.Font zu einem Rectangle berechnen AWT, Swing, JavaFX & SWT 2
I Text innerhalb von Rectangle rendern AWT, Swing, JavaFX & SWT 3
H Rectangle[] ? AWT, Swing, JavaFX & SWT 5
I Rectangle mit floating values AWT, Swing, JavaFX & SWT 2
D Markieren mit Rectangle ? AWT, Swing, JavaFX & SWT 9
T PLAF MetalButtonUI Rectangle beseitigen AWT, Swing, JavaFX & SWT 4
CptK Point2D.Double Kurven - Beschriftung und richtiges Anklicken AWT, Swing, JavaFX & SWT 7
CptK Wie funktioniert contains() für Path2D.Double AWT, Swing, JavaFX & SWT 10
B AWT GUI nimmt nur 19 Ziffern an, obwohl Max Wert von Double größer ist AWT, Swing, JavaFX & SWT 7
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
L 2D-Grafik Frage zu Ellipse2D.Double, Abfrage, ob Punkt enthalten ist funktioniert nicht AWT, Swing, JavaFX & SWT 3
S Polygon mit double-Koordinaten AWT, Swing, JavaFX & SWT 2
N Double Buffern von BILDERN AWT, Swing, JavaFX & SWT 6
V Applet Double Buffering AWT, Swing, JavaFX & SWT 2
B Graphics2d drawString mit double Werten? AWT, Swing, JavaFX & SWT 5
T 2D-Grafik Double Buffering AWT, Swing, JavaFX & SWT 7
lumo SWT Double Buffering AWT, Swing, JavaFX & SWT 5
M Object[][] in double[][] casten AWT, Swing, JavaFX & SWT 6
A aus einem Textfeld in double parsen AWT, Swing, JavaFX & SWT 10
K Flackern trotz Double-Buffering AWT, Swing, JavaFX & SWT 10
J JSlider mit Double Werten AWT, Swing, JavaFX & SWT 5
T JTextField nur Double werte eingeben AWT, Swing, JavaFX & SWT 2
A Explicit casting Point2D.Double AWT, Swing, JavaFX & SWT 3
A TableRowSorter für double Werte mit Formatierung AWT, Swing, JavaFX & SWT 3
iLoveTheInternet AWT Rectangle2D.Double intersecs AWT, Swing, JavaFX & SWT 6
hdi Wie implementiere ich Double Buffering AWT, Swing, JavaFX & SWT 12
R drawString mit double Koordinaten AWT, Swing, JavaFX & SWT 5
L JTextField Umwandeln in double-Werte AWT, Swing, JavaFX & SWT 5
K double / int einlesen? AWT, Swing, JavaFX & SWT 12
G Frage zu Double Buffering AWT, Swing, JavaFX & SWT 4
L double in JTable formatieren AWT, Swing, JavaFX & SWT 7
P Integer, Double, etc mit getTableCellRendererComponent AWT, Swing, JavaFX & SWT 6
P Double-Werte sortieren mit TableRowSorter AWT, Swing, JavaFX & SWT 2
U Double Buffering AWT, Swing, JavaFX & SWT 6
B JFormattedTextField mit DecimalFormat in ein Double AWT, Swing, JavaFX & SWT 11
J Double-Buffering zu langsam AWT, Swing, JavaFX & SWT 4
S double in String umwandeln AWT, Swing, JavaFX & SWT 6
L Double-Buffering AWT, Swing, JavaFX & SWT 2
R Double in der Tabelle statt String und Integer AWT, Swing, JavaFX & SWT 3
Student "Dicke" einer Linie - Line2D.Double AWT, Swing, JavaFX & SWT 12
G Double-Click f. alle Komps UNIX u. WIN verschieden ? AWT, Swing, JavaFX & SWT 5
D double Buffering abschalten? AWT, Swing, JavaFX & SWT 4
G Ellipse2D.Double funktioniert nicht AWT, Swing, JavaFX & SWT 3
W SWT - Tree: Problem mit Double-Click expand AWT, Swing, JavaFX & SWT 5
L Double Buffering bei JTable AWT, Swing, JavaFX & SWT 4
W JavaFX Tabelle zeilenweise mit Werten füllen und an Container anpassen AWT, Swing, JavaFX & SWT 23
F JavaFX Tabelle mit gespeicherten Eingabe Werten AWT, Swing, JavaFX & SWT 8
C JFreeChart x-Achse mit absteigenden Werten AWT, Swing, JavaFX & SWT 1
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
F Swing JAVA GUI Übergabe von Werten zwischen mehreren Fenstern/Klassen AWT, Swing, JavaFX & SWT 10
C SWT Tabelle mit Werten befüllen AWT, Swing, JavaFX & SWT 5
J Decorated TableViewer mit falschen Werten AWT, Swing, JavaFX & SWT 4
Z JTable Werten unsichtbar?! AWT, Swing, JavaFX & SWT 12
T TableCellRender nach Werten AWT, Swing, JavaFX & SWT 2
E JDialog Rückgabe von Werten AWT, Swing, JavaFX & SWT 2
P JList mit zwei Werten AWT, Swing, JavaFX & SWT 9
G BufferedImage.getRGB() mit 3 int-Werten vergleichen AWT, Swing, JavaFX & SWT 2
F Altes Frame öffnen mit den Werten AWT, Swing, JavaFX & SWT 7
H JSlider mit 2 Werten AWT, Swing, JavaFX & SWT 7
B Thumbnails anzeigen über Bottuns mit versch. Werten AWT, Swing, JavaFX & SWT 8
G JTable nach RowHeader-Werten sortieren AWT, Swing, JavaFX & SWT 2
A JList mit 2 Werten aus der Datenbank füttern AWT, Swing, JavaFX & SWT 5
Y Einbinden von Werten in ein Diagramm AWT, Swing, JavaFX & SWT 6
R Konvertieren von Werten im JSpinner AWT, Swing, JavaFX & SWT 2
J JTable-Zeilen mit Werten füllen AWT, Swing, JavaFX & SWT 7
P Scrollbar/Pane auch mit negativen x,y - Werten AWT, Swing, JavaFX & SWT 2
G JList: Anzeige von null-Werten verhindern AWT, Swing, JavaFX & SWT 3
M JComboBox aus Datenbank mit 2 Werten füllen AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben