如何使用 x、y 坐标列表绘制曲线(峰)
How to Drawing a curve line(peaks) using list of x,y coordinates
我有一个打印的 x,y 点列表,显示不均匀的峰值曲线。
上图是通过在 java 绘制组件上绘制点生成的。我使用以下方式将它们绘制在绘制组件上。
g.drawline(pointX,pointY,pointX,pointY)
画这样的波浪线有没有更好的方法?我检查了一些类似的问题,通常他们需要打印曲线或峰值,但我的线并不总是峰值,因为有时它会变平,有时它们会很奇怪。
用java.awt.Graphics
绘制折线最简单的方法是使用drawPolyline
方法。它要求您将 x 和 y 坐标存储在单独的 int[]
数组中,但它比单独绘制每个线段更快更清晰。
如果你需要浮点坐标,最好的方法是使用 Shape
object with Graphics2D
. Unfortunately, Java does not seem to provide a polyline Shape
implementation, but you can easily use Path2D
:
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);
这种方式也可以让您轻松地变换坐标 - 但是,当然,变换视图可能更有效。
我有一个打印的 x,y 点列表,显示不均匀的峰值曲线。
上图是通过在 java 绘制组件上绘制点生成的。我使用以下方式将它们绘制在绘制组件上。
g.drawline(pointX,pointY,pointX,pointY)
画这样的波浪线有没有更好的方法?我检查了一些类似的问题,通常他们需要打印曲线或峰值,但我的线并不总是峰值,因为有时它会变平,有时它们会很奇怪。
用java.awt.Graphics
绘制折线最简单的方法是使用drawPolyline
方法。它要求您将 x 和 y 坐标存储在单独的 int[]
数组中,但它比单独绘制每个线段更快更清晰。
如果你需要浮点坐标,最好的方法是使用 Shape
object with Graphics2D
. Unfortunately, Java does not seem to provide a polyline Shape
implementation, but you can easily use Path2D
:
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);
这种方式也可以让您轻松地变换坐标 - 但是,当然,变换视图可能更有效。