1、分析笔画文件
文件来自github hanzi-writer-data
包括三个部分strokes,medians,radStrokes
strokes:字符串数组,每个字符串表示汉字的一个笔画 完整汉字可通过此数组绘制
为svg格式路径语法,字母代表画笔需要执行的命令,数字代表点坐标
参考(developer.mozilla.org/zh-CN/docs/…)
主要命令
- M x y : 表示移动画笔到 (x, y) 点,准备开始绘制
- L x y : 代表 Line to, L 命令将会画一条线段到 (x, y)
- Z : Z 命令会从当前点画一条直线到路径的起点,即闭合路径
- Q x1 y1, x y : 通过一个控制点绘制二阶贝塞尔曲线
- C x1 y1, x2 y2, x y : 通过两个控制点绘制三次贝塞尔曲线到 (x, y)
medians 点坐标数组,笔画路径结合,每一个数组代表一个笔画路径,可用来做笔画动画
2、汉字绘制
通过iOS提供的UIBezierPath绘制
绘制完成发现子是倒着的,需要对y坐标进行处理,并处理偏移,下移整体高度,再预留上下空位
绘制出的文字非常大,因为默认的画布为1024*1024,根据需要的大小进行缩放
汉字绘制大功告成啦
3、笔画动起来哦
这步也很简单啦绘制medians 路径数组即可,再结合CABasicAnimation做路径动画即可
demo地址:待定哈哈哈
完结撒花