这是我的代码。
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"));
}
}
您可以在上面看到输出图像。
现在,由于方块看起来非常小(我尝试改变宽度和高度),我需要以编程方式扩展它。 (因为我需要显示机器人行进的路径)。我该怎么做?请帮忙。
请注意,形状更重要,而不是尺寸。
答案 0 :(得分: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。