我如何"膨胀"多边形?也就是说,我想做类似的事情:

要求是新的(膨胀的)多边形的边/点都与旧的(原始)多边形处于相同的恒定距离(在示例图片上它们不是,因为那时它必须使用弧来填充顶点,但是让我们暂时忘掉它;)).
我正在寻找的数学术语实际上是向内/向外多边形的偏离.+1指向balint指出这一点.替代命名是多边形缓冲.
我的搜索结果:
以下是一些链接:
我有一个很长一段时间的项目:一个基本的矢量图形工具,它在浏览器中运行并使用SVG和Javascript(也许你已经在其他地方看到了其中的一些).该工具只有非常有限的功能集,因为受众受限制且目的非常具体,事实上不允许其他功能超出明确允许的范围(您知道).一个遗漏的特征是侵蚀(也称为插入或薄)和扩张(开始,加粗,加粗)多边形和其他图形元素.
我多次使用Adobe Illustrator的偏移路径效果,使用它我可以轻松地复制稀疏或加厚的图形对象,而不会影响原始对象,因此几乎可以支持程序.
我试图在SVG中使用相同的功能,但没有成功.
我尝试过以下方法:
- 扩展和侵蚀过滤器,但结果不令人满意(请参见此处图像)
- 服务器端Python的Shapely库,但这种解决方法太慢,只允许插入或开始基本多边形(描述)这里)
- 找到javascript库/代码/函数,它可以改变图形元素的路径数据,但没有找到javascript
那么有没有任何有意义的方法来实现这一点,如偏移路径效应和如何?