如何以不锯齿的方式绘制由多条线段组成的曲线
How to draw a curve consisting of multiple line segments in a non-jagged way
我正在尝试编写一个程序,将传入的 USB 数据放到折线图上。我这样做的方法是在 canvas 上绘制一串连接所有数据点的直线。问题是生成的线不平滑,如下所示:
我尝试使用 Graphics Context 的 lineTo(x, y)
方法,但这只会让情况变得更糟。我还尝试更改 Line Cap 和 Line Join 参数,但这并没有太大帮助。
有没有更好的方法来玩 "Connect the Dots" JavaFX Graphics Context?也许用贝塞尔曲线?如果有,请告诉我。
我最终采用了最简单的解决方案,即使用 BoxBlur 效果:
BoxBlur blur = new BoxBlur();
blur.setWidth(2);
blur.setHeight(2);
blur.setIterations(1);
gc.setEffect(blur);
...
//Don't forget to remove the effect before clearing
gc.setEffect(null);
gc.clearRect(0, 0, width, height);
这不是一个精确的解决方案,但对我来说效果很好。
我正在尝试编写一个程序,将传入的 USB 数据放到折线图上。我这样做的方法是在 canvas 上绘制一串连接所有数据点的直线。问题是生成的线不平滑,如下所示:
我尝试使用 Graphics Context 的 lineTo(x, y)
方法,但这只会让情况变得更糟。我还尝试更改 Line Cap 和 Line Join 参数,但这并没有太大帮助。
有没有更好的方法来玩 "Connect the Dots" JavaFX Graphics Context?也许用贝塞尔曲线?如果有,请告诉我。
我最终采用了最简单的解决方案,即使用 BoxBlur 效果:
BoxBlur blur = new BoxBlur();
blur.setWidth(2);
blur.setHeight(2);
blur.setIterations(1);
gc.setEffect(blur);
...
//Don't forget to remove the effect before clearing
gc.setEffect(null);
gc.clearRect(0, 0, width, height);
这不是一个精确的解决方案,但对我来说效果很好。