html5Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法.pdf

html5Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
arc,arcTo 以及 quadraticCurveTo. 他们都有一个共同点, 就是他们画的曲线都只能偏向一 边 ,今天讲的 bezierCurveTo 与他们最大的不同点就是有两个控制点, 即可以画出 S 形的曲线 了,感兴趣的朋友可以了解下 bezierCurveTo ,也就是所谓的贝赛尔曲线了, 如果你学过某些画图工具, 就能马上理解。 bezierCurveTo 的语法如下: ctx.bezierCurveTo(x1,y1,x2,y2,x,y); 他的参数我照例解释一下,其中的( x1,y1 )即控制点 1 的坐标, (x2,y2 )是控制点 2 的坐标, (x,y) 是他的终点坐标。和 quadraticCurveTo 一样, 他的起点坐标也是由 moveTo 预先设置好的。 所以, bezierCurveTo 画出一条曲线需要 4 个点:起点,终点,控制点 1,控制点 2.为了 后续讲解,这里我假定控制点 1 对应起点,控制点 2 对应终点 这里又要提到 canvas 画图的老问题了,就是代码画图全部靠猜,画到哪里你要刷新下 才能明了。 我还是延续前面的优良传统,画一些辅助线来帮助大家理解: 复制代码代码如下 : var x1=450, // 控制点 1 的 x 坐标 y1 = 300, // 控制点 1 的 y x2 = 450, // 控制点 2 的 x y2 = 500,// 控制点 2 的 y x = 300, // 终点 x y = 500;// 终点 y ctx.moveTo(300,300);// 起点 ctx.beginPath(); ctx.lineWidth = 5; ctx.strokeStyle = "rgba(0,0,0,1)" ctx.moveTo(300,300); ctx.bezierCurveTo(x1,y1,x2,y2,x,y); ctx.stroke(); //开始画辅助线 ctx.beginPath(); ctx.strokeStyle = "rgba(255,0,0,0.5)"; ctx.lineWidth = 1; // 连接起点和控制点 1 ctx.moveTo(300,300); ctx.lineTo(x1,y1); // 连接终点和控制点 2 ctx.moveTo(x2,y2); ctx.lineTo(x,y); // 连接起点与终点(基线) ctx.moveTo(300,300); ctx.lineTo(x,y); ctx.stroke(); 这里先画了一个类似 quadraticCurveTo 的曲线,只偏向一边。这条线显得比较“圆润” , 是因为控制点 1 与 2 的 x 坐标是相同的。 现在再画一个 S 形的曲线,证明 bezierCurveTo 是与众不同的: 复制代码代码如下 : var x1 = 150; ... 其实只要把控制点 1 的坐标变一下就行了。 如果控制点 1 与控制点 2 的坐标分别处在基 线的两边,则是画出 S 形的曲线;如果都在基线的某一边,则是类似于 quadraticCurveTo 的 效果。 这个例子的情形比较简单, 基线条(起点至终点)是竖直的, 但实际应用中大部分时候 我们的基线都是斜着的,那情况就复杂多了。不过

文档评论(0)

lyf66300 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8020140062000006

1亿VIP精品文档

相关文档