3

初めてのポスターですので、ご容赦ください。

Java GUI を使用してグラフ電卓を作成しようとしています (はい、既にこれを行うアプリケーションがあることは知っています)。Graphics2D クラスを使用していて、x 軸と y 軸にどのようにラベルを付けることができるのか疑問に思っています。

基本的な放物線と x 軸と y 軸をスケッチします。また、軸線が細くなるように変更する方法を誰かに教えてもらえれば、それは素晴らしいことです!

前もって感謝します!-エヴァン

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class GraphWindow extends JPanel {

    /**
     * @param args
     */
    public void paintComponent(Graphics g){
        super.paintComponent(g);
        double max=16;
        double min=0;
        double x[]= {-4,-3,-2,-1,0,1,2,3,4};
        double y[]={16,9,4,1,0,1,4,9,16};

        Graphics2D g2=(Graphics2D)g;
        setBackground(Color.WHITE);
        g2.translate(getWidth()/2,getHeight()/2);
        g2.scale(5.0, 5.0);
        g2.draw( new Line2D.Double(-4*100,0,4*100,0));
        g2.draw( new Line2D.Double(0,min*100,0,-max*100));
        for(int i=0;i<x.length;i++){
            if(i+1<x.length){
            g2.setColor(Color.RED);
            g2.draw(new Line2D.Double(x[i], -y[i], x[i+1], -y[i+1]));
            }
            else{
                break;
            }
        }
4

1 に答える 1

1

Graphics.drawString()両方の軸を描画するために使用できます。

g.setColor(Color.black);
g.setFont(new Font("SansSerif", Font.BOLD, 8));

g.drawString("X Axis", 30, 10);

// rotate for Y axis
g2.rotate(-Math.PI/2);
g.drawString("Y Axis", 20, -8);

Graphics2Dを回転させて Y 軸を描画します。再度ローテーションする必要がないように、これをステートメントの最後のセットとして使用してください。paintComponentGraphics2D

次を使用して、より細い線を取得できます。

g2.scale(2.0, 2.0);

参照: Graphics2D.scale()

于 2012-11-24T22:28:39.340 に答える