Rumah  >  Artikel  >  Java  >  Bagaimana untuk Memplot Data dan Teks dengan Betul pada Satah Koordinat Berputar di Java?

Bagaimana untuk Memplot Data dan Teks dengan Betul pada Satah Koordinat Berputar di Java?

Patricia Arquette
Patricia Arquetteasal
2024-11-06 11:47:03236semak imbas

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

Memusing Satah Koordinat untuk Data dan Teks dalam Java: Menyelesaikan Isu Memplot

Di Java, memutar satah koordinat dan memplot data dan label dengan betul memerlukan menangani beberapa isu utama. Artikel ini menyediakan penyelesaian kepada dua masalah biasa:

  1. Memplot titik data dengan penjuru kiri atas sebagai asal dan nilai y menurun ke bawah
  2. Gagal melukis label untuk tanda tic pada paksi-y

Gambaran Keseluruhan Penyelesaian

Untuk menyelesaikan isu ini, kod yang disediakan telah diubah suai seperti berikut:

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

Tiada perubahan diperlukan dalam fail ini.

Penjelasan

  • Kunci untuk memutar satah koordinat ialah menggunakan AffineTransform. Konteks grafik diubah dengan menterjemahkan asal ke sudut kiri bawah segi empat tepat biru dan kemudian menskala paksi-y dengan -1, menyongsangkannya dengan berkesan.
  • Setelah penjelmaan digunakan, data menunjuk dan label boleh diplot menggunakan koordinat kartesian.
  • Selepas plot selesai, transformasi asal dipulihkan untuk kembali kepada pemaparan konvensional untuk label paksi-x dan komponen lain.
  • Akibatnya, titik data kini diplot dari sudut kiri bawah ke atas, dan label paksi-y dipaparkan dan diputar dengan betul.

Sumber Tambahan

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

Atas ialah kandungan terperinci Bagaimana untuk Memplot Data dan Teks dengan Betul pada Satah Koordinat Berputar di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn