我正在尝试研究一种将一个“形状”变形为另一个“形状”的算法。两种形状都是任意的,甚至可能有更小、不连贯的形状。
到目前为止,我的基本想法如下:定位形状的边缘,沿着这些边缘放置点,然后对目标图像执行相同的操作,然后将点移动到它们的目标。
这是一个插图:
我只是不知道从哪里开始。上图是简化图,实际用例具有更复杂的形状/轮廓。我的主要问题是:如何处理不相交的形状?我能想到的最好的办法是找出两部分之间的最近点,并将它们连接在一起作为路径的一部分。但是我将如何实现呢?
我还没有任何代码,我仍处于计划阶段。我想我要问的是是否有人可以将我链接到任何可能有帮助的资源,或提供任何指示。搜索谷歌已经产生了一些有趣的变形算法,但它们都处理完整的图像,并涉及将图像分解成碎片以重塑它们,这不是我想要的。
请注意,这将在 JavaScript 中使用,但如果更容易,也可以在 PHP 中预先计算。