【问题标题】:Filling algorithm from edges to center in JavaScriptJavaScript中从边缘到中心的填充算法
【发布时间】:2026-01-04 03:55:01
【问题描述】:

我正在为 RepRap 机器创建一个切片器。

我被困在编程填充算法上,它会像这样爬升:

这是一种洪水填充,但它必须像螺旋一样从边缘到中心。算法生成的路径对于机器来说是必不可少的。

有人知道怎么解决吗?谢谢

由 phenxd 回答

【问题讨论】:

  • 我想你要做的就是看看img[x - 1][y]img[x][y - 1],如果它们中的任何一个不是1,那么改变img[x][y]的颜色。
  • 你知道起点的x和y坐标吗?
  • findFirstPixel() { for(var x = 0; x
  • 无法想象比使用凸包更简单的解决方案,但可能是错误的

标签: javascript algorithm canvas


【解决方案1】:

我对您的建议是尝试实现您自己的 floodfilling algorithm 变体

不过,由于您想从外部边界绘制,而不是每次都以相同的顺序检查上、下、左、右邻居,您应该从当前绘制的“方向”相对地进行。

例如。

第一个像素在左边。

check left : skip
check down : draw   

MOVING DOWN   
    check left : skip   
    check down : skip   
    check right : draw   

MOVING RIGHT    
    check down : draw   // We rotated the order by 90 degrees!

etc.

目标是始终检查当前方向右侧的像素,以便我们始终位于绘图的外部边界

【讨论】: