我正在寻找一种算法,该算法采用矢量图像数据(例如边缘集合)并插入另一组边缘,这是两个(或更多)集合的“平均值”。
换句话说,就像Adobe Flash中你“补间”两个矢量图像一样,软件会自动计算中间图像。因此,您只需指定起始图像和结束图像,然后Flash将处理所有中间图像。
有没有建立的算法来做到这一点?特别是在不同数量的边缘的情况下?
答案 0 :(得分:2)
你到底是什么意思?我们在谈论使用曲线的平滑矢量图形吗?
基本策略是简单地对控制多边形的点和方向进行线性插值。
基本上你可以简单地取两个相应的点(每个曲线/矢量形式之一)并用以下内容进行插值:
x(t)=(1-t)* p 1 + t * p 2 ,其中t为[0,1]
(当然t = 0.5会给你两者之间的平均值)
由于矢量图形通常使用曲线,因此您需要对每个控制点的方向矢量执行相同操作,以获得平均曲线的方向矢量。
一个很大的问题是匹配每个控制多边形的正确点,特别是如果两条曲线具有不同的度数。您可以尝试对其中一个进行度数提升以匹配另一个的度数,然后逐个将它们相互分配并进行插值。
也许这有帮助...