zoukankan      html  css  js  c++  java
  • 初学画布canvas的chapter1

    ——这篇读后感是我阅读《写给Web开发人员看的HTML5教程》一书中的第5章画布后的小小看法,由于编程实力有限,很多效果病没有一一去实现,所以只是停留在纸上谈兵的阶段。
    画布(canvas)作为HTML5新增的最有趣最出名的元素之一,程序员可以通过canvas元素实现非常多有趣的功能,虽然现今只是停留在2D环境,但未来不排除加入3D等环境的可能;而且我们也可以通过一些方法实现伪3D的效果。
      要使用元素canvas,我们要先对它进行定义:
      <canvas width="" height="">
      </canvas>
      元素开始与结束标记之间的区域是用于浏览器不支持canvas时显示。
      定义完元素canvas之后,我们就要在JavaScript中加入绘制命令,首先要引用canvas:
      var canvas = document.querySelector("canvas");——querySelector是jQuery引入的方法
      其次要定义它的绘制环境:
      var context = cnvas.getContext('2d');
      然后就可以开始绘制了。
      以下是阅读完第五章后了解到的有关canvas的一些应用:
        矩形,颜色和阴影及渐变
          1.矩形可以通过四种方法来创建:
            context.fillRect(x,y,w,h) ——创建被填充的矩形
            context.strokeRect(x,y,w,h) ——创建有边框无填充的矩形
            context.clearRect(x,y,w,h) ——创建橡皮擦
            context.rect(x,y,,h) ——通过路径创建矩形
          2.颜色:
            FillStyle——定义填充颜色
            strokeStyle——定义线条颜色
            颜色的有效值:
              Hexadecimal ——#FF0000
              Hexadecimal(short) ——#F00
              RGB ——rgb(255,0,0)
              RGB(percent) ——rgb(100%,0%,0%)
              RGBA ——rgba(255,0,0,1.0)
              RGBA(percent) ——rgba(100%,0%,0%,1.0)
              HSL ——hsl(0,100%,50%)
              HSLA ——hsla(0,100%,50%,1.0)
              SVG(named color) ——red
          3.阴影:
            context.shadowOffsetX = ——定义阴影的X轴偏移量
            context.shadowOffsetY = ——定义阴影的Y轴偏移量
            context.shadowColor = ——定义阴影的颜色及透明度
            context.shadpwBlur = ——定义阴影的模糊度
          4.渐变:
            var linGrad = context.createl.inearGradient(x0,y0,x1,y1);
              ——创建变量存储CanvasGradient对象并通过x0,y0,x1,y1定义渐变方向。
            linGrad.addColorStop(0.0,’red’); ——代表起点上的颜色
            linGrad.addColorStop(0.5,’yellow’); ——渐变颜色
            linGrad.addColorStop(1.0,’purple’); ——代表终点上的颜色
        路径绘图
          线段:
            初始化路径:beginPath()
            定义路径轨迹:moveTo()和lineTo()
            画线:stroke()
          曲线:
            context.quadraticCurveTo(cpx,cpy,x,y)
            context.bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y)
          弧线:
            context.artTo(x1,y1,x2,y2,radius)
            context.arc(x,y,radius.startAngle,endAngle,anticlockwise)
          轮廓:
            context.lineWidth = [] ——定义线条粗细
            context.lineCap = [] ——定义线条两端线端
            context.lineJoin = [] ——定义交点
          填充:
            context.fill()
          遮罩:
            context.clip() ——定义路径图不被画出来

  • 相关阅读:
    PAT 1097. Deduplication on a Linked List (链表)
    PAT 1096. Consecutive Factors
    PAT 1095. Cars on Campus
    PAT 1094. The Largest Generation (层级遍历)
    PAT 1093. Count PAT's
    PAT 1092. To Buy or Not to Buy
    PAT 1091. Acute Stroke (bfs)
    CSS:word-wrap/overflow/transition
    node-webkit中的requirejs报错问题:path must be a string error in Require.js
    script加载之defer和async
  • 原文地址:https://www.cnblogs.com/jiangwenjie/p/5734588.html
Copyright © 2011-2022 走看看