[英]How to Drawing a curve line(peaks) using list of x,y coordinates
我有一個打印的x,y點列表,顯示不均勻的峰值曲線。
上面的圖像是通過在java繪制組件上繪制點來生成的。 我使用以下方法在paint組件上繪制它們。
g.drawline(pointX,pointY,pointX,pointY)
是否有更好的方法來繪制這種波浪線? 我檢查了一些類似的問題,通常他們需要打印曲線或峰值,但我的線並不總是一個高峰,因為有時它的平面出來,有時候它們是奇怪的。
使用java.awt.Graphics
繪制折線的最簡單方法是使用drawPolyline
方法。 它要求您將x和y坐標存儲在單獨的int[]
數組中,但它比單獨繪制每個線段更快更清晰。
如果需要浮點坐標,最好的方法是使用帶有Graphics2D
的Shape
對象。 不幸的是,Java似乎沒有提供折線Shape
實現,但您可以輕松使用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);
這種方式也可以讓您輕松轉換坐標 - 當然,轉換視圖可能更有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.