绘制矩形

时间:2010-12-20 19:26:03

标签: java drawing shape

我正在编写一个程序,接受用户的坐标并在屏幕上用星星绘制一些形状(*)

例如矩形,即矩形= 100,150,50,50,其中x,y,宽度,高度。我该怎么办?

5 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

用星星画'是什么?如果这是带有等宽字体的文本模式,则需要在水平的星形线中打印它,计算正确的长度。对于矩形,这很容易,对于三角形来说,不那么容易,五边形只是矩形和一些三角形的组合。请参阅Bresenham algorithm获取灵感。

另请注意,文本模式分辨率很差;标准终端窗口只有80个字符宽,你很难比200-300字符更宽,所以正确的舍入很重要。

答案 2 :(得分:0)

如果它只是矩形,那么将以下内容放在paint方法中应该有效......

int xIncrement = (int)g.getFont().getStringBounds("*", null).getWidth();  
int yIncrement = (int)g.getFont().getStringBounds("*", null).getHeight(); 
for(int i = y; i < y + height; i += xIncrement)  
    for(int j = x; j < x + width; j += yIncrement)
        g.drawString("*", j, i);  

对于三角形和其他形状,它有点难度,但是你可以计算出分离点的线条的渐变,因此得到每条线的初始x。

一般来说,尽量避免'明星画'......

答案 3 :(得分:0)

以下是javadoc

  

x - 的新x坐标   这个矩形的左上角y -   左上角的新y坐标   这个矩形的一角

答案 4 :(得分:0)

除非您指的是GUI,否则Y坐标可以是您必须“跳过”的行数,x坐标类似于您在行中输入的空格量。

所以基本上,x = 2和y = 3意味着你必须向下走3行并向右移动2个空格。