簡體   English   中英

如何使用x,y坐標列表繪制曲線(峰值)

[英]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[]數組中,但它比單獨繪制每個線段更快更清晰。

如果需要浮點坐標,最好的方法是使用帶有Graphics2DShape對象。 不幸的是,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM