您现在的位置是:网站首页> 编程资料编程资料
使用HTML5 Canvas API绘制弧线的教程通过HTML5 Canvas API绘制弧线和圆形的教程HTML5 Canvas中使用用路径描画圆弧html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2021-08-31
1155人已围观
简介 这篇文章主要介绍了使用HTML5 Canvas API绘制弧线的教程,其中重点讲解了JavaScript使用arcTo()方法根据切点绘制圆弧的方法,需要的朋友可以参考下
绘制标准圆弧
在开始之前,我们优化一下我们的作图环境。灵感来自于上节课的纹理,如果不喜欢这个背景,我在images目录下还提供了其他的背景图,供大家选择。另外把所有的样式表都写在了
下。- "zh">
- "UTF-8">
-
新的画布 - "canvas-warp">
- 你的浏览器居然不支持Canvas?!赶快换一个吧!!
运行结果:
之所以要绘制一个空白的矩形填满画布,是因为我们之前说过,canvas是透明的,如果不设置背景色,那么它就会被我设置的
纹理所覆盖,想要使其拥有背景色(白色),只有绘制矩形覆盖canvas这一个方法。怎么样,是不是非常的酷?
使用arc()绘制圆弧
arc()的使用方法如下:
- context.arc(x,y,radius,startAngle,endAngle,anticlockwise)
前面三个参数,分别是圆心坐标与圆半径。startAngle、endAngle使用的是弧度值,不是角度值。弧度的规定是绝对的,如下图。
anticlockwise表示绘制的方法,是顺时针还是逆时针绘制。它传入布尔值,true表示逆时针绘制,false表示顺时针绘制,缺省值为false。
弧度的规定是绝对的,什么意思呢?就是指你要绘制什么样的圆弧,弧度直接按上面的那个标准填就行了。
比如你绘制 0.5pi ~ 1pi 的圆弧,如果顺时针画,就只是左下角那1/4个圆弧;如果逆时针画,就是与之互补的右上角的3/4圆弧。此处自己尝试,不再举例。
使用切点绘制圆弧
arcTo()介绍:
arcTo()方法接收5个参数,分别是两个切点的坐标和圆弧半径。这个方法是依据切线画弧线,即由两个切线确定一条弧线。
具体如下。
- arcTo(x1,y1,x2,y2,radius)
这个函数以给定的半径绘制一条弧线,圆弧的起点与当前路径的位置到(x1, y1)点的直线相切,圆弧的终点与(x1, y1)点到(x2, y2)的直线相切。因此其通常配合moveTo()或lineTo()使用。其能力是可以被更为简单的arc()替代的,其复杂就复杂在绘制方法上使用了切点。
使用切点绘制弧线:
下面的案例我把切线也绘制出来了,看的更清楚一些。
- "zh">
- "UTF-8">
-
绘制弧线 - "canvas-warp">
- 你的浏览器居然不支持Canvas?!赶快换一个吧!!
运行结果:
这个案例也很好说明了arcTo()的各个关键点的作用。为了更清楚的解释,我再标注一个分析图。
这里注意一下,arcTo()绘制的起点是(x0, y0),但(x0, y0)不一定是圆弧的切点。真正的arcTo()函数只传入(x1, y1)和(x2, y2)。其中(x1, y1)称为控制点,(x2, y2)是圆弧终点的切点,它不一定在圆弧上。但(x0, y0)一定在圆弧上。
有一点点绕,下面我们改变drawArcTo()函数的参数来试验一下。
(x2, y2)不一定在弧线上:
- drawArcTo(context, 200, 100, 600, 100, 600, 400, 400);

(x0, y0)一定在弧线上:
- drawArcTo(context, 400, 100, 600, 100, 600, 400, 400);

挺有意思的,它为了经过(x0, y0)直接将切点和(x0, y0)连接起来形成线段。好执着的弧线……
相关内容
- HTML5单页面手势滑屏切换原理 html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- HTML5 画布canvas使用方法使用分层画布来优化HTML5渲染的教程html5画布旋转效果示例用html5的canvas画布绘制贝塞尔曲线完整代码html5的画布canvas——画出简单的矩形、三角形实例代码html5的画布canvas——画出弧线、旋转的图形实例代码+效果图HTML5边玩边学(1)画布实现方法 Html5画布_动力节点Java学院整理
- 【HTML5】Canvas绘制简单图片教程HTML5实现的轻量级绘制SVG轮廓线路径动画插件特效源码html5 实现客户端验证上传文件的大小(简单实例)html5基于鼠标滚动控制植树生长动画特效源码HTML5实现页面切换激活的PageVisibility API使用初探HTML5的Geolocation地理位置定位API使用教程HTML5中的强制下载属性download使用实例解析HTML5事件方法全部汇总HTML5全屏响应式缩放切换幻灯片代码深入理解HTML的FormData对象
- HTML5实现页面切换激活的PageVisibility API使用初探HTML5实现的轻量级绘制SVG轮廓线路径动画插件特效源码html5 实现客户端验证上传文件的大小(简单实例)html5基于鼠标滚动控制植树生长动画特效源码【HTML5】Canvas绘制简单图片教程HTML5的Geolocation地理位置定位API使用教程HTML5中的强制下载属性download使用实例解析HTML5事件方法全部汇总HTML5全屏响应式缩放切换幻灯片代码深入理解HTML的FormData对象
- HTML5中的强制下载属性download使用实例解析HTML5实现的轻量级绘制SVG轮廓线路径动画插件特效源码html5 实现客户端验证上传文件的大小(简单实例)html5基于鼠标滚动控制植树生长动画特效源码【HTML5】Canvas绘制简单图片教程HTML5实现页面切换激活的PageVisibility API使用初探HTML5的Geolocation地理位置定位API使用教程HTML5事件方法全部汇总HTML5全屏响应式缩放切换幻灯片代码深入理解HTML的FormData对象
- HTML5事件方法全部汇总HTML5实现的轻量级绘制SVG轮廓线路径动画插件特效源码html5 实现客户端验证上传文件的大小(简单实例)html5基于鼠标滚动控制植树生长动画特效源码【HTML5】Canvas绘制简单图片教程HTML5实现页面切换激活的PageVisibility API使用初探HTML5的Geolocation地理位置定位API使用教程HTML5中的强制下载属性download使用实例解析HTML5全屏响应式缩放切换幻灯片代码深入理解HTML的FormData对象
- 深入剖析HTML5 内联框架iFrame推荐10个HTML5响应式框架五个2015 年最佳HTML5 框架深度剖析HTML的语意和与其相关的前端框架html悬浮框架的设置使用示例(iframe加载html)HTML教程,简单学习HTML语言(2)HTML框架_动力节点Java学院整理
- HTML5 Canvas绘制五星红旗html5实现的仿网页版微信聊天界面效果源码剖析标注HTML元素时class比id所具有的优势HTML表格布局实例讲解html5 canvas实现的3D飞行飞行动画特效源码关于html的下载功能详解HTML5+SVG实现水桶杯子打击乐器动画效果深入剖析HTML5 内联框架iFrameHTML5不同视觉差的页面特效源码 6种点击按钮文字变成input框,点击保存变成文字的实现代码
- 字中字效果的实现【html5实例】HTML5全屏响应式缩放切换幻灯片代码html5 canvas实现的“我们要发财了”游戏源码html5实现的仿网页版微信聊天界面效果源码详解HTML5中rel属性的prefetch预加载功能使用html5 canvas实现的3D飞行飞行动画特效源码HTML5+SVG实现水桶杯子打击乐器动画效果深入剖析HTML5 内联框架iFrameHTML5不同视觉差的页面特效源码 6种html5 canvas实现的酷炫全屏背景动画特效源码页面“线条”效果HTML5实现代码
- html5需遵循的6个设计原则HTML5 Canvas绘制五星红旗HTML5不同视觉差的页面特效源码 6种字中字效果的实现【html5实例】html5 canvas实现的酷炫全屏背景动画特效源码页面“线条”效果HTML5实现代码
