首頁  >  文章  >  Java  >  如何在 Java 中在旋轉座標平面上正確繪製資料和文字?

如何在 Java 中在旋轉座標平面上正確繪製資料和文字?

Patricia Arquette
Patricia Arquette原創
2024-11-06 11:47:03236瀏覽

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

Java 中資料和文字的旋轉座標平面:解決繪圖問題

Java 中,旋轉座標平面並正確繪製資料和標籤需要解決幾個關鍵問題。本文提供了兩個常見問題的解決方案:

  1. 以左上角為原點、y 值向下遞減繪製資料點
  2. 無法為tic 標記繪製標籤y 軸

解決方案概述

為了解決這些問題,所提供的程式碼已修改如下:

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>
1. DataPanel.java

2. DataGUI.java

此文件無需修改

    說明
  • 說明
  • 說明

說明

  • 說明
說明說明說明 旋轉座標平面的關鍵是使用仿射變換。透過將原點平移到藍色矩形的左下角,然後將 y 軸縮放 -1 來轉換圖形上下文,從而有效地反轉它。 應用轉換後,資料點和標籤可以使用笛卡爾座標繪製。 繪製完成後,原始變換將恢復為 x 軸標籤和其他組件的常規渲染。 因此,現在,數據點從左下角向上繪製,並且 y 軸標籤正確顯示和旋轉。 其他資源[AffineTransform](https://docs.oracle.com/javase/8/docs/api/java/ awt/geom/AffineTransform.html)

以上是如何在 Java 中在旋轉座標平面上正確繪製資料和文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn