Canvas绘制基本线条的方式

什么是Canvas

 - Canvas,顾名思义,是一块“画布”,Canvas有着默认的宽(300px)、高(150px);
<canvas id="myCanvas" width="300" height="150"></canvas>
(默认状态下的值), 即为
<canvas id="myCanvas"></canvas>
不改变Canvas内的宽、高值,下面的值超过部分将被遮住。

实例:绘制一个黄色的矩形:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><canvas id="myCanvas">您的浏览器不支持canvas标签</canvas><script>var canvas=document.getElementById('myCanvas');var ctx=canvas.getContext('2d');ctx.fillStyle='#fff000';//  样式:颜色ctx.fillRect(0,0,80,100); // (起始位置(left)),(起始位置(top)),宽,高 :宽为80,高100的矩形位置在离左边0,上面0,的地方  </script>
</body>
</html>

绘制基本线条

方法 描述
beginPath() 开始一个新的绘制路径
moveTo(int x,int y) 移动画笔到指定坐标点(x,y),该点为路径的起点
lineTo(int x,int y) 从当前端点到指定坐标点(x,y)添加一条直线
stroke() 沿着绘制路径的坐标点顺序绘制直线
closePath() 如果当前的绘制路径是打开的,则关闭该绘制路径
quadraticCurveTo(cx,cy,x,y) 绘制二次曲线,坐标点(cx,cy)为控制点,坐标(x,y)为终点
bezierCurveTo(cx1,cy1,cx2,cy2,end1,end2) 绘制贝塞尔曲线,坐标点(cx1,cy1)和(cx2,cy2)为控制点,坐标点(end1,end2)为终点
arc(x,y,r,sAngle,eAngle,counterclockwise) 绘制圆弧,坐标点(x,y)为圆的中心点,r是圆的半径,,sAngle是起始角,eAngle是结束角,counterclockwise是可选参数,false是顺时针,true是逆时针

绘制直线

  • 在绘制直线的时候也需要一个起点和一个终点,绘制直线代码如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><canvas id="myCanvas">您的浏览器不支持canvas标签</canvas><script>var canvas=document.getElementById('myCanvas');   //获取Canvas对象var ctx=canvas.getContext('2d');   //获取上下文对象ctx.beginPath();   //开始一个新的绘制路径ctx.moveTo(10,10);   //定义直线的起点坐标为(10,10)ctx.lineTo(200,10);   //定义直线的终点坐标为(200,10)ctx.stroke();   //沿着坐标点的路径顺序绘制直线ctx.closePath();   //关闭当前的绘制路径</script>
</body>
</html>


绘制二次曲线

  • 二次曲线由一个起点,一个终点和一个控制点决定,当控制点经过圆锥顶点时,曲线变成一个点、直线或相交直线,当控制点不经过圆锥顶点时,曲线可能是圆、椭圆、双曲线或抛物线。使用Canvasd的quadraticCurveTo函数绘制二次曲线的代码如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><canvas id="myCanvas">您的浏览器不支持canvas标签</canvas><script>var canvas=document.getElementById('myCanvas');   if(canvas && canvas.getContext){              // 判断Canvas对象是否为空var ctx = canvas.getContext("2d");        // 获取Canvas对象上下文ctx.beginPath();                          // 开始一个新的绘制路径ctx.moveTo(100,50);                       // 定义直线的起点坐标为(100,50)ctx.quadraticCurveTo(100,15,300,30);      // 设置二次曲线坐标ctx.stroke();                             // 绘制路径}</script>
</body>
</html>


关于closePath:

  • 在绘制直线的时候,我们最后用了closePath函数关闭当前的绘制路径,但是在绘制二次曲线的时候却没有用。这里需要提醒大家,closePath函数用于创建从当前点到开始点的路径,如果这里使用此函数,就会绘制一个封闭的二次曲线。
  • 问:在获取Canvas对象时为什么要判断它是否为空?
  • 答:因为有些浏览器对Canvas的支持不是很好,为了避免网页运行时出现错误,需要提前判断。

绘制贝塞尔曲线

  • 是电脑图形中非常重要的参数曲线,广泛应用于计算机图形中为平滑曲线建立模型。贝塞尔曲线的每一个定点都有两个控制点,用于控制在该顶点两侧的曲线的弧度。
  • 他有一个起点、一个终点、两个控制点,共四个点决定一条曲线。使用Canvas的bezierCurveTo函数可以非常方便的绘制贝塞尔曲线,绘制代码如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><canvas id="myCanvas">您的浏览器不支持canvas标签</canvas><script>var canvas=document.getElementById('myCanvas');   if(canvas && canvas.getContext){              // 判断Canvas对象是否为空var ctx = canvas.getContext("2d");        // 获取Canvas对象上下文ctx.beginPath();                          // 开始一个新的绘制路径ctx.moveTo(50,200);                       // 定义直线的起点坐标为(50,200)ctx.bezierCurveTo(50,100,200,100,200,150);      // 设置贝塞尔曲线坐标ctx.stroke();                             // 绘制路径}</script>
</body>
</html>


绘制圆弧
使用Canvas的arc方式绘制圆弧的代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body><canvas id="myCanvas">您的浏览器不支持canvas标签</canvas><script>var canvas=document.getElementById('myCanvas');   if(canvas && canvas.getContext){              // 判断Canvas对象是否为空var ctx = canvas.getContext("2d");        // 获取Canvas对象上下文ctx.beginPath();                          // 开始一个新的绘制路径ctx.arc(100,75,50,0,2*Math.PI*0.75);      // 设置圆弧坐标坐标ctx.stroke();                             // 绘制路径}</script>
</body>
</html>

Canvas绘制基本线条的方式相关推荐

  1. canvas绘制不规则线条,类似画板的画笔,基于zrender

    本文介绍绘制类似画板中画笔功能的线条 zrender实现简易画板功能可绘制大部分常用图形在文章末尾可参考 多数情况下绘制线条首先想到的是用Line绘制,当然1或2像素的细线没什么问题 当线条变宽就有意 ...

  2. 为什么canvas绘制的线条会模糊、有锯齿?

    有如下的代码: <style type="text/css">canvas {position:absolute;height : 100%;width : 100%; ...

  3. [七夕节]——一款基于canvas绘制五颜六色线条合成一个爱心发光动画特效

    Canvas基本介绍 Canvas介绍 1.canvas是html5的一个新标签,属于h5的新特性 2.canvas标签是一个图形的容器,简单点说就是一块画布,你可以在上画矩形,圆形,三角形,折线等等 ...

  4. 在js中,使用canvas绘制渐变色线条

    效果 代码 注:看注释 var colors = ['#6bfae1' ,'#63b9e9' ,'red' ,'yellow' ,'blue', 'green'];var ctx = canvas.g ...

  5. h5的横线_使用HTML5 Canvas绘制直线或折线等线条的方法讲解

    HTML5 Canvas基本概念讲解html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏 ...

  6. 用html5做一条线,使用HTML5 canvas绘制线条的方法

    使用HTML5 canvas绘制线条的方法 发布时间:2020-08-29 11:24:23 来源:亿速云 阅读:96 作者:小新 这篇文章主要介绍了使用HTML5 canvas绘制线条的方法,具有一 ...

  7. 绘制扇形的多种方式,包括border-radius、clip裁剪显示、canvas原点变换等方式的详细理解及demo

    对clip的理解: clip是对使用了该样式的元素进行裁剪显示.使用方法是rect (top, right, bottom, left) 其中参数top代表显示的区域上边界离该元素顶部border-t ...

  8. canvas线条背景(抽象画布可视化,利用canvas绘制多条线条,再利用多条线条同时动态发生改变,形成一幅美妙的动态图,非常惊艳!)

    canvas线条背景(抽象画布可视化,利用canvas绘制多条线条,再利用多条线条同时动态发生改变,形成一幅美妙的动态图,非常惊艳!) 动态变化中的静态截图 <!doctype html> ...

  9. 小猿圈html5教程之canvas绘制线段方法

    HTML5现在是时下较火的编程语言之一,但是对于怎么学习很多朋友都是不了解的,不知道从何处下手,针对以上内容小猿圈web前端讲师每天会分享一个web前端知识,希望对你的前端学习有一定的帮助,今天分享的 ...

最新文章

  1. Python爬虫实战糗事百科实例
  2. FreeBSD下查看各软件版本命令
  3. 版本控制入门-----搬进Github
  4. Flink 必知必会:Flink Runtime Architecture
  5. 异数OS 2017 DPDK 峰会观后感
  6. Subst DOS命令
  7. Flex Graphics
  8. python中的dict函数什么意思_3分钟搞懂Python中dict函数的含义是什么
  9. 找出只出现一次的第一个字符
  10. 知乎披露会员业务未来布局,融合社区内容深耕垂直领域
  11. apache 目录认证
  12. 基于深度学习的以图搜图
  13. 百度翻译API错误码大全(建议收藏)
  14. python实现匿名发邮件_Python里实现发送邮件的方法
  15. android视频的编辑(录制,裁剪,合成)(1)
  16. PS中级应用系列-徐鹏-专题视频课程
  17. 网络运营商名称显示amp;SIM名称显示
  18. linux中出现不在 sudoers 文件中。此事将被报告的解决方法
  19. 基于图像变换的最小二乘法及其应用(新生研讨课)
  20. 《Splunk智能运维实战》——1.2 索引文件和目录

热门文章

  1. MySQL生成36位、32位UUID以及32位大写的UUID
  2. 日语蔬菜水果相关词汇(2)
  3. OpenCV基础应用20例
  4. 运营管理最新版史蒂文森_《运营管理(英文版第11版注解版国际经典原版教材)》(美)威廉J.史蒂文森著【摘要 书评 在线阅读】-苏宁易购图书...
  5. JavaScript 和读取服务器cookie
  6. html5禁止浏览器缩放网页大小 (实用)
  7. echarts实现饼图阴影,改变饼图的颜色,改变引导线的颜色
  8. 小程序uni-app生成条形码
  9. 响铃:互金信贷的明天,或是一场一站式金融服务的盛宴
  10. 特征重要性判断(一)----决策树