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时,矩形从上到下。”

您需要考虑的几件事。

  1. 一条水平线,例如,如果面板尺寸为500,则您希望水平线为450。所以让我们开始

    int horizon = 450;

  2. 您需要考虑每个数据栏的高度。为此,您需要一个增量,让每个单位说5 px。因此,要获得高度,请将单位数量乘以增量数量

    int increment = 5;

    int height = increment * units;

  3. 现在,您需要做的就是height从中减去,horizon然后您便有yfillOval

    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

回到顶部