gpt4 book ai didi

java - 包含对面板区域的绘图

转载 作者:行者123 更新时间:2023-12-02 08:38:06 25 4
gpt4 key购买 nike

我想将 X 和 Y 整数数组绘制到 Java 框架中的面板。

绘制线条的最佳方法是什么(目前我正在使用 Graphic 的drawPolyline)?

如何在不知道最大 (Y) 值的情况下有效缩放整数值,使它们全部适合面板区域?

例如更新

public void paint(Graphics g)
{
int height = panel.getHeight();
int width = panel.getWidth();
int[] xPoints = { ... values ... };
int[] yPoints = { ... values ... };
int nPoints = dataLength;
// Scale xPoints and yPoints so they fit in the area of width and height
// and draw line
g.drawPolyline(xPoints, yPoints, nPoints);
g.dispose();
}

最佳答案

如果不知道 x 和 y 最大值,我认为这是无法完成的,因为您无法计算所需的比例。但如果您有一个点数组,那么您当然可以搜索它以找到 x 和 y 的最小和最大值。

如果您有办法获得最大值,请继续阅读(这也是为了其他遇到类似问题的人的利益)。

求任意两个y值之间任意两个x值之间的最大差值;称它们为 max(dx) 和 max(dy) - 分别是 max(x)-min(x) 和 max(y)-min(y)。

取宽度/max(dx) 和高度/max(dy) 中的较大者。这个数字代表了你的规模;只需使用 ((x-min(x))/scale) 修改每个 x 值,使用 ((y-min(y))/scale) 修改每个 y 值

您现在应该拥有适合相对 0,0 方向的最大形状。

注意:我有负坐标,在应用这些公式之前,您必须将它们调整到正坐标范围。

关于java - 包含对面板区域的绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/775070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com