canvas添加样式和颜色

色彩colors

给图形上色的属性:fillStyle,strokeStyle
fillStyle = color 设置图形的填充颜色
strokeStyle = color 设置图形的轮廓颜色
fillStyle示例
本例使用两层for循环绘制方格阵列,每个方格不同颜色,每一个方格都根据i,j变量产生唯一的RGB值。可以以此为基础,拓展绘制出各种各样的色板

drawColor () {
      let draw = window.document.getElementById('cesium3')
      let ctx = draw.getContext('2d')
      for (let i=0;i<6;i++) {
        for (let j=0;j<6;j++) {
          ctx.fillStyle = 'rgb('+Math.floor(255-42.5*i)+','+Math.floor(255-42.5*j)+',0)'
          ctx.fillRect(j*25,i*25,25,25)
        }
      }
    }

效果:
canvas绘制的色板
strokeStyle示例
这个例子与上面的类似,但是使用的strikeStyle来设置轮廓颜色,用arc来画圆

drawCircle () {
      let draw = window.document.getElementById('cesium4')
      let ctx = draw.getContext('2d')
      for (let i=0;i<6;i++) {
        for (let j=0;j<6;j++) {
          ctx.strokeStyle = 'rgb('+Math.floor(255-42.5*i)+','+Math.floor(255-42.5*j)+',0)'
          ctx.beginPath()
          ctx.arc(12.5+j*25,12.5+i*25,10,0,Math.PI*2,true)
          ctx.stroke()
        }
      }
    }

效果:
canvas绘图

透明度 Transparency

canvas不仅可以绘制实色图形,还可以绘制半透明图形。通过设置globalAlpha属性或者使用一个半透明颜色作为轮廓或者填充样式
globalAlpha = transparencyValue
这个属性影响到canvas里所有图形的透明度,有效值范围是0.0到1.0,该属性在需要绘制大量有相同透明度的形状时很高效,不过strokeStyle和fillStyle属性接受有透明度的颜色值,所以,下面这种写法也可行

ctx.strokeStyle = "rgba(255,0,0,0.5)";
ctx.fillStyle = "rgba(255,0,0,0.5)";

案例:

drawAlpha () {
      let draw = window.document.getElementById('cesium4')
      let ctx = draw.getContext('2d')
      ctx.fillStyle = '#FD0'
      ctx.fillRect(0,0,75,75)
      ctx.fillStyle = '#6C0'
      ctx.fillRect(75,0,75,75)
      ctx.fillStyle = '#09F'
      ctx.fillRect(0,75,75,75)
      ctx.fillStyle = '#F30'
      ctx.fillRect(75,75,75,75)
      ctx.fillStyle = '#FFF'
      // 设置透明度值
      ctx.globalAlpha = 0.2
      //画圆环
      for(let i = 0;i<7;i++) {
        ctx.beginPath()
        ctx.arc(75,75,12*i,0,Math.PI*2,true)
        ctx.fill()
      }
    }

效果:
在这里插入图片描述

线条样式

lineWidth = value 设置线条宽度
lineCap = type 设置线条末端样式
lineJoin = type 设置线条与线条间接合处的样式
miterLimit = value 限制两条线相交时交接处的最大长度,即斜接长度->线条交接处内角顶点到外角顶点的长度
getLineDash() 返回一个包含当前虚线样式,长度为非负偶数的数组
setLineDash(segments) 设置当前虚线样式
lineDashOffset = value 设置虚线样式的起始偏移量
案例

drawLine() {
      let ctx = document.getElementById("cesium5").getContext("2d");
      // let offset = 0;
      ctx.clearRect(0, 0, 150, 150);
      ctx.setLineDash([4, 2]);
      ctx.lineDashOffset = -this.offset;
      ctx.strokeRect(10, 10, 100, 100);
    },
march() {
    // console.log(this.offset++)
    this.offset++;
    if (this.offset > 16) {
      this.offset = 0;
    }
    this.drawLine();
    setTimeout(this.march, 20);
  }

效果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值