版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、通过html5 canvas api绘制弧线和圆形的教程在html5中,canvasrenderingcontext2d对象也提供了特地用于绘制圆形或弧线的办法,请参考以下属性和办法介绍:javascript code复制内容到剪贴板arc(x, y, radius, startrad, endrad, anticlockwise)在canvas画布上绘制以坐标点(x,y)为圆心、半径为radius的圆上的一段弧线。这段弧线的起始弧度是startrad,结束弧度是endrad。这里的弧度是以x轴正方向(时钟三点钟)为基准、举行顺时针旋转的角度来计算的。anticlockwise表示是以逆时针方
2、向还是顺时针方向开头绘制,假如为true则表示逆时针,假如为false则表示顺时针。anticlockwise参数是可选的,默认为false,即顺时针。 arc()办法中的弧度计算方式javascript code复制内容到剪贴板arcto(x1, y1, x2, y2, radius)这个办法将利用当前端点、端点1(x1,y1)和端点2(x2,y2)这三个点所形成的夹角,然后绘制一段与夹角的两边相切并且半径为radius的圆上的弧线。普通状况下,绘制弧线的开头位置是当前端点,结束位置是端点2,并且弧线绘制的方向就是衔接这两个端点的最短圆弧的方向。此外,假如当前端点不在所指定的圆上,本办法还将
3、绘制一条从当前端点到弧线起点的直线。因为具体介绍arcto()办法的篇幅较多,请移步至这里查看arcto()的具体使用。在了解了canvas绘制弧线的上述api之后,我们就一起来看看如何用法arc()绘制弧线。我们已经知道,arc()接收的第4个和第5个参数表示绘制弧线的开头弧度和结束弧度。信任各位读者在小学的数学或几何课程上都学过弧度,弧度是一种角度单位。弧长等于半径的弧,其所对的圆心角就是1弧度。我们还知道,半径为r的圆,其周长为2πr。在具备这些几何学问的前提下,我们就可以用法arc()办法绘制弧线了。用法canvas绘制弧线现在,我们就来绘制一条半径为50px的圆的1/4弧线。j
4、avascript code复制内容到剪贴板 html5 canvas绘制弧线入门示例 您的扫瞄器不支持canvas标签。 /猎取canvas对象(画布)var canvas = document.getelementbyid("mycanvas");/容易地检测当前扫瞄器是否支持canvas对象,以免在一些不支持html5的扫瞄器中提醒语法错误if(canvas.getcontext) /猎取对应的canvasrenderingcontext2d对象(画笔) var ctx = canvas.getcontext("2d"); /开头一个新的绘制路径
5、ctx.beginpath(); /设置弧线的色彩为蓝色 ctx.strokestyle = "blue" var circle = x : 100, /圆心的x轴坐标值 y : 100, /圆心的y轴坐标值 r : 50 /圆的半径 ; /沿着坐标点(100,100)为圆心、半径为50px的圆的顺时针方向绘制弧线 ctx.arc(circle.x, circle.y, circle.r, 0, math.pi / 2, false); /根据指定的路径绘制弧线 ctx.stroke(); 对应的显示效果如下图: 用法canvas沿着顺时针方向绘制弧线如上所示,我们设置了绘
6、制的弧线的所在圆的圆心坐标为(100,100),半径为50px。因为一个半径为r的圆的周长为2πr,也就是说,一个完整的圆,其所对应的弧度为2π(换算成常规角度就是360°),所以我们想要画一个圆的1/4弧线,只要弧度为π/2(即90°)就可以了。在上面的代码中,我们用法了javascript中表示π的常量math.pi。此外,在上面的代码中,我们还设置了绘制弧线的方向为顺时针方向(false)。因为起始弧度为0,结束弧度为π/2,因此弧线将从x轴的正方向开头沿着顺时针方向绘制,从而得到上面的图形。假如我们将上述代码中的弧线绘制方向改为逆时针,会有
7、什么样的效果呢?javascript code复制内容到剪贴板 /猎取canvas对象(画布)var canvas = document.getelementbyid("mycanvas");/容易地检测当前扫瞄器是否支持canvas对象,以免在一些不支持html5的扫瞄器中提醒语法错误if(canvas.getcontext) /猎取对应的canvasrenderingcontext2d对象(画笔) var ctx = canvas.getcontext("2d"); /开头一个新的绘制路径 ctx.beginpath(); /设置弧线的色彩为蓝色 c
8、tx.strokestyle = "blue" var circle = x : 100, /圆心的x轴坐标值 y : 100, /圆心的y轴坐标值 r : 50 /圆的半径 ; /沿着坐标点(100,100)为圆心、半径为50px的圆的逆时针方向绘制弧线 ctx.arc(circle.x, circle.y, circle.r, 0, math.pi / 2, true); /根据指定的路径绘制弧线 ctx.stroke(); 对应的显示效果如下: 用法canvas沿着逆时针方向绘制弧线 用法canvas绘制圆形当我们学会了绘制弧线之后,举一反三,我们想要绘制圆形自然也不
9、在话下,只需要将上述代码的结束弧度改为2π即可。javascript code复制内容到剪贴板 /猎取canvas对象(画布)var canvas = document.getelementbyid("mycanvas");/容易地检测当前扫瞄器是否支持canvas对象,以免在一些不支持html5的扫瞄器中提醒语法错误if(canvas.getcontext) /猎取对应的canvasrenderingcontext2d对象(画笔) var ctx = canvas.getcontext("2d"); /开头一个新的绘制路径 ctx.beginpa
10、th(); /设置弧线的色彩为蓝色 ctx.strokestyle = "blue" var circle = x : 100, /圆心的x轴坐标值 y : 100, /圆心的y轴坐标值 r : 50 /圆的半径 ; /以canvas中的坐标点(100,100)为圆心,绘制一个半径为50px的圆形 ctx.arc(circle.x, circle.y, circle.r, 0, math.pi * 2, true); /根据指定的路径绘制弧线 ctx.stroke(); 对应的显示效果如下:2016314114412878.png (423×312)javasc
11、ript code复制内容到剪贴板 /猎取canvas对象(画布)var canvas = document.getelementbyid("mycanvas");/容易地检测当前扫瞄器是否支持canvas对象,以免在一些不支持html5的扫瞄器中提醒语法错误if(canvas.getcontext) /猎取对应的canvasrenderingcontext2d对象(画笔) var ctx = canvas.getcontext("2d"); /开头一个新的绘制路径 ctx.beginpath(); /设置弧线的色彩为蓝色 ctx.strokestyle
12、 = "blue" var circle = x : 100, /圆心的x轴坐标值 y : 100, /圆心的y轴坐标值 r : 50 /圆的半径 ; /以canvas中的坐标点(100,100)为圆心,绘制一个半径为50px的圆形 ctx.arc(circle.x, circle.y, circle.r, 0, math.pi * 2, true); /根据指定的路径绘制弧线 ctx.stroke(); 备注:arc()办法中的起始弧度参数startrad和结束弧度参数endrad都是以弧度为单位,即使你填入一个数字,例如360,仍然会被看作是360弧度。将上述代码的结束弧度设为360会产生什么用的后果呢?这就要看绘制的方向了(即anticlockwise参数的值),假如是顺时针绘制(false),则将绘制出一个完整的圆形;假如是逆时针绘制,大于2π的弧度将被转换为一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 原发性下肢静脉曲张护理
- 七夕智驾乐行
- 巨结肠手术配合
- 湿疹的诊断和治疗
- 湖南工商大学《文献目录与信息检索》2021-2022学年第一学期期末试卷
- 湖南工商大学《国际金融B》2023-2024学年第一学期期末试卷
- 湖南工程学院《商务英语视听》2021-2022学年第一学期期末试卷
- 中考数学复习专题2方程、不等式、函数的实际应用课件
- 自伤的防范与护理
- 《《管理的技巧》英汉翻译实践报告》
- 11468工作岗位研究原理与应用第2章
- 习作我最喜欢的玩具说课稿
- 统编初中语文教材七年级上册第三单元解析及教学建议
- ZFWG200变速箱及系列驱动桥结构原理及性能介绍讲义课件
- 微课设计与制作《微课的设计思路与流程》课件
- 水泥助磨剂简介课件
- 新时代乡村振兴战略课件
- 行政执法人员培训基础知识课件
- CSM工法等厚度水泥土搅拌墙工程(监理)作业指导书
- 警械的正确使用以及法律适用课件
- 汽车点火系统故障诊断毕业论文
评论
0/150
提交评论