• canvas绘制路径


    canvas通过路径可以创造出复杂的形状和线条。要绘制路径首先需要调用beginPath()方法,表示要开始绘制新路径。然后调用相应的方法来实际地绘制路径。

    1、arc(centerx,centery,radius,startingAngle,endingAngle,anticlosewise = false)

      以(x,y)为圆心,半径为radius,起始角度为startingAngle,终止角度为endingAngle,顺或逆时针方向绘制一段弧度。

    var canvas = document.getElementById('canvas');
    var context = canvas.getContext('2d');
    
    context.beginPath();
    context.arc(100,100,50,0*Math.PI,2*Math.PI);
    context.strokeStyle = '#ff0000';
    context.lineWidth = 3;
    context.stroke();

    2、arcTo(x1,y1,x2,y2,radius)

      从上一点开始绘制一条弧线,到(x2,y2)为止,并以给定的半径radius穿过(x1,y1)。

    context.beginPath();
    context.moveTo(250,50);
    context.arcTo(400,100,350,150,100);//由点(250,50)开始,绘制一段半径为100的弧线,弧线分别与点(250,50)、(400,100)组成的直线以及点(400,100)、点(350,150)组成的直线相切;
    context.strokeStyle = "#005588";
    context.lineWidth = 3;
    context.stroke();

    3、bezierCurveTo(c1x, c1y, c2x, c2y, x, y)

      从上一点开始绘制一条曲线,到(x,y)为止,并且以(c1x,c1y)和(c2x,c2y)为控制点。

    context.beginPath();
    context.moveTo(350,50);
    context.bezierCurveTo(500,10,500,200,650,100);//由点(250,50)开始经点(400,100)到点(150,100)止;
    context.strokeStyle = "#005588";
    context.lineWidth = 3;
    context.stroke();

    4、lineTo(x,y)

      从上一点开始绘制一条直线,到(x,y)为止。

    context.beginPath();
    context.moveTo(50,350);
    context.lineTo(200,400);
    context.strokeStyle = "#005588";
    context.lineWidth = 3;
    context.stroke();

    5、moveTo(x,y)

      将绘图游标移至(x,y)。

    context.beginPath();
    context.moveTo(50,350);
    context.lineTo(200,400);
    context.strokeStyle = "#005588";
    context.lineWidth = 3;
    context.stroke();

    6、quadraticCurveTo(cx,cy,x,y)

      从上一点开始绘制一条二次曲线,以(cx,cy)为控制点,到(x,y)为止。

    context.beginPath();
    context.moveTo(300,250);
    context.quadraticCurveTo(350,500,400,250);
    context.strokeStyle = "#005588";
    context.lineWidth = 3;
    context.stroke();

    7、rect(x,y,width,height)

      从点(x,y)开始绘制一个矩形,宽高分别为:width、height。

    context.beginPath();
    context.rect(450,300,100,150);
    context.strokeStyle = "#005588";
    context.lineWidth = 3;
    context.stroke();
  • 相关阅读:
    [LeetCode]Sliding Window Maximum
    判断两根线段是否相交
    求幂,我居然又没做出来
    C++集合运算函数总结 & 需要有序集合的操作
    effective stl读书笔记 & stl里面提供的算法 & emplace & ostream_iterator
    利用位操作的几道题目
    C++的new_handler
    TCP的可靠性 窗口滑动 拥塞控制
    关于高性能网络编程的一些知识
    三种连接 & DOS & SYNFLOOD & 防御
  • 原文地址:https://www.cnblogs.com/cornlin/p/7616529.html
Copyright © 2020-2023  润新知