zoukankan      html  css  js  c++  java
  • HTML5:canvas之绘制图形

    https://developer.mozilla.org/cn/Canvas_tutorial/Drawing_shapes

    1  绘制矩形

    fillRect(x,y,width,height) : Draws a filled rectangle
    strokeRect(x,y,width,height) : Draws a rectangular outline
    clearRect(x,y,width,height) : Clears the specified area and makes it fully transparent
     
    例子:
    function draw(){
      var canvas = document.getElementById('tutorial');
      if (canvas.getContext){
        var ctx = canvas.getContext('2d');//得到画笔
        ctx.fillRect(25,25,100,100);
        ctx.clearRect(45,45,60,60);
        ctx.strokeRect(50,50,50,50);
      }
    }

      效果图

        image

    2. 绘制路径 draw path

    beginPath()
    closePath()
    stroke()
    fill()
    moveTo(int x,int y)
     

      beginPath() : 创建一个路径

          closePath()  : 关闭一个路径

          stroke() : 空心填充路径 

          fill()        : 实心填充路径。调用fill时会自动关闭路径,不需要在调用chosePath()

         moveTo(int x,int y): 设置路径的起始点坐标

    3. 绘制直线

    lineTo(x, y)

     例子:

    function drawShape(){
      // get the canvas element using the DOM
      var canvas = document.getElementById('tutorial');
    
      // Make sure we don't execute when canvas isn't supported
      if (canvas.getContext){
    
        // use getContext to use the canvas for drawing
        var ctx = canvas.getContext('2d');
    
        // Filled triangle
        ctx.beginPath();
        ctx.moveTo(25,25);
        ctx.lineTo(105,25);
        ctx.lineTo(25,105);
        ctx.fill();
        
        // Stroked triangle
        ctx.beginPath();
        ctx.moveTo(125,125);
        ctx.lineTo(125,45);
        ctx.lineTo(45,125);
        ctx.closePath();
        ctx.stroke();
    
      } else {
        alert('You need Safari or Firefox 1.5+ to see this demo.');
      }
    }

     效果图:

      image

    4. 绘制弧线

    arc(x, y, radius, startAngle, endAngle, anticlockwise)

      x,y : 圆心坐标

          radius  : 半径

         startAngleendAngle 分别是起末弧度(以 x 轴为基准)

         anticlockwise 为 true 表示逆时针,反之顺时针

         例子:

    function drawShape(){
      // get the canvas element using the DOM
      var canvas = document.getElementById('tutorial');
    
      // Make sure we don't execute when canvas isn't supported
      if (canvas.getContext){
    
        // use getContext to use the canvas for drawing
        var ctx = canvas.getContext('2d');
    
        // Draw shapes
        ctx.beginPath();
        ctx.arc(75,75,50,0,Math.PI*2,true); // Outer circle
        ctx.moveTo(110,75);
        ctx.arc(75,75,35,0,Math.PI,false);   // Mouth
        ctx.moveTo(65,65);
        ctx.arc(60,65,5,0,Math.PI*2,true);  // Left eye
        ctx.moveTo(95,65);
        ctx.arc(90,65,5,0,Math.PI*2,true);  // Right eye
        ctx.stroke();
    
      } else {
        alert('You need Safari or Firefox 1.5+ to see this demo.');
      }
    }

      效果图:

      image

    5.贝塞尔和二次方曲线 Bezier and quadratic curves
    quadraticCurveTo(cp1x, cp1y, x, y) // BROKEN in Firefox 1.5 (see work around below)
    bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)
    
  • 相关阅读:
    第三节 java 数组(循环遍历、获取数组的最值(最大值和最小值)、选择排序、冒泡排序、练习控制台输出大写的A)
    第三节 java 数组
    brpc
    thrift 总结
    C++ 中 # 和## 的使用
    查看系统句柄数
    zenuml
    shell脚本
    resize() reserve()函数的区别(vector)
    grep 用法
  • 原文地址:https://www.cnblogs.com/zhangweia/p/2281197.html
Copyright © 2011-2022 走看看