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. 用hosting.json配置ASP.NET Core站点的Hosting环境
  2. C++Dynamic Array动态数组(附完整源码)
  3. 线程和进程之间的联系----基本概念
  4. linux cpu softirq,linux softirq机制
  5. 单选按钮、复选按钮的简单应用
  6. 计算机哪个信息是硬盘大小,查看电脑硬盘大小_电脑硬盘大小怎么看
  7. ViBe算法source code
  8. ModbusTcp协议详解
  9. ElasticSearch分布式架构原理
  10. Sqlmap命令讲解
  11. 安鸾CMS系列之74CMS
  12. 总结了Linux系统中常用的命令
  13. 下拉框 切换一个下拉框 另一个下拉框做相应的改变
  14. linux 7.5安装教程,如何在CentOS Linux 7.5上安装 Pip
  15. SpringBoot集成SpringSecurity(二) 个性化登录配置(remember-me mongodb)
  16. Python免费发短信
  17. 面试被问离职原因,别乱说
  18. 锐捷 linux无法上网,通过锐捷认证了,为什么还不能上网?
  19. ssm校园失物招领系统毕业设计源码080008
  20. Qt之QIODevice笔记

热门文章

  1. PDFsharp使用介绍
  2. PEI表面修饰CNTs步骤及原理
  3. 什么是dB、dBm、dBc?
  4. 基于Android的MediaPlayer的音乐播放器的封装
  5. 华为机式(矩阵相乘)
  6. 数据库的三级模式结构和两级映像
  7. 此图形驱动程序无法找到兼容的图形…
  8. 前端之CSS篇(二)——CSS复合选择器及元素的显示模式和背景属性
  9. EndNote 20
  10. java毕业生设计爱心公益网站设计与制作计算机源码+系统+mysql+调试部署+lw