zoukankan      html  css  js  c++  java
  • Canvas坐标轴中的Y轴距离是X轴的两倍

    如题,相信很多人在初次玩canvas的时候会出现这样的情况,跟着教程走的情况下,诶

    怎么画出来的东西,不怎么对劲啊,,,ԾㅂԾ,,!!!!!先上代码

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 
     4 <head>
     5     <meta charset="UTF-8">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     8     <title>Document</title>
     9     <style type="text/css">
    10         * {
    11             margin: 0;
    12             padding: 0;
    13         }
    14         
    15         #canvas {
    16             border: 1px solid #000;
    17             display: block;
    18             margin: 10px auto;
    19             width: 300px;
    20             height: 300px;
    21         }
    22         #canvas2 {
    23             /*border: 1px solid #000;*/
    24             display: block;
    25             margin: 10px auto;
    26             /* 300px;
    27             height: 300px;*/
    28         }
    29         #canvas3 {
    30             border: 1px solid #000;
    31             display: block;
    32             margin: 10px auto;
    33             width: 300px;
    34             height: 300px;
    35         }
    36     </style>
    37 </head>
    38 
    39 <body>
    40     
    41     <canvas id="canvas2" width="300" height="300" style="border:1px solid #d3d3d3;">
    42 
    43     </canvas>
    44     <canvas id="canvas3"></canvas>
    45     <script type="text/javascript">
    46        
    47 
    48         var canvas2 = document.getElementById("canvas2");
    49         var content2 = canvas2.getContext("2d");
    50         
    51         content2.beginPath();
    52         // rect(x,y,width,height)
    53         // 以0,0为原点,设置宽100,高100的矩形
    54         content2.rect(0,0,100,100);
    55         content2.stroke();
    56 
    57         var canvas3 = document.getElementById("canvas3");
    58         var content3 = canvas3.getContext("2d");
    59         
    60         content3.beginPath();
    61         // rect(x,y,width,height)
    62         // 以0,0为原点,设置宽100,高100的矩形
    63         content3.rect(0,0,100,100);
    64         content3.stroke();
    65 
    66     </script>
    67 </body>
    68 
    69 </html>

    再上效果图

    两段代码都是一样的,为什么会出现自己画的矩形,高是宽的两倍呢!!!

    我在网上找了以下,发现有人是这么解释的

    attr设置的height/width(比如<canvas height=100/>),是实际有多少像素;

    而通过css设置的height,表示显示出来的大小,并不会影响原本的像素数。

    你的css的height和真实的height不匹配的话,就会出现scale(缩放扩大)的问题


    可以从我的两段代码中看出来

        <canvas id="canvas2" width="300" height="300" style="border:1px solid #d3d3d3;"></canvas>
        <canvas id="canvas3"></canvas>
    我自己的写的样式是在CSS里面,而教程里的代码是直接写在canvas里面的
    也就是说css定义的样式只是外观,canvas的大小还得在属性中定义。
    以上
  • 相关阅读:
    笔试算法题(51):简介
    笔试算法题(50):简介
    笔试算法题(49):简介
    笔试算法题(48):简介
    笔试算法题(47):简介
    笔试算法题(46):简介
    SQL Server 笔记
    SQL Server 2008 安装重启电脑失败
    列举某个目录文件
    Linux LAMP 配置
  • 原文地址:https://www.cnblogs.com/WhiteM/p/6631821.html
Copyright © 2011-2022 走看看