dntzhang / pasition

Path Transition with little JS code, render to anywhere - 轻量级 Path 过渡库,渲染到任何地方
https://dntzhang.github.io/pasition/
1.21k stars 94 forks source link

某些path之间过渡的不是很好 #6

Open Rowandjj opened 6 years ago

Rowandjj commented 6 years ago

像下面这两个形状之间的过渡效果很"奇怪"。这块能否优化下?我调研了下flubber似乎是专门做过优化的

morph_passion

dntzhang commented 6 years ago

但是 flubber 不支持 stroke 模式

Rowandjj commented 6 years ago

@dntzhang 其实是支持的,我刚看了下。。。

dntzhang commented 6 years ago

是吗?那就说明它的算法更优 = =!

dntzhang commented 6 years ago

这里其实是有很大优化空间,而且后续想把颜色 lerp 也加上~~

dntzhang commented 6 years ago

path + color 同时运动

Rowandjj commented 6 years ago

很多svg属性都可以lerp。比如transform、width、height等

akira-cn commented 6 years ago

flubber优化算法的确更好一些,但也复杂得多。我当年在MSRA实习的时候就是研究这个,当时较好的做法其实是做多边形的相容三角剖分然后morphing,毕设就做的这个,这个项目里面有些当年研究过的paper。

这个项目虽然有些情况过渡不是很好,不过代码小,实现简单,我用在spritejs里了:https://github.com/spritejs/sprite-core/blob/master/src/helpers/path/index.js

还是要感谢作者 @dntzhang 。

如果要进一步优化的话可以看一下后续打算怎么做,有时间我可以帮忙一起弄。

dntzhang commented 6 years ago

赞啊! 很棒~ @akira-cn

主要是会有很多条件分支需要独立优化。目前使用的是无脑对齐shape和curves数量并旋转判定最短距离然后计算插值。