【问题标题】:Draw a smooth curve through a set of n points通过一组 n 个点绘制平滑曲线
【发布时间】:2016-05-04 18:36:26
【问题描述】:

我正在开发一款显示从特定起点到光标的路线的游戏。由于当前系统非常陈旧(可能大约 10 年左右......)并且部分损坏,我想从头开始重写这段代码。 假设我的屏幕上有一个点数组 -最后一个点是我的光标-和一个 Graphics2D 对象。我如何以尽可能最短的方式绘制一条平滑地穿过所有这些点的线?

【问题讨论】:

    标签: java rendering graphics2d curve smooth


    【解决方案1】:

    我如何用尽可能最短的方式画一条平滑地穿过所有这些点的线

    这个要求有点矛盾。通过点列表的最短曲线是多边形,但多边形通常不平滑。

    但是,您正在寻找的可能是样条插值。这在标准 Java 包中不可用,但您可以在 Apache Commons Math 中使用 SplineInterpolator

    【讨论】:

    • 是的,样条插值是我正在寻找的......不,样条插值器需要增加 x 值才能工作。由于这条线是地图上的一条路线,因此 x 可以随意增加和减少
    • @RoiEX:您可以使用点索引作为增加X值(曲线参数),然后使用两个单独的SplineInterpolators作为实际的X和Y坐标。
    • 但是我如何从这两条曲线中得到 1 条曲线?
    • @RoiEX:不要绘制曲线参数,只绘制生成的 X 和 Y 坐标。
    • 好的,我明白了...只有一个问题,如何在我的 graphics2D 对象上绘制这些坐标?通过绘制点?
    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    相关资源
    最近更新 更多