gpt4 book ai didi

java - 使用计数器的 Douglas Peucker 算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:17:31 26 4
gpt4 key购买 nike

使用计数器暂停执行以显示各个处理步骤来逐步完成道格拉斯普克线简化算法是否可行?我不确定是否可能。如果是这样的话,一个特定的数据结构建议这样做。我只看到了递归的解决方案,不确定这是否可行?

最佳答案

是的,这当然是可能的。如果您最感兴趣的是查看算法完成后采取的步骤,那么最简单的方法就是在算法的每个步骤中保留一份点列表的副本。算法完成后,您可以打印出中间步骤列表。

例如,如果您将点存储在一个列表中,那么您可以在每次迭代时复制该列表:

class DouglasPeucker {
private List<Point[]> steps = new ArrayList<>();

public Point[] compute(Point[] points) {
steps.add(points.clone());
// perform normal recursive steps
}

public void printSteps() {
for (Point[] points: steps) {
...
}
}
}

请注意,这是数组的浅拷贝 - 即点对象未被克隆。如果点对象是不可变的(它们可能应该是不可变的),这将很好地工作。

或者,如果您想在每个点停止并检查变量的状态,那么您应该使用在适当位置设置断点的交互式调试器。

关于java - 使用计数器的 Douglas Peucker 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39134583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com