java - 对 Path2D 的绘图进行动画处理

标签 java swing drawing path-2d

我正在创建一个程序,让用户在屏幕上绘图,就像在 MS Paint 中使用铅笔工具一样,然后允许用户重播创建绘图的过程,就像有人在前面画图一样。你。

我使用 Path2D 完成此操作的方式,并通过 moveTo 和 lineTo 方法,使用路径绘制一条线。

我现在似乎无法弄清楚如何为 Path2D 对象的重绘设置动画。我当前的策略是创建一个新的 Path2D,并使用 PathIterator,迭代地将旧路径中的线段添加到新路径。

这是我目前的想法:

public void redrawPath() {
    Path2D oldPath = path;
    path = new Path2D.Double();
    double[] coords = new double[100];

    PathIterator pi = oldPath.getPathIterator(new AffineTransform());

    while (!pi.isDone()) {
        pi.next();
        pi.currentSegment(coords);
        //Add segment to new path

        repaint();
    }
}

主要问题是我不知道线段的大小,所以我不知道如何调整坐标数组的大小。我还没有完全弄清楚如何将这些段添加到新路径中。看起来可以使用 Path2D 中的追加方法,尽管它似乎将整个路径添加到自身。

我意识到 Path2D 是一个 Shape,但我似乎找不到任何替代方法来做到这一点。

最佳答案

您可以使用 FlatteningPathIterator 传递 Shape 和处理段。

请参阅此处的移动点示例 http://java-sl.com/tip_flatteningpathiterator_moving_shape.html

关于java - 对 Path2D 的绘图进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22784692/

相关文章:

java - 在区域设置“en_US”的代码 'user.title' 下找不到消息

java - 欧拉计划的错误答案 50

java - 为什么日期 1986/05/04 从 1 :00 but not 0:00 in java ( strange behaviours of calendar with the time zone - Shanghai )? 开始

java - 如何在现有选项卡之间插入新选项卡而不删除任何选项卡?

java - Eclipse 可以很好地运行我的程序,但是 JAR 文件不能

image-processing - 如何从 System.Drawing.Image 创建 Emgu 图像?

java - 防止 Android Activity 对话框在外部触摸时关闭

java - 在 JTextArea 中显示大文件

javascript - 在 Canvas 中旋转 Sprite

javascript - Google map API 绘图管理器 : remove double-click to close polygon or change sensitivity