如何以编程方式将各个点连接为 SVG 中的“blob”?

问题描述

我想做什么:

我正在尝试围绕一组类似于 borders in Stellaris 的点创建边界,以便它们彼此平滑连接,并在必要时创建单独的飞地。我需要 SVG 格式,因为我要将这些覆盖在现有的交互式 SVG 文件上,该文件实际上在我正在制作的网站中绘制了这些点。我正在尝试用 python 来做这件事,但如果我必须使用不同的语言,这没什么大不了的。

这更像是一个概念问题而不是调试问题,所以我真的没有任何片段可以放在这里

我是如何尝试的:

我已经创建了与我在 desmos 中尝试制作的形状相匹配的 equations,但我无法将其转换为实际代码

  • 我最初的想法是使用路径或曲线,因为这样也可以用颜色填充。问题是,这需要将不等式的边界转换为 Beizer 曲线,据我所知,这无法以编程方式完成。

  • 在那之后,我研究了 this guideanother 之后的元球,因为它们大致符合我的目标,但它们要么没有概括为可变数量的点,或者无法处理分隔点。

  • 我还考虑过使用方程迭代图像并相应地对其进行着色,但这会输出为 PNG 而不是 SVG,而且通常看起来这是一种非常低效的方法。>

在这里遗漏了什么吗?这甚至可能吗?

编辑:根据评论中给出的想法,我正在尝试使用行进广场,目前尚无具体内容,但似乎很有希望。

编辑:我最终混合使用了 Voronoi Diagrams 和 Square marching,使用 Voronoi 来确定区域,然后使用 Square marching 使其平滑并将区域导出为 SVG。我会在得到一些好的结果后发布代码

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)