这个实例想说,我们在用canvas画图时要用第三种方式吗

来源:2-2 Canvas坐标体系(2)

unbreakable_全栈

2020-09-25 15:04:59

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        #myCanvas {

            border: 1px solid red;

            width: 100px;

            height: 50px;

        }

        #myCanvas2, #myCanvas3 {

            border: 1px solid red;

        }

    </style>

</head>


<body>

    <!-- 如下代码, 第一个画布通过css设置大小, 第二个画布是默认的宽高, 第三个画布是通过js代码设置的大小。 三个画布上都画了一条线(0,0)到(100, 100) -->

    <!-- 第一个画布可以完全显示画的线, 对比的最后一个画布, 画的线并没有完整显示出来, 对比实现的效果可以知道第一个画布是等比例缩小了。 -->

    <canvas class="canvas" id="myCanvas">你的浏览器不支持canvas</canvas>

    <canvas class="canvas" id="myCanvas2">你的浏览器不支持canvas</canvas>

    <canvas class="canvas" id="myCanvas3">你的浏览器不支持canvas</canvas>

    <script>

        var canvas = document.getElementById('myCanvas')

        var ctx = canvas.getContext('2d')

        ctx.moveTo(0, 0)

        ctx.lineTo(100, 100)

        ctx.stroke()

        console.log(canvas.width, canvas.height)

    </script>

    <script>

        var canvas2 = document.getElementById('myCanvas2')

        var ctx2 = canvas2.getContext('2d')

        ctx2.moveTo(0, 0)

        ctx2.lineTo(100, 100)

        ctx2.stroke()

        console.log(canvas2.width, canvas2.height)

    </script>

    <script>

        var canvas3 = document.getElementById('myCanvas3')

        var ctx3 = canvas3.getContext('2d')

        canvas3.width = 100

        canvas3.height = 50

        ctx3.moveTo(0, 0)

        ctx3.lineTo(100, 100)

        ctx3.stroke()

        console.log(canvas2.width, canvas2.height)

    </script>

</body>


</html>


写回答

1回答

好帮手慕夭夭

2020-09-25

同学你好,没错。如果使用css改变画布大小,会产生缩放。要改变画布大小,一般在标签中或者通过js改变。第三种是可以的,第一种要改成在标签中,使用宽高使用设置大小才可以,示例:

http://img.mukewang.com/climg/5f6db6da097a84b609420077.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 6815 问题

查看课程