当筵意气临九霄,星离雨散不终朝。这篇文章主要讲述Android-原笔迹手写的探索与开发相关的知识,希望能为你提供帮助。
前言
这篇文章主要是关于移动端原笔迹的开发,让平板上的手写效果达到笔迹光滑且有笔锋。
- 介绍关于原笔迹的算法思路。
- 项目github地址
曲线拟合算法
利用曲线拟合算法增加虚拟的点,使得笔迹更加光滑,关于算法思想本文采用的是B样条插值算法。
采集点:获取笔输出的两个关键点a1、a2,以及a1和a2附近的几个点a3,a4;
拟合点:利用a1,a2,a3,a4计算出a1和a2之间曲线的步长,再根据步长计算出a1与a2之间所有的点,所
计算出的点即为曲线上的点;
简单效果图展示:
文章图片
梯形填充笔迹
利用梯形填充思想来实现笔锋的效果。
【Android-原笔迹手写的探索与开发】获取笔宽:获取到a1与a2两点笔的压力,转换成对应的宽度作为此段起点和终点的宽度d1,d2,以d1与、
d2差再除以a1与a2点之间的个数得到曲线点之间笔宽的差值,再计算出该段曲线上所有点a1,b1...bn,a2
对应的笔宽l1...ln;
计算梯形:利用曲线上相邻的点和对应的笔宽计算出梯形,利用图形模块的填充效果将梯形填充;
处理梯形连接处:对于每个梯形连接处,根据此处关键点特征区分为不做处理,画线以及画椭圆,并且
将连接处填充,即生成原笔迹效果;
效果展示:
文章图片
文章图片
项目地址
关于github代码地址:https://github.com/doubledouble123/Pens
总结
本文通过曲线拟合算法和梯形填充算法完成了原笔迹效果的实现,提供平板的书写体验。
推荐阅读
- Android OS的image文件组成
- 当前Android开发人员如何提升岗位竞争力
- mybatis使用Dao和Mapper方式
- [Android] Android 支持下拉刷新上拉加载更多 的 XRecyclerview
- 一种解决 MacBook 里的 App Store 无法登录的问题
- Delphi通过AppendMenu和DeleteMenu在系统菜单中添加删除菜单项
- [Functional Programming] From simple implementation to Currying to Partial Application
- Ambari(Provide ability to apply single patches on top of RU release)
- 适合精致女孩使用的APP软件 不容错过的精彩人生