html5创建三次贝塞尔曲线,HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
在HTML5 Canvas中,可以用以下方法描画三阶和二阶的贝塞尔曲线:
复制代码代码如下:
context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)
context.quadraticCurveTo(cpx, cpy, x, y)
贝塞尔曲线是在二维平面上由一个“起始点”,一个“结束点”,以及一个或多个“控制点”定义的曲线。普通的三阶贝塞尔曲线使用两个控制点,而二阶曲线则只使用一个控制点。
要描画二阶贝塞尔曲线,只需设置结束点的坐标和控制点的坐标即可:
复制代码代码如下:
context.moveTo(0,0);
context.quadraticCurveTo(100,25,0,50);
代码执行结果如下:
上面例子中的曲线从坐标(0,0)开始,到(0,50)结束,而用于控制曲线描绘的控制点的坐标为(100,25)。
相比二阶曲线,由于可以设置两个控制点,三阶贝塞尔曲线的描画更为灵活。下面的代码描画了一条”S”形的曲线:复制代码代码如下:
context.moveTo(150,0);
context.bezierCurveTo(0,125,300,175,150,300);
译注1:关于贝塞尔曲线,可以参考Wikipedia上的条目(http://en.wikipedia.org/wiki/Bézier_curve),其中的动画很好地诠释了贝塞尔曲线的生成机制。
译注2:目前HTML5 Canvas最高仅支持三阶贝塞尔曲线,四阶以上的曲线尚不支持。
html5创建三次贝塞尔曲线,HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线相关推荐
- HTML5 canvas中使用路径
如何使用路径 在Canvas中绘图,其实就是先按照一定顺序定义一些坐标点,再通过指定的方式,用画笔将这些坐标点连接起来,就形成我们所需要的图形. Canvas中的所有基本图形,包括线段.矩形.圆弧.贝 ...
- HTML5 Canvas中绘制贝塞尔曲线
绘制贝塞尔曲线 贝塞尔曲线于1959年,由法国物理学家与数学家Paul de Casteljau所发明,于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,并用于汽车的车 ...
- html5怎么转换,HTML5 canvas中的转换方法
转换方法 scale(scalewidth,scaleheight) 缩放当前绘图至更大或更小 scalewidth 缩放当前绘图的宽度 (1=100%, ...
- 微信小程序画布实现冒泡点赞,三阶贝塞尔曲线
一.核心代码 1)wxml 核心代码 <canvas wx:for="{{bezierCount-0}}" wx:key="key" class=&quo ...
- android贝塞尔曲线实例,android中贝塞尔曲线的应用示例
前言: 贝塞尔曲线又称贝兹曲线,它的主要意义在于无论是直线或曲线都能在数学上予以描述.最初由保罗·德卡斯特里奥(Paul de Casteljau)于1959年运用德卡斯特里奥演算法开发(de Cas ...
- HTML5画布Canvas线段、矩形、弧形及贝塞尔曲线等简单图形绘制
tip:有问题或者需要大厂内推的+我脉脉哦:丛培森 ٩( 'ω' )و HTML5中最有意思的就是这个canvas了 通过它我们可以画自己想要的图形 它也是十分重要的技术 应用于游戏.图表等等 或者绘 ...
- html5贝塞尔曲线,用canvas绘制一个曲线动画——深入理解贝塞尔曲线
前言 在前端开发中,贝赛尔曲线无处不在: 它可以用来绘制曲线,在svg和canvas中,原生提供的曲线绘制都是使用贝赛尔曲线 它也可以用来描述一个缓动算法,设置css的transition-timin ...
- HTML5 基础知识,第 3 部分 HTML5 API 之应用-介绍HTML5 API 的用法和价值,Canvas 提供的创造性,以及Web storage的离线应用
HTML5 集设计者和开发者于一身,其主要任务就是构建高效的丰富 Internet 应用程序之富网络应用 (Rich Internet Application,简称RIA),尤其是富 UI(User ...
- HTML5 API详解(12):canvas画布API提供的内容很丰富啊~
不考虑代码质量的话,一般来说css3>canvas>纯js. 1. css3动画是独立与js线程的,js的运算操作不会阻塞css3的动画,所以在系统cpu占用率较高的时候,css3的动画性 ...
最新文章
- 刷题:二叉树的遍历方式及根据遍历结果还原二叉树
- Linux 安装Boost
- 20145222黄亚奇《Java程序设计》第1周学习总结
- 如何解决Asp.Net MVC和WebAPI的Controller名称不能相同的问题
- binder IPC TRANSACTION过程分析(BC_TRANSACTION-Binder Driver)
- mac php7 mysql.so_mac下安装php7详解
- 局域网内文件传输速度_详解蒲公英路由器组网 实现文件共享
- 试用期这样做更快通过
- 东莞华勤通讯软件测试怎么样,【社招】华勤通讯NBD测试验证部急聘岗位-东莞...
- 请问学习前端最有效的办法是什么?
- Microsoft Office Communications Server 2007 R2 RTM 简体中文企业版部署速成篇之一
- PIC16F877A的50HZ正弦波
- 杨振宁与清华计算机系,他放弃美国国籍,和杨振宁一起回国,让清华计算机系问鼎全球...
- Ubuntu Emacs Fcitx 中文输入法设置
- 计算机c盘用户里的APPDATA,appdata是什么文件夹 C盘Appdata文件能不能删除?
- 无人机基础知识:多旋翼无人机各模式控制框图
- 世界杯最野蛮大战,巴西付出惨重代价步入四强
- 设计模式六大原则——单一职责原则(SRP)
- ubuntu16.04无线网卡rtl8723be驱动问题
- Linux的内核设计与实现之进程管理(含源码)