当前位置: 首页 > news >正文

企业网站开发 语言 收录新闻 近期大事件

企业网站开发 语言 收录,新闻 近期大事件,ppt做的好的网站,wordpress网站被黑笔者用ArkTS 写了一个简单的带笔锋的手写板应用,并且可以将手写内容保存为图片。 一、效果图 手写效果如下(在鸿蒙手机模拟器上运行,手写时反应可能会有点慢) 二、实现方法 参考文章: 支持笔锋效果的手写签字控件_a…

        笔者用ArkTS 写了一个简单的带笔锋的手写板应用,并且可以将手写内容保存为图片。

一、效果图

        手写效果如下(在鸿蒙手机模拟器上运行,手写时反应可能会有点慢)

二、实现方法

参考文章:

支持笔锋效果的手写签字控件_android 写字板如何兼容笔峰-CSDN博客

安卓画笔笔锋的实现探索(一) - 简书

主要代码:

        核心思想在于通过插值,在两点之间逐渐绘制多个椭圆,从而呈现出笔锋的效果。

  drawLine 方法是一段用于在2D渲染画布上绘制线条并赋予其笔锋效果的代码。

        在代码中,curDis 用于计算起始点和结束点之间的欧几里德距离。steps 根据距离计算出线条上需要绘制的点的数量。deltaX, deltaY, deltaW 分别表示 x 坐标、y 坐标和宽度每一步的增量。

        通过 for 循环,在两点之间进行插值,绘制多个椭圆,以模拟笔锋效果。每一步循环中,创建一个椭圆对象 (oval),并设置其位置调用 oval 方法绘制椭圆。

        最后,更新坐标和宽度的增量,为绘制下一个椭圆做准备。

  /*** 绘制线条方法,实现笔锋效果* @param canvas 2D 渲染上下文对象* @param x0 起始点 x 坐标* @param y0 起始点 y 坐标* @param w0 起始点宽度* @param x1 结束点 x 坐标* @param y1 结束点 y 坐标* @param w1 结束点宽度*/private drawLine(canvas: CanvasRenderingContext2D, x0: number, y0: number, w0: number, x1: number, y1: number, w1: number): void {// 计算两点之间的欧几里德距离const curDis: number = Math.hypot(x0 - x1, y0 - y1);let steps: number;// 根据距离计算步数steps = 1 + Math.floor(curDis / 2);// 计算每一步的增量let deltaX: number = (x1 - x0) / steps;let deltaY: number = (y1 - y0) / steps;let deltaW: number = (w1 - w0) / steps;let x: number = x0;let y: number = y0;let w: number = w0;// 根据步数循环绘制椭圆for (let i = 0; i < steps; i++) {// 创建椭圆对象const oval: MyRect = new MyRect();const top: number = y - w / 2.0;const left: number = x - w / 4.0;const right: number = x + w / 4.0;const bottom: number = y + w / 2.0;// 设置椭圆的位置oval.set(left, top, right, bottom);// 调用绘制椭圆的方法this.oval(canvas, oval);// 更新坐标和宽度增量x += deltaX;y += deltaY;w += deltaW;}}

        绘制椭圆的方法,在安卓中可以用canvas.drawOval()方法,在HarmonyOS中需要通过canvas.ellipse()方法来实现:

/*** 绘制椭圆的方法* @param canvas 渲染画布* @param roundedCircleBox 圆角矩形的边界框*/private oval(canvas: CanvasRenderingContext2D, roundedCircleBox: MyRect): void {// 开始新的路径canvas.beginPath();// 绘制椭圆,参数依次为:椭圆中心 x 坐标、椭圆中心 y 坐标、椭圆x轴半径、椭圆y轴半径、旋转角度、起始弧度、结束弧度canvas.ellipse(roundedCircleBox.left + (roundedCircleBox.right - roundedCircleBox.left) / 2,roundedCircleBox.top + (roundedCircleBox.bottom - roundedCircleBox.top) / 2,(roundedCircleBox.right - roundedCircleBox.left) / 2,(roundedCircleBox.bottom - roundedCircleBox.top) / 2,0, // 旋转角度为 0,表示不旋转0, // 起始弧度为 02 * Math.PI); // 结束弧度为 2π,表示绘制整个椭圆// 填充椭圆canvas.fill();// 关闭路径canvas.closePath();}
三、开源地址

NotePad: HarmonyOS ArkTS带笔锋手写板应用

http://www.zhongyajixie.com/news/41931.html

相关文章:

  • 网站建设冷色调百度关键词排名软件
  • 做网站系统具体步骤营销模式方案
  • 做头像的网站空白网络运营工作内容
  • 郑州做网站茂睿科技百度引流平台
  • 做的网站第二年续费多钱免费推广的app有哪些
  • 校车网站建设怎么免费自己做推广
  • 上海网站设计建设公司网页推广怎么做
  • 深圳网站建设公司报价单站长网站统计
  • 用户密码找回网站seo网站自动推广
  • 老会计手把手教做帐官方网站上海比较好的seo公司
  • 免费拓客软件排行榜网站标题seo外包优化
  • 射阳网站设计磁力狗在线搜索
  • 柳江企业网站开发公司十大计算机培训学校
  • 家政的网站怎么做seo网站优化助理
  • 无锡网站搜索优化国外搜索引擎网站
  • 中信国际建设公司网站百度小说搜索热度排行榜
  • 广州网站建设网站定制b2b
  • 做服装在哪个网站找福州seo网站排名
  • 2017网站建设报价表百度热搜高考大数据
  • 微商城平台排名电子商务沙盘seo关键词
  • 企业网站备案需要哪些资料推广赚钱的平台
  • 做散客机票的网站如何推广如何外贸推广
  • 网站平台建设公司广州网站运营
  • 上市公司网站建设报价凡科建站怎么收费
  • 上海网站营销推企业网络推广方案
  • 做网站客户端自己建网站要花多少钱
  • 59一起做网站怎样制作网页设计
  • 做pc端网站适配百度代理加盟
  • wordpress4.0.6 漏洞seo是什么意思 为什么要做seo
  • 做b2b网站销售怎样让客户找上门怎么做网站优化排名