美文网首页
canvas学习之一

canvas学习之一

作者: 小苑小站 | 来源:发表于2018-06-24 14:56 被阅读0次

基础

准备画布

<canvas width="600" height="400"></canvas>

准备绘制工具

// 准备绘图工具
var myCanvas = document.querySelector('canvas')
var ctx = myCanvas.getContext('2d')//绘制3d的视乎使用web gl

使用工具绘图

ctx.moveTo(50,50)
ctx.lineTo(100,100)
ctx.stroke();

样式

由于画线的中心对应于一个像素点的刻度,即一条线占用了两个像素各一半,因此画图默认样式显示为灰色,2px;可以通过将位置上移或者下移0.5px;

strokeStyle

设置描边的线条的颜色,该属性会对上面的设置进行覆盖,可通过绘制工具的beginPath()来开启新路径

lineWidth

设置线条的宽度

lineCap

设置线条是圆角或者方形,取值butt(默认) square round

fillStyle

lineJoin

设置两条线条相交点样式,取值miter、round、bevel

setLineDash()

设置线条为虚线样式,接受参数为数组,可以设置虚线和实线长度,如[5]:虚实都是5;[5,10]:实为5,虚为10;[5,10,15]:实虚实

getLineDash()

获取不重复的一段虚线样式数据

lineDashOffset

设置虚线偏移,如果是正值向右偏移,否则向左偏移

图形填充问题

非零环绕规则

  • 可以解决一个图形或者多个图形相交时区域的填充问题;
  • 查看一个区域是否填充,从该区域做一条射线,数与该直线相交的轨迹数,如果轨迹是顺时针轨迹则加1,否则减1
  • 计算最后的结果,如果为0则该区域不填充,否则进行填充;

注意点

  • canvas标签的宽高应该通过canvas属性进行初始化,在canvas属性中的设置是画布的宽高,在css中设置的样式设置的是 canvas盒子的宽高

案例

案例一

var myCanvas = document.querySelector('canvas')
var ctx = myCanvas.getContext('2d')
ctx.beginPath() //开启新的路径
ctx.moveTo(100, 100)
ctx.lineTo(300, 100)
ctx.strokeStyle = 'blue'
ctx.stroke()

ctx.beginPath() //开启新的路径
ctx.moveTo(100, 200)
ctx.lineTo(300, 200)
ctx.strokeStyle = 'red'
ctx.lineWidth = 3
ctx.stroke()

ctx.beginPath() //开启新的路径
ctx.moveTo(100, 300)
ctx.lineTo(300, 300)
ctx.strokeStyle = '#282C34'
ctx.lineWidth = 10
ctx.stroke()

案例二

//绘制三角形
// var canvasObj = document.querySelector('canvas')
// var ctx = canvasObj.getContext('2d')
// ctx.moveTo(100,100)
// ctx.lineTo(200,100)
// ctx.lineTo(200,200)
// ctx.closePath()//关闭路径
// ctx.lineWidth=10
// ctx.stroke()

//绘制正方形
var canvasObj = document.querySelector('canvas')
var ctx = canvasObj.getContext('2d')
ctx.moveTo(100, 100)
ctx.lineTo(300, 100)
ctx.lineTo(300, 300)
ctx.lineTo(100, 300)
ctx.closePath()

ctx.moveTo(150, 150)
ctx.lineTo(150, 250)
ctx.lineTo(250, 250)
ctx.lineTo(250, 150)
ctx.closePath()

ctx.stroke()
ctx.fill()

相关文章

  • canvas学习之一

    基础 准备画布 准备绘制工具 使用工具绘图 样式 由于画线的中心对应于一个像素点的刻度,即一条线占用了两个像素各一...

  • Android 自定义View(学习 整理基础用法)

    学习资料 始于 onDraw(Canvas canvas) 1、canvas.drawXxx() 直接绘制所需图形...

  • Web之旅—— Canvas初探

    一、Canvas初探 Canvas是HTML5中的核心技术之一。使用Canvas技术可以绘制图形、图表、动画效果和...

  • canvas

    学习canvas

  • canvas基础学习笔记

    学习目标 1.canvas画线 2.canvas画矩形 3.canvas写字 4.canvas画圆 5.canva...

  • canvas(二)绘制图形

    使用canvas 绘制图形 上一篇 canvas基本用法在学习了canvas基本用法 我们开始着手在 canvas...

  • HTML5-----Canvas 学习日记1

    HTML5-----Canvas 学习日记1 1:我们经常提到canvas,其实canvas是HTML中一个元素,...

  • 三、Canvas基本绘图

    Canvas绘图(二) 本章将学习Canvas绘图的以下技巧 裁剪区域 图象合成 简单的Canvas变换 一、设置...

  • NFH.005 - Canvas渐变与绘制

    12.15学习经验分享# Bruce_Zhu于2016.12.15 一、Canvas - 渐变 canvas 画图...

  • canvas入门

    日期:2020 年 5 月 8 日 canvas 学习笔记 canvas 简介 canvas 是一个用来绘图的 h...

网友评论

      本文标题:canvas学习之一

      本文链接:https://www.haomeiwen.com/subject/pnzjyftx.html