通过使用paper.js,我想在对象移动后创建一个曲线变形动画。这种变形应该只是一个简单的变化,比如在CorelDraw中移动路径句柄,但它应该跟随移动的对象。
到目前为止,我的努力是jsbin:
http://jsbin.com/luwosiniga/1/edit?js,output
主要问题在于:
var sigm_location = sigmoid_path.getNearestLocation(imi_logo.position);
sigm_location.segment.handleIn.x = 20;
即,我可以看到段点句柄已移动,但路径形状保持不变,并且它也仅对第一个段执行此操作。控制台输出中的值(对于handleIn.x)是20.有什么建议吗?
此外,如果可以采用任何其他技术,那么知道......
答案 0 :(得分:1)
我已经攻击了你创建的jsbin并找到了一些东西。
我认为主要问题是行sigmoid_path.smooth()
。如果你评论说该线变形;平滑路径摆脱了变形。也许通过平滑路径开始每个事件然后变形线。看起来调整相邻段的手柄也可能会产生更令人愉悦的变形。
我相信你也想使用sigmoid_path.add(newPoint)
而不是lineTo
,因为你一次只添加一个段。
如果你想看一下,我的修订版就在这里:jsbin.com/sukolimavu/2/edit
一个小注 - 我在遍历曲线长度后关闭onFrame处理程序 - 它有助于在使用代码时的性能。