前言

这篇文章主要是关于移动端原笔迹的开发,让平板上的手写效果达到笔迹光滑且有笔锋。

  • 介绍关于原笔迹的算法思路。
  • 项目github地址

算法思路分析

曲线拟合算法

利用曲线拟合算法增加虚拟的点,使得笔迹更加光滑,关于算法思想本文采用的是B样条插值算法。

采集点:获取笔输出的两个关键点a1、a2,以及a1和a2附近的几个点a3,a4;

拟合点:利用a1,a2,a3,a4计算出a1和a2之间曲线的步长,再根据步长计算出a1与a2之间所有的点,所

计算出的点即为曲线上的点;

简单图示:

梯形填充笔迹

利用梯形填充思想来实现笔锋的效果。

获取笔宽:获取到a1与a2两点笔的压力,转换成对应的宽度作为此段起点和终点的宽度d1,d2,以d1与、

d2差再除以a1与a2点之间的个数得到曲线点之间笔宽的差值,再计算出该段曲线上所有点a1,b1...bn,a2

对应的笔宽l1...ln;

计算梯形:利用曲线上相邻的点和对应的笔宽计算出梯形,利用图形模块的填充效果将梯形填充;

处理梯形连接处:对于每个梯形连接处,根据此处关键点特征区分为不做处理,画线以及画椭圆,并且

将连接处填充,即生成原笔迹效果;

简单图示:

 项目地址

关于github代码地址:https://github.com/doubledouble123/Pens

手写效果展示:

 总结

本文通过曲线拟合算法和梯形填充算法完成了原笔迹效果的实现,增加了平板的书写体验。

转载于:https://www.cnblogs.com/doubleWin/p/10755464.html

Android-原笔迹钢笔手写的探索与开发相关推荐

  1. Android绘制基础及手写绘制实例

    Android二维图形绘制 Android提供了一系列用于二维绘制的APIs,当绘制2D图形时,通常有两种选择: 1.在一个View对象中绘制.继承View类,在子类的 onDraw()方法中写入自己 ...

  2. android 输入法(包括手写界面)

    公司要开发自己的输入法,找了很多例子,都不是自己想要的.android本身的例子不能满足特殊布局的要求,而且没有手写输入,虽然在例子上实现了手写输入但是布局仍然调不好.花了很长时间来分析代码,太累了, ...

  3. Android Studio编写一个手写字体识别程序

    1.activity_main.xml 的代码 <?xml version="1.0" encoding="utf-8"?> <LinearL ...

  4. Android 建立自己的手写笔画图案 Gesture Builder

    利用反射去存储对对象到SharedPreferences http://www.eoeandroid.com/thread-202940-1-1.html 基于Android平台的车辆信息查询系统的开 ...

  5. python实现手写笔迹,手写识别,语音识别,语音生成

    文章目录 1,先说思路 2,实现截图 3,祭出源代码 1,先说思路 1,应该实现对于手写笔迹的记录,生成字迹截图 1.1怎么实现呢?在定点和移动中的鼠标所在处画一条线,鼠标按住移动的话,线也会跟着移动 ...

  6. 方法 手写promise_JS探索-手写Promise

    无意间在知乎上刷到Monad这个概念,去了解了一下,前端的Promise就是一种Monad模式,所以试着学习一下手写一个Promise. 本文内容主要参考于 只会用?一起来手写一个合乎规范的Promi ...

  7. Android自定义事件总线,手写Android事件总线框架Eventbus(简易版)

    开篇废话 近期利用业余时间,跟着大神把Eventbus的框架学习了一下,在这里,记录一下这次学习的心得. EventBus是针一款对Android的发布/订阅事件总线.它可以让我们很轻松的实现在And ...

  8. Android 输入法(包括手写)补充

    一.全屏设置 public void updateFullscreenMode() { ///将下面的变量isFullscrean置为false,问题解决.google也是这么解释的~~       ...

  9. Android通过webview实现手写签名生成图片并上传服务器

    MainActivity 签名页面 package com.sign.webview;import android.app.Activity; import android.content.Inten ...

  10. uniapp手写_【转】uni-app框架纯手写微信小程序开发左侧滑动菜单

    本帖最后由 fengrui99 于 2020-7-22 14:38 编辑 原文来自:在学习的uni-app的微信小程序开发路上慢慢开始不一直依赖插件(但是使用插件是真的香,一直用一直香) 在大佬的指引 ...

最新文章

  1. 微生态、生信和植物领域最新资讯合集,不看你就亏大啦!!!
  2. js经典试题之ES6
  3. Sublime Text 安装插件的方法
  4. Shared pool内存块组成结构及4031错误原因分析
  5. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - G.重复字符串
  6. 我们为什么要搞长沙.NET技术社区(三)
  7. 使用栈来完成一个表达式的结果
  8. 机器学习理论基础 集成学习前期基础--分类决策树与回归决策树
  9. 数据分析项目实战—信用卡客户违约概率预测
  10. 【UVM芯片漫游指南_000】总目录(下)——UVM目录
  11. linux系统svn安装教程,Linux下SVN安装配置
  12. mysql导入的数据放在那个文件夹下_mysql数据库文件导入
  13. icloud与mysql_ICloud 应用实例(一)
  14. mac移除下载镜像的quarantine
  15. 【python】遍历log查找符合关键字的log
  16. 游戏模型:不是天生,不用PS,3DMax教你怎么拥有长长的睫毛
  17. 【详细七层】OSI 网络模型,七层网络模型
  18. 《华尔街》观后笔记9——拯救危机
  19. Java燕山大学_GitHub - jiajiayao/YsuSelfStudy: 燕山大学空教室查询及教务辅助系统,中国大学生计算机设计大赛省赛三等奖,已上架小米应用商店...
  20. .NET 6 Preview 1 发布

热门文章

  1. stm32f1系列直接存储器存取---DMA
  2. 计算机vga,电脑启用vga模式是什么意思?怎么修复?
  3. xp此计算机无法连接到,WinXP打印机共享无法连接如何解决?
  4. 互联网广告请求链路_微博广告推荐策略工程架构体系演进
  5. 《Effective C++》 目录
  6. Js文字特效—文字段逐个变色循环
  7. 淘宝x-sign算法demo示例
  8. 细节复盘2 (图片放足够大高斯模糊< style > scopedvue打开新的页面轮播图抖动的问题 translateZ、translateY、垂直水平居中)2020-8-1
  9. css实现分割线功能,各种各样的分割线(附效果图)
  10. 快速有效分离RNA——土壤RNA纯化试剂盒