CuraEngine.wiki 13.多边形简化

返回 CuraEngine.wiki 0.开发文档目录

文章翻译自官方说明文档,如有错误请积极发言不吝指正
CuraEngine.wiki - Polygon Simplification

多边形简化

CuraEngine 将降低输入形状的分辨率。这是必要的,原因如下:

  • 输出 G 代码的分辨率不应太高。如果 G 代码包含太多短动作,3D 打印机中的处理器就无法及时处理这些命令。通过这些短命令,喷嘴移动太快,而每次移动的处理时间保持相等。因此,有一些参数可以调整 CURA 中的分辨率,使其与打印机配合使用。
  • 这种简化消除了退化情况,例如零长度线段或共线线段。这使得 CuraEngine 中的算法更高效且不易出错。
  • 降低图层的分辨率会使 CuraEngine 切片速度更快。

这里描述了简化的方法。

基本算法

简化算法基于维斯瓦林加姆-怀亚特。其工作原理如下。

多边形或多段线中的每个顶点都被指定一个“重要性”等级,指示该顶点对多边形或多段线的整体形状的重要性。CuraEngine 中使用的重要性等级是偏差:如果删除顶点,多边形链将移动多远。换句话说,顶点离连接两个相邻顶点的直线有多远。这与真实的 Visvalingam-Whyatt 算法的重要性评级不同。

按照从低重要性到高重要性的顺序,考虑移除每个顶点。该考虑根据以下流程图工作。

何时删除或保留顶点

用交点替换边

如果一个顶点在一边有一条短边(我们想要删除),但在另一边有一条长边(我们不想移动,这会导致条带),那么它会尝试用交点替换该边。它查找围绕短边的两条边,并计算它们之间的交点。然后,它会延伸两条周围的边,直到交点,而不是该边。这会将三条边更改为两条,从而有效地删除短边并将顶点数减少一个。

何时删除或保留顶点

上一篇 CuraEngine.wiki 12.设置

下一篇 CuraEngine.wiki 14.普通支撑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值