查看: 216|回复: 12|关注: 0

[已答复] 有没有什么算法能一笔填充任意多边形的?

[复制链接]

新手

8 麦片

财富积分


050


4

主题

12

帖子

0

最佳答案
发表于 2020-5-17 16:48:43 | 显示全部楼层 |阅读模式
本帖最后由 wjk199511140034 于 2020-5-17 16:55 编辑

写了个小程序,虽然可以使用线段填满多边形,但是没有填充顺序,需要好多次才能填满,n=(ymax-ymin)/ystep
填满次数是宏观上起笔的次数,不是算法中迭代的次数
因为是多边形,所以只在y方向有步长,x方向没有步长的,所以每个点都要交在边界上。。
输入是多边形顶点坐标,每一个封闭环用NaN隔开
最后输出的结果是一系列有顺序的点,每一次起笔用NaN隔开

有没有什么比较好的思路或者比较成熟的算法?
未标题-1.png








回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

5

主题

2239

帖子

669

最佳答案
  • 关注者: 186
发表于 2020-5-17 20:24:56 | 显示全部楼层
看不懂你的表述。有内置的 fill 和 polyshape 函数专门用来填充多边形的。
https://www.mathworks.com/help/matlab/ref/polyshape.html
https://www.mathworks.com/help/matlab/ref/fill.html
提问请:①准确描述问题②提出你的思考(等着抄作业的一律锁帖)③提供代码文本而非截图④及时反馈
回复此楼 已获打赏: 0 积分

举报

新手

8 麦片

财富积分


050


4

主题

12

帖子

0

最佳答案
 楼主| 发表于 2020-5-17 22:00:23 | 显示全部楼层
TouAkira 发表于 2020-5-17 20:24
看不懂你的表述。有内置的 fill 和 polyshape 函数专门用来填充多边形的。
https://www.mathworks.com/help ...

我知道这两个命令,但是并不是我想要的。。
比如输入一个四边形顶点是(0 0);(1 0);(1 1);(0 1);
怎样得到(0,0);(1,0);(1,0.2);(0,0.2);(0,0.4);(1,0.4);(1,0.6);(0,0.6);(0,0.8);(1,0.8);(1,1);(0,1);这一系列的点
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

8

主题

1470

帖子

257

最佳答案
  • 关注者: 150
发表于 2020-5-20 13:53:39 | 显示全部楼层
你的填充规则最好是详细些。我看你画的还可以斜着连。

这规则是你自己想得吗?我说说我做过的吧,看你有没有参考。我做过一个机器人的巡逻路线。规则和你不一样。我那个都是垂直走,每次只能转90度。路线随便走。尽可能不重复。
我就把整个图形打上垂直各自,标0 1(相邻的格点不标相同的数字)然后小车从数字更多的点驶入(如果1比0多一个,就随便在边缘找一个1进入)然后随便用个搜索算法走完就行。如果某个数字比另一个数字多两个以上,则没办法一步走完。考虑最小重叠就行了。
兴趣是最好的导师——让Matlab入门从游戏开始
https://www.ilovematlab.cn/thread-546885-1-1.html
回复此楼 已获打赏: 0 积分

举报

新手

8 麦片

财富积分


050


4

主题

12

帖子

0

最佳答案
 楼主| 发表于 2020-5-20 15:50:31 | 显示全部楼层
悟得 发表于 2020-5-20 13:53
你的填充规则最好是详细些。我看你画的还可以斜着连。

这规则是你自己想得吗?我说说我做过的吧,看你有没 ...

对,因为这个X方向上是没有分辨率这一说的,我也看了好多填充算法,基本上都是基于点阵处理的。。
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

8

主题

1470

帖子

257

最佳答案
  • 关注者: 150
发表于 2020-5-20 17:35:14 | 显示全部楼层
wjk199511140034 发表于 2020-5-20 15:50
对,因为这个X方向上是没有分辨率这一说的,我也看了好多填充算法,基本上都是基于点阵处理的。。
...

很多问题都有背景的嘛。我做的那个能处理成点阵就是小车的扫描宽度是固定的。
兴趣是最好的导师——让Matlab入门从游戏开始
https://www.ilovematlab.cn/thread-546885-1-1.html
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
发表于 2020-5-21 15:40:54 | 显示全部楼层
其实我在想这个是 3d打印或者焊接相关的嘛?路径填充?
回复此楼 已获打赏: 0 积分

举报

新手

8 麦片

财富积分


050


4

主题

12

帖子

0

最佳答案
 楼主| 发表于 2020-5-23 13:52:45 | 显示全部楼层
billions1943 发表于 2020-5-21 15:40
其实我在想这个是 3d打印或者焊接相关的嘛?路径填充?

嗯对的,就是3d打印的,自己写了一个泛洪填充,已经解决了问题了:lol
回复此楼 已获打赏: 0 积分

举报

新手

8 麦片

财富积分


050


4

主题

12

帖子

0

最佳答案
 楼主| 发表于 2020-5-23 13:54:06 | 显示全部楼层
悟得 发表于 2020-5-20 17:35
很多问题都有背景的嘛。我做的那个能处理成点阵就是小车的扫描宽度是固定的。 ...

参考泛洪填充写了一个,虽然不是很完美,但是好在问题解决了:lol
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


2

主题

11

帖子

0

最佳答案
发表于 2020-5-24 12:21:49 | 显示全部楼层
wjk199511140034 发表于 2020-5-23 13:54
参考泛洪填充写了一个,虽然不是很完美,但是好在问题解决了

可以发出来参考下? 学习了
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表