我正在编写一个程序,接受用户的坐标并在屏幕上用星星绘制一些形状(*)
例如矩形,即矩形= 100,150,50,50,其中x,y,宽度,高度。我该怎么办?
答案 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个空格。