0

これが私のコードです。

    import java.awt.Color;
    import java.awt.Graphics2D;
    import java.awt.geom.Line2D;
    import java.awt.image.BufferedImage;
    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    import javax.imageio.ImageIO;

public class Test {

    public static void main(String args[]) throws IOException{

        int width = 400, height = 400;
        Test plot = new Test();

        BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

        Graphics2D g2d = bi.createGraphics();
        g2d.setPaint(Color.red);


        g2d.draw(new Line2D.Double(0,0,0,50));
        g2d.draw(new Line2D.Double(0,50,50,50));
        g2d.draw(new Line2D.Double(50,50,50,0));
        g2d.draw(new Line2D.Double(50,0,0,0));


        ImageIO.write(bi, "PNG", new File("d:\\sample.PNG"));
    }
}

ここに画像の説明を入力

上の出力画像をご覧ください。

ここで、正方形が非常に小さく見えるので (幅と高さを変えてみました)、プログラムでこれを拡大する必要があります。(ロボットが移動したパスを表示する必要があるため)。どうすればいいですか?助けてください。

ここでは、寸法ではなく形状が重要であることに注意してください。

4

1 に答える 1

1

質問が合っているかわかりませんが、

    g2d.draw(new Line2D.Double(0,0,0,50));
    g2d.draw(new Line2D.Double(0,50,50,50));
    g2d.draw(new Line2D.Double(50,50,50,0));
    g2d.draw(new Line2D.Double(50,0,0,0));

変換を定義していないため、50x50 ピクセルの長方形が得られます。次のようなものを試してください

    g2d.draw(new Line2D.Double(0,0,0,150));
    g2d.draw(new Line2D.Double(0,150,150,150));
    g2d.draw(new Line2D.Double(150,150,150,0));
    g2d.draw(new Line2D.Double(150,0,0,0));

これにより、より大きな長方形がレンダリングされます。

または、次のようなスケーリング変換を定義することもできます

    g2d.scale(3.0, 3.0);

Line2D.Double()これは線幅もスケーリングするため、結果は呼び出しで異なる座標を使用した場合と完全に同じではないことに注意してください。

座標系と Graphics2D レンダリング プロセスの詳細については、 http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.htmlも参照してください。

于 2013-01-11T09:25:06.890 に答える