美文网首页Canvas学习笔记
Canvas学习笔记--绘制路径

Canvas学习笔记--绘制路径

作者: 小人物的秘密花园 | 来源:发表于2018-06-26 17:24 被阅读0次

参考

使用canvas来绘制图形

知识点

图形的基本元素是路径。路径是通过不同颜色和宽度的线段或曲线相连形成的不同形状的点的集合。一个路径,甚至一个子路径,都是闭合的。

使用路径绘制图形的步骤

  1. 创建图形起点;
  2. 使用画图命令绘制路径;
  3. 封闭路径;
  4. 通过描边或填充路径区域来渲染图形;

方法

新建一条路径,生成之后,图形绘制命令被指向到路径上生成路径

beginPath()

闭合路径之后图形绘制命令又重新指向到上下文中

closePath()

通过线条来绘制图形轮廓

stroke()

通过填充路径的内容区域生成实心的图形

fill()

注意:

当前路径为空,即调用beginPath()之后,或者canvas刚建的时候,第一条路径构造命令通常被视为是moveTo(),无论实际上是什么。出于这个原因,几乎总是要在设置路径之后专门指定图形的起始位置。
当调用fill()函数时,所有没有闭合的形状都会自动闭合,所以不需要调用closePath()函数。但是调用stroke()时不会自动闭合。

案例

<canvas id="canvas" width="400px" height="400px"></canvas>
    <script>
        var canvas = document.getElementById('canvas');
        if (canvas.getContext) {
            var oContext = canvas.getContext('2d');
            oContext.beginPath();
            oContext.moveTo(50, 50);
            oContext.lineTo(150, 50);
            oContext.lineTo(150, 100);
            oContext.lineTo(100, 100);
            oContext.fill();
        }
    </script>
结果

移动笔触

moveTo(x, y): 将笔触移动到指定的坐标x以及y上。
canvas初始化或者beginPath()调用后,通常会使用moveTo()函数设置起点,也能够使用moveTo()绘制一些不连续的路径;

线条

绘制一条直线,从当前位置到指定x以及y位置的直线;

lineTo(x,y)

参数说明:
x: 结束点的横坐标
y :结束点的纵坐标

圆弧

绘制方法arc || arcTo

画一个以(x,y)为圆心的以radius为半径的圆弧(圆),从startAngle开始到endAngle结束,按照anticlockwise给定的方向(默认为顺时针)来生成:

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

根据给定的控制点和半径画一段圆弧,再以直线连接两个控制点:

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

参数说明

x,y: 圆心坐标;
startAngle: 开始的弧度;
endAngle: 结束的弧度;
radius:半径;
anticlockwise: 规定方向,取值布尔值(true,false), true表示逆时针,false表示顺时针;

注意:arc()函数中的角度单位是弧度,不是度数。角度与弧度的js表达式:radians=(Math.PI/180)*degrees;

案例:

<canvas id="canvas" width="400px" height="400px"></canvas>
    <script>
        var canvas = document.getElementById('canvas');
        if (canvas.getContext) {
            var oContext = canvas.getContext('2d');
            oContext.beginPath();
            oContext.arc(200, 200, 40, 0, Math.PI + (Math.PI * 180) / 2, true);
            oContext.fill();
        }
    </script>
结果

二阶贝塞尔&&三阶贝塞尔曲线

绘制二次贝塞尔曲线,cp1x,cp1y为一个控制点,x,y为结束点。
quadraticCurveTo(cp1x, cp1y, x, y)
绘制三次贝塞尔曲线,cp1x,cp1y为控制点一,cp2x,cp2y为控制点二,x,y为结束点。
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)

<canvas id="canvas" width="400px" height="400px"></canvas>
    <script>
        var canvas = document.getElementById('canvas');
        if (canvas.getContext) {
            var oContext = canvas.getContext('2d');
            oContext.beginPath();
            oContext.moveTo(200, 300);
            oContext.quadraticCurveTo(250, 250, 300, 300);
            oContext.quadraticCurveTo(300, 300, 350, 350);
            oContext.stroke()
            oContext.closePath();
            oContext.fill();

            oContext.beginPath();
            oContext.moveTo(75, 40);
            oContext.bezierCurveTo(75, 37, 70, 25, 50, 25);
            oContext.bezierCurveTo(20, 25, 20, 62.5, 20, 62.5);
            oContext.bezierCurveTo(20, 80, 40, 102, 75, 120);
            oContext.bezierCurveTo(110, 102, 130, 80, 130, 62.5);
            oContext.bezierCurveTo(130, 62.5, 130, 25, 100, 25);
            oContext.bezierCurveTo(85, 25, 75, 37, 75, 40);
            oContext.fill();
        }
    </script>
结果

相关文章

  • Canvas学习笔记--绘制路径

    参考 使用canvas来绘制图形 知识点 图形的基本元素是路径。路径是通过不同颜色和宽度的线段或曲线相连形成的不同...

  • Canvas绘制文字、设置阴影、创建路径绘制矩形和圆

    Canvas绘制文字 1、属性 2、方法 Canvas设置阴影 Canvas创建路径,绘制矩形和圆 1、标识方法 ...

  • canvas基础知识总结

    一、Canvas-绘制文字 1、属性 二、canvas-设置阴影 三、canvas-创建路径-绘制矩形和圆形 1、...

  • canvas

    canvas动画思想 canvas 面向对象思想 绘制矩形、直线 填充矩形 矩形边框 擦除画布 绘制路径(逆时针绘...

  • Android自定义控件:路径及文字

    创建路径 canvas中绘制路径利用: void drawPath (Path path, Paint paint...

  • NFH.006 - Canvas高级与Chart.js

    12.16学习经验分享# Bruce_Zhu于2016.12.16 一、canvas-创建路径绘制线条(直线和折线...

  • canvas知识点

    1.canvas标签 2.canvas绘图上下文context 3.基本的绘制路径 3.1 设置绘制起点(move...

  • Canvas:绘制线段

    在Canvas中,线段也是路径中的一种,被称之为线性路径。在Canvas中绘制线性路径主要用到moveTo(x,y...

  • Canvas 2

    1.使用Canvas进行绘图——绘制路径路径:Path,类似于Photoshop中的钢笔工具,可以绘制直线、各种曲...

  • 使用Canvas绘制几何图形

    前言 这是我学习自定义View系列中的使用Canvas自带方法(drawxx)绘制几何图形笔记. Canvas T...

网友评论

    本文标题:Canvas学习笔记--绘制路径

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