Heim >Java >javaLernprogramm >Wie stellt man Daten und Text auf einer gedrehten Koordinatenebene in Java korrekt dar?

Wie stellt man Daten und Text auf einer gedrehten Koordinatenebene in Java korrekt dar?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-06 11:47:03319Durchsuche

How to Correctly Plot Data and Text on a Rotated Coordinate Plane in Java?

Rotieren der Koordinatenebene für Daten und Text in Java: Beheben von Plotproblemen

In Java: Drehen einer Koordinatenebene und korrektes Plotten von Daten und Beschriftungen erfordert die Auseinandersetzung mit mehreren Schlüsselthemen. Dieser Artikel bietet eine Lösung für zwei häufige Probleme:

  1. Zeichnen von Datenpunkten mit der oberen linken Ecke als Ursprung und nach unten absteigenden Y-Werten
  2. Es können keine Beschriftungen für Teilstriche gezeichnet werden die y-Achse

Lösungsübersicht

Um diese Probleme zu beheben, wurde der bereitgestellte Code wie folgt geändert:

1. DataPanel.java

<code class="java">import java.awt.*;
import java.awt.geom.AffineTransform;
import javax.swing.*;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.*;

class DataPanel extends JPanel {
    // ...

    @Override
    protected void paintComponent(Graphics g) {// Override paintComponent() method.
        super.paintComponent(g);
        // ...
        // Invert the y-axis.
        AffineTransform at = g2d.getTransform();//save the graphics context's transform
        g2d.translate(leftStartPlotWindow, blueTop);//translate origin to bottom-left corner of blue rectangle
        g2d.scale(1, -1);//invert the y-axis
        // ...
        // Restore the transform for conventional rendering.
        g2d.setTransform(at);//restore the transform for conventional rendering
        // ...
    }

    // ...
}</code>

2. DataGUI.java

In dieser Datei sind keine Änderungen erforderlich.

Erklärung

  • Der Schlüssel zum Drehen der Koordinatenebene ist mit AffineTransform. Der Grafikkontext wird transformiert, indem der Ursprung in die untere linke Ecke des blauen Rechtecks ​​verschoben und dann die Y-Achse um -1 skaliert und somit effektiv invertiert wird.
  • Sobald die Transformation angewendet wird, werden die Datenpunkte und Beschriftungen können mit kartesischen Koordinaten geplottet werden.
  • Nachdem das Plotten abgeschlossen ist, wird die ursprüngliche Transformation wiederhergestellt, um zum herkömmlichen Rendering für die X-Achsen-Beschriftung und andere Komponenten zurückzukehren.
  • Als Ergebnis wird die Datenpunkte werden jetzt von der unteren linken Ecke nach oben dargestellt und die Y-Achsenbeschriftungen werden korrekt angezeigt und gedreht.

Zusätzliche Ressourcen

  • [AffineTransform](https://docs.oracle.com/javase/8/docs/api/java/awt/geom/AffineTransform.html)

Das obige ist der detaillierte Inhalt vonWie stellt man Daten und Text auf einer gedrehten Koordinatenebene in Java korrekt dar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn