我有一个打印的x,y点列表,显示不均匀的峰曲线。
上面的图像是通过在java绘制组件上绘制点来生成的。我使用以下方法在paint组件上绘制它们。
g.drawline(pointX,pointY,pointX,pointY)
有没有更好的方法来绘制这种波浪线?我检查了一些类似的问题,通常他们需要打印曲线或峰值,但我的线并不总是一个高峰,因为有时它的平面出来,有时候它们是奇怪的。
答案 0 :(得分:2)
使用java.awt.Graphics
绘制折线的最简单方法是使用drawPolyline
方法。它要求您将x和y坐标存储在单独的int[]
数组中,但它比单独绘制每个线段更快更清晰。
如果您需要浮点坐标,最好的方法是使用Graphics2D
对象Shape
。遗憾的是,Java似乎没有提供折线Graphics2D graphics = /* your graphics object */;
double[] x = /* x coordinates of polyline */;
double[] y = /* y coordinates of polyline */;
Path2D polyline = new Path2D.Double();
polyline.moveTo(x[0], y[0]);
for (int i = 1; i < x.length; i++) {
polyline.lineTo(x[i], y[i]);
}
graphics.draw(polyline);
实现,但您可以轻松使用Shape
:
Enumerable<string>
这种方式也可以让您轻松转换坐标 - 当然,转换视图可能更有效。