Java:通过fillRect()绘制直方图
我喜欢制作直方图。使用drawLine()
,这对我来说并不是真正的问题,但是当我尝试使用fillRect()
矩形时,矩形从上到下都是。我想用绘制类似于我的直方图的直方图drawLine()
。
这是我的代码:
public void paint(Graphics g) { super.paint(g);
int height = getHeight();
int width = getWidth();
int x =10;
haufigkeit=model.getMap();
for(int i = 1; i <= 45; i++) {
int y;
y = haufigkeit.get(i);
Color color = new Color(0, 0, (int)(150 + Math.random() * 100));
g.setColor(color);
// g.fillRect(x, 50, 10, y);
// g.drawLine(x, height - 50, x, height- y);
x+=20;
}
}
需要更改什么?
回答:
“但是当我尝试使用fillRect时,矩形从上到下。”
您需要考虑的几件事。
一条水平线,例如,如果面板尺寸为500,则您希望水平线为450。所以让我们开始
int horizon = 450;
您需要考虑每个数据栏的高度。为此,您需要一个增量,让每个单位说5 px。因此,要获得高度,请将单位数量乘以增量数量
int increment = 5;
…
int height = increment * units;
现在,您需要做的就是
height
从中减去,horizon
然后您便有y
了fillOval
int y = horizon - height
0 +--------------------- |
|
|
| +----+ horizon - height = 150 = y point for fillRect
| | |
| | |
| | |
y | | | height = 300
| | |
| | |
| | |
|---------------------- 450 horizon
|
+---------------------- 500
g.fillRect(x, y, width, height);
以上是 Java:通过fillRect()绘制直方图 的全部内容, 来源链接: utcz.com/qa/436151.html