Flash已经更名为Animate,可见Adobe将其定位成动画工具。虽然荣光不在,但是,绘图,动画,界面编辑功能依旧十分强大。
利用JSFL进行工具拓展,可以将一些体力劳动转化成一键操作。
Flash中笔刷绘制的曲线实际上是二次贝塞尔曲线的点集合。
JSFL解析笔刷,曲线会拆分成多份。画一条曲线,然后,将其解析成二次贝塞尔曲线队列,按照队列顺序绘画出每一段曲线放置到新建的图层中取。然后,反向取消刚才的操作,这里倒叙的过程中,会发现,一条曲线实际上是分成两段的。[如果是复杂的曲线,会分成更多段...]
相邻的两段贝塞尔曲线,如果想要平滑链接,需要满足下图
也就是两个控制点和链接点需要在一条直线上。我们可以通过这个条件对解析出的节点数组进行再排序。
P2点是两条贝塞尔曲线的公共点,这个点必须相等才可以。
P2上两侧与C12和C23运算得到的斜率,其实际值并不是完全一直,多少有些偏差。
所以,这里将两端的斜率转换成角度,通过角度差很小的近似为一致的方式,进行判断