欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Canvas入门

程序员文章站 2022-06-04 16:16:56
...

是什么
canvas–画布,canvas是HTML5的一个标签
用来定义图形,提供了强大的图片处理功能,但是需要注意的是canvas并不绘制图形,只是一张画布,我们要通过脚本在上面绘制图形。

能做什么
基本图形绘制(直线、三角形、矩形、图标等)
文字绘制
图形变形和图片合成
图片以及视频的处理
动画实现
小游戏制作

IE8及以下不支持canvas标签

如何定义画布
- 在html中引入canvas标签
- 定义canvas宽高
- 默认width=’300’,height=’150’
- 我们不能通过style=’width:500px;height:500px’设置其宽高,这样相当于强行拉伸了画布,从而导致问题,正确方式下面会讲到。
- 定义canvas样式(背景色、边框等)(通过style)

如何绘画
首先我们要通过脚本找到画布

<script type="text/javascript">

    // 获取 canvas 元素对应的 DOM 对象
    var canvas_1 = document.getElementById("canvas_1");

    // 获取在 canvas 上绘图的 canvasRenderingContent2D 对象
    //这里一定要是2d,不能是2D
    var ctx = canvas_1.getContext("2d");

    // 打印一下,查看是否能够显示具体环境
    console.log(ctx);
</script>
  • canvas的坐标轴
    Canvas入门

    画一条直线
    我们需要知道线的起点,线的终点,线的颜色、线的宽度四大要素

  • 开始定义路径:beginpath()
  • 线的起点:moveTo(x坐标,y坐标)
  • 线的终点:lineTo(x坐标,y坐标)
  • 关闭路径:closePath()
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div>
        <canvas id="canvas_1" width="1000" height="500" style="box-shadow: 0px 0px 20px black;">
            当前浏览器不支持 canvas
        </canvas>
    </div>
</body>
<script type="text/javascript">
    // 获取 canvas 元素对应的 DOM 对象
    var canvas_1 = document.getElementById("canvas_1");

    // 获取在 canvas 上绘图的 canvasRenderingContent2D 对象
    var ctx = canvas_1.getContext("2d");

    // 打印一下,查看是否能够显示具体环境
    console.log(ctx);

    // 开始绘制
    ctx.beginPath();

    //设置绘制起点
    ctx.moveTo(0,0);

    //设置绘制下一个点
    ctx.lineTo(700,400);

    //结束绘制
    ctx.closePath();

</script>
</html>

这样我们在浏览器上还看不到效果,我们需要定义线的宽度以及颜色

  • 设置笔触线条的宽度:lineWdth()-
  • 设置填充路径使用的填充风格以及颜色:fillStyle()
  • 把定义的填充上:fill();
  • 设置绘制 canvas 路径的填充风格(线框):strokeStyle();
  • 填充 canvas 当前路径绘制边框:stroke()
  • 填充风格支持的属性
    • 符合颜色格式的字符串值,表示使用纯色填充
    • CanvasGradient,表明使用渐变填充
    • CanvasPattern,表明使用位图填充
    var canv=document.getElementById("canvas1");
    var ctx=canv.getContext("2d");
    console.log(ctx)
    ctx.beginPath();
    ctx.moveTo(10,50);
    ctx.lineTo(200,50);
    ctx.closePath();
    ctx.lineWidth=50;
    ctx.lineJoin="round"
    ctx.strokeStyle="red";
    ctx.stroke();
    ctx.fillStyle='blue';
    ctx.fill();

绘制三角形以及矩形

    var canv=document.getElementById("canvas1");
    var ctx=canv.getContext("2d");
    console.log(ctx)
    ctx.beginPath();
    ctx.moveTo(10,50);
    ctx.lineTo(200,50);
    ctx.lineTo(200,200);
    ctx.lineTo(10,200);
    ctx.closePath();
    ctx.lineWidth=50;
    ctx.lineJoin="round"
    ctx.strokeStyle="red";
    ctx.stroke();
    ctx.fillStyle='blue';
    ctx.fill();

以上代码是矩形绘制
设置图形的边角属性

  • lineJoin
    • bevel 创建斜角
    • round 创建圆角
    • miter 默认,创建尖角

总结
今天简单的了解了canvas历史以及基本用途,同时用代码
主要练习了canvas的直线以及基本图形画法
圆圈画法用到arc属性。稍后练习