在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中使用路径描画二阶、三阶贝塞尔曲线相关推荐

  1. HTML5 canvas中使用路径

    如何使用路径 在Canvas中绘图,其实就是先按照一定顺序定义一些坐标点,再通过指定的方式,用画笔将这些坐标点连接起来,就形成我们所需要的图形. Canvas中的所有基本图形,包括线段.矩形.圆弧.贝 ...

  2. HTML5 Canvas中绘制贝塞尔曲线

    绘制贝塞尔曲线 贝塞尔曲线于1959年,由法国物理学家与数学家Paul de Casteljau所发明,于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,并用于汽车的车 ...

  3. html5怎么转换,HTML5 canvas中的转换方法

    转换方法 scale(scalewidth,scaleheight)                缩放当前绘图至更大或更小 scalewidth         缩放当前绘图的宽度 (1=100%, ...

  4. 微信小程序画布实现冒泡点赞,三阶贝塞尔曲线

    一.核心代码 1)wxml 核心代码 <canvas wx:for="{{bezierCount-0}}" wx:key="key" class=&quo ...

  5. android贝塞尔曲线实例,android中贝塞尔曲线的应用示例

    前言: 贝塞尔曲线又称贝兹曲线,它的主要意义在于无论是直线或曲线都能在数学上予以描述.最初由保罗·德卡斯特里奥(Paul de Casteljau)于1959年运用德卡斯特里奥演算法开发(de Cas ...

  6. HTML5画布Canvas线段、矩形、弧形及贝塞尔曲线等简单图形绘制

    tip:有问题或者需要大厂内推的+我脉脉哦:丛培森 ٩( 'ω' )و HTML5中最有意思的就是这个canvas了 通过它我们可以画自己想要的图形 它也是十分重要的技术 应用于游戏.图表等等 或者绘 ...

  7. html5贝塞尔曲线,用canvas绘制一个曲线动画——深入理解贝塞尔曲线

    前言 在前端开发中,贝赛尔曲线无处不在: 它可以用来绘制曲线,在svg和canvas中,原生提供的曲线绘制都是使用贝赛尔曲线 它也可以用来描述一个缓动算法,设置css的transition-timin ...

  8. HTML5 基础知识,第 3 部分 HTML5 API 之应用-介绍HTML5 API 的用法和价值,Canvas 提供的创造性,以及Web storage的离线应用

    HTML5 集设计者和开发者于一身,其主要任务就是构建高效的丰富 Internet 应用程序之富网络应用 (Rich Internet Application,简称RIA),尤其是富 UI(User ...

  9. HTML5 API详解(12):canvas画布API提供的内容很丰富啊~

    不考虑代码质量的话,一般来说css3>canvas>纯js. 1. css3动画是独立与js线程的,js的运算操作不会阻塞css3的动画,所以在系统cpu占用率较高的时候,css3的动画性 ...

最新文章

  1. 刷题:二叉树的遍历方式及根据遍历结果还原二叉树
  2. Linux 安装Boost
  3. 20145222黄亚奇《Java程序设计》第1周学习总结
  4. 如何解决Asp.Net MVC和WebAPI的Controller名称不能相同的问题
  5. binder IPC TRANSACTION过程分析(BC_TRANSACTION-Binder Driver)
  6. mac php7 mysql.so_mac下安装php7详解
  7. 局域网内文件传输速度_详解蒲公英路由器组网 实现文件共享
  8. 试用期这样做更快通过
  9. 东莞华勤通讯软件测试怎么样,【社招】华勤通讯NBD测试验证部急聘岗位-东莞...
  10. 请问学习前端最有效的办法是什么?
  11. Microsoft Office Communications Server 2007 R2 RTM 简体中文企业版部署速成篇之一
  12. PIC16F877A的50HZ正弦波
  13. 杨振宁与清华计算机系,他放弃美国国籍,和杨振宁一起回国,让清华计算机系问鼎全球...
  14. Ubuntu Emacs Fcitx 中文输入法设置
  15. 计算机c盘用户里的APPDATA,appdata是什么文件夹 C盘Appdata文件能不能删除?
  16. 无人机基础知识:多旋翼无人机各模式控制框图
  17. 世界杯最野蛮大战,巴西付出惨重代价步入四强
  18. 设计模式六大原则——单一职责原则(SRP)
  19. ubuntu16.04无线网卡rtl8723be驱动问题
  20. Linux的内核设计与实现之进程管理(含源码)

热门文章

  1. Java网络编程socket基础学习
  2. 年终总结--时光如水,生命如歌
  3. 2015年1月9日XX大学XX学院考试题
  4. unity的矢量数学
  5. 学习游戏要学习编程语言吗?十大主流编程语言解析
  6. 表格制作过程html,HTML进行表格制作
  7. [MIT]微积分重点 第十七课 六函数、六法则和六定理 学习笔记
  8. 智慧工地管理平台系统赋能建筑企业数字化管理
  9. 交互式图像分割论文合集
  10. CSS 选择器(超级详细,欢迎补充)