系列文章目录

本文开始是canvas,通俗易懂,小白也没烦恼,根据慕课网liuyubobobo老师的视频课学习整理
视频课指路:慕课网 liuyubobobo老师 炫丽的倒计时效果Canvas绘图与动画基础


文章目录

  • 系列文章目录
  • 1、声明标签
  • 2、画一条直线
  • 3、线条组成的图形 - 画一个三角形
  • 4、多边形填充加描边
  • 5、定义两个形状
  • 6、七巧板demo例子
  • 7、绘制正方形demo
  • 总结

1、声明标签

  1. 宽高在标签上
<canvas id="canvas" width="1024" height="768"style="background-color: rgb(200,200,200);display: block;margin: 20px auto;"
>当前浏览器不支持canvas,请更换浏览器后再试
</canvas>
  1. 宽高在js中设置
<canvas id="canvas" style="background-color: rgb(200,200,200);display: block;margin: 20px auto;">当前浏览器不支持canvas,请更换浏览器后再试
</canvas>
window.onload = function () {// 获取var canvas = document.getElementById('canvas')canvas.width = 1024canvas.height = 768// 判断该浏览器是否可以使用canvasif (canvas.getContext('2d')) {// 使用2d绘图var context = canvas.getContext('2d')// 使用context绘制} else {alert('当前浏览器不支持canvas,请更换浏览器后再试')}
}

2、画一条直线

  1. canvas先设置状态最后绘制

  2. 画一条直线js代码

    context.moveTo(x, y) 起点
    context.lineTo(x, y) 终点
    context.lineWidth = 5 线宽
    context.strokeStyle = ‘#005588’ 线样式
    context.stroke() 绘制

window.onload = function () {var canvas = document.getElementById('canvas')canvas.width = 1024canvas.height = 768if (canvas.getContext('2d')) {var context = canvas.getContext('2d')// 使用context绘制// 从坐标(100,100)为起点开始context.moveTo(100, 100)// 到坐标(700,700)为终点画一条直线context.lineTo(700, 700)// 线宽为5context.lineWidth = 5// 线的样式颜色context.strokeStyle = '#005588'// 执行划直线这个操作context.stroke()} else {alert('当前浏览器不支持canvas,请更换浏览器后再试')}
}

效果

3、线条组成的图形 - 画一个三角形

window.onload = function () {var canvas = document.getElementById('canvas')canvas.width = 1024canvas.height = 768if (canvas.getContext('2d')) {var context = canvas.getContext('2d')// 使用context绘制// 从坐标(100,100)为起点开始context.moveTo(100, 100)context.lineTo(700, 700)context.lineTo(100, 700)context.lineTo(100, 100)// 线宽为5context.lineWidth = 5// 线的样式颜色context.strokeStyle = '#005588'// 执行划直线这个操作context.stroke()} else {alert('当前浏览器不支持canvas,请更换浏览器后再试')}
}

4、多边形填充加描边

  1. context.fillStyle = ‘rgb(2,100,30)’ 填充的颜色
  2. context.fill() 填充
window.onload = function () {var canvas = document.getElementById('canvas')canvas.width = 1024canvas.height = 768if (canvas.getContext('2d')) {var context = canvas.getContext('2d')// 使用context绘制// 从坐标(100,100)为起点开始context.moveTo(100, 100)// 到坐标(700,700)为终点画一条直线context.lineTo(700, 700)context.lineTo(100, 700)context.lineTo(100, 100)// 线宽为5context.lineWidth = 5// 线的样式颜色context.strokeStyle = '#f00'// 执行划直线这个操作context.stroke()// 多边形填充context.fillStyle = 'rgb(2,100,30)'context.fill()} else {alert('当前浏览器不支持canvas,请更换浏览器后再试')}
}

5、定义两个形状

  1. context.beginPath() 起始
  2. context.closePath() 结束
  3. 这两个方法将两段路径包裹起来将其与其它路径分隔开
window.onload = function () {var canvas = document.getElementById('canvas')canvas.width = 1024canvas.height = 768if (canvas.getContext('2d')) {var context = canvas.getContext('2d')// 使用context绘制// 从坐标(100,100)为起点开始context.beginPath()context.moveTo(100, 100)// 到坐标(700,700)为终点画一条直线context.lineTo(700, 700)context.lineTo(100, 700)context.lineTo(100, 100)context.closePath()// 线宽为5context.lineWidth = 5// 线的样式颜色context.strokeStyle = '#f00'// 执行划直线这个操作context.stroke()// // 多边形填充// context.fillStyle = 'rgb(2,100,30)'// context.fill()context.beginPath()context.moveTo(200, 100)context.lineTo(700, 600)context.closePath()context.strokeStyle = '#000'context.stroke()} else {alert('当前浏览器不支持canvas,请更换浏览器后再试')}
}

6、七巧板demo例子

  1. html部分
<canvas id="canvas" width="800" height="800" style="background-color: aliceblue;display: block;margin: 10px auto;">当前浏览器不支持canvas,请更换浏览器后再试
</canvas>
  1. 自造数据部分
var tangram = [{p: [{x: 0,y: 0},{x: 800,y: 0},{x: 400,y: 400},],color: '#caff67'}, {p: [{x: 0,y: 0},{x: 400,y: 400},{x: 0,y: 800},],color: '#67becf'}, {p: [{x: 0,y: 800},{x: 400,y: 400},{x: 400,y: 800},],color: '#f50'}, {p: [{x: 400,y: 800}, {x: 800,y: 800}, {x: 400,y: 400}, ],color: '#0f5'}, {p: [{x: 400,y: 400}, {x: 800,y: 0}, {x: 600,y: 600}, ],color: '#25f'}, {p: [{x: 800,y: 0}, {x: 600,y: 600}, {x: 800,y: 800}, ],color: '#f33'},
]
  1. js部分
let canvas = document.getElementById('canvas')if (canvas.getContext('2d')) {var context = canvas.getContext('2d')tangram.forEach((item, index) => {draw(item, context)})}function draw(piece, cxt) {cxt.beginPath()cxt.moveTo(piece.p[0].x, piece.p[0].y)piece.p.forEach((item, index) => {cxt.lineTo(item.x, item.y)})cxt.closePath()cxt.fillStyle = piece.colorcxt.fill()cxt.lineWidth = 2cxt.strokeStyle = '#000'cxt.stroke()
}

7、绘制正方形demo

<canvas id="canvas" width="1024" height="768" style="display: block;
background-color: #eee;margin: 10px auto;">不能使用
canvas
</canvas>
<script>var canvas = document.getElementById('canvas')var context = canvas.getContext('2d')drawRect(context, 100, 100, 400, 400, 10, '#600', '#008833')function drawRect(cxt, x, y, width, height, borderWidth, borderColor, borderFill) {cxt.beginPath()cxt.moveTo(x, y)cxt.lineTo(x + width, y)cxt.lineTo(x + width, y + height)cxt.lineTo(x + width, y + height)cxt.lineTo(x, y + height)cxt.closePath()cxt.lineWidth = borderWidthcxt.strokeStyle = borderColorcxt.fillStyle = borderFillcxt.fill()cxt.stroke()}
</script>

总结

本文问canvas第一节,之后会持续更新,大家感觉还实用的话,关注或者点个赞都可以,谢谢啦

canvas基础1 - 画直线(通俗易懂)相关推荐

  1. html5点线的设置,html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点...

    如果你还不知道canvas是什么,可以看看. 在学画画的时候,线条是最基本的了,而线条的连接可以组成任何图形.在canvas中也是如此. 在开始之前我们先拿出画布和画笔: 复制代码代码如下: var ...

  2. Silverlight学习笔记三(鼠标点击动态画直线|动态设置Ellipse的Canvas.Top与Canvas.Left|动态设置Stroke属性的方法。)...

    我有可能需要把AutoCAD的部分功能搬到浏览器上,先练习一下画直线的方法.如图: MainPage.xaml代码: 大气象 <UserControl x:Class="DrawLin ...

  3. HTML怎么在矩形上画直线,【绘制】HTML5 Canvas 绘画画板,实现鼠标画线条,画矩形或选区(图文、示例)...

    个人处女做<Canvas系列教程>在个人Github上正在连载更新,但愿能获得您的关注和支持,让我有更多的动力进行创做.html 教程介绍.教程目录等能在README里查阅.git 目录函 ...

  4. php 画直线,html5 Canvas实现画直线与设置线条的样式

    这篇文章主要介绍了关于html5 Canvas实现画直线与设置线条的样式,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 在学画画的时候,线条是最基本的了,而线条的连接可以组成任何图形. ...

  5. 在html5绘制直线的两个方法,html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点...

    如果你还不知道Canvas是什么,可以看看上一篇. 在学画画的时候,线条是最基本的了,而线条的连接可以组成任何图形.在Canvas中也是如此. 在开始之前我们先拿出画布和画笔: 复制代码代码如下: v ...

  6. 橡皮筋画直线c 语言,canvas——橡皮筋式线条绘图应用

    什么叫橡皮筋式 指画图时橡皮筋一样伸缩自如.. 例子如下? 思路 思路很简单,只有橡皮筋式绘制功能要注意,以下总结mousedown,mousemove,mouseup三个阶段的思路 mousedow ...

  7. 橡皮筋画直线c 语言,canvas 橡皮筋式线条绘图应用方法

    什么叫橡皮筋式 指画图时橡皮筋一样伸缩自如.. 例子如下:point_down: 思路 思路很简单,只有橡皮筋式绘制功能要注意,以下总结mousedown,mousemove,mouseup三个阶段的 ...

  8. 好程序员分享24个canvas基础知识小结

    好程序员分享24个canvas基础知识小结,非常全面详尽,推荐给大家. 现把canvas的知识点总结如下,以便随时查阅. 1.填充矩形 fillRect(x,y,width,height); 2.绘制 ...

  9. 好程序员分享24个canvas基础知识小结 1

    好程序员分享24个canvas基础知识小结,非常全面详尽,推荐给大家. 现把canvas的知识点总结如下,以便随时查阅. 1.填充矩形 fillRect(x,y,width,height); 2.绘制 ...

最新文章

  1. 2.0 pomelo-treasure官方demo的使用
  2. Maven打包详细流程
  3. Java高级工程师学习路径
  4. java8 collect 类型转换_Java 8 新特性 Stream类的collect方法
  5. 文件包含和文件上传结合
  6. Linux使用Jexus托管Asp.Net Core应用程序
  7. 用计算机计算汉坦,河北省Ⅱ型汉坦病毒流行特征及与细胞自噬相互作用研究
  8. 4月1日起 理想ONE零售价由33.8万元上调至34.98万元
  9. linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...
  10. Deep Speaker代码解析
  11. mysql sqlite 语法_浅谈sqlite与mysql的数据库语法差异_沃航科技
  12. 企业纳税证明(社保完税证明)如何导出
  13. python中def func是什么意思_python中的函数def和函数的参数
  14. 基于VC++的MFC类库实现的简单FTP客户端
  15. proftpd 530 Login incorrect
  16. unity支持的模型数据格式,unity3d模型制作规范
  17. 复旦大学计算机网络专业,复旦大学计算机网络专业计划.doc
  18. 协处理器CP15操作指令
  19. 【Python金融量化】零基础如何开始学?
  20. 【线上直播】人机多轮对话的方法综述

热门文章

  1. pdc-textout(_PDC-进行精彩演示的技巧-实际使用!
  2. java分词 词权重_直通车高分词的养词方法和整个计划权重的提升
  3. 成都盛铭轩:如何提升店铺权重
  4. 在OpenFOAM中获取每个网格的Skewness
  5. 如何正确理解0dB,1kHz测试用音源?
  6. C#中Hashtable
  7. 在jupyter中使用pypy
  8. 0623-6.2.0-如何在CDH中安装CFM
  9. ConvNeXt V2来了,仅用最简单的卷积架构,性能不输Transformer
  10. Cmake opencv_videoio_ffmpeg.dll下载失败