首頁  >  問答  >  主體

html5 - canvas制作圆形,出来的是椭圆

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>canvas绘制时钟</title>
    <style>
        p{
            text-align: center;
            margin-top: 250px;
        }
        #clock{
            border: 1px solid #ccc;
        }
    </style>
</head>
<body>
    <p>
        <canvas style="width:200px ;height:200px" id="clock"></canvas>
    </p>
    <script type="text/javascript" src="js/clock.js"></script>
</body>
</html>
var dom=document.getElementById("clock");//获取canvas的id
var ctx=dom.getContext("2d");//获取上下文,HTML5不支持3d
var width=ctx.canvas.width;//
var height=ctx.canvas.height;
var r=width/2;

//定义一个方法画圆
function drawBackground(){
    ctx.save();
    //转换坐标
    ctx.translate(r,r);
    ctx.lineWidth=10;
    //获取路径
    ctx.beginPath();
    //画圆
    ctx.arc(0,0,r-5,0,2*Math.PI,false);
    //绘制当前路径
    ctx.stroke();
}
//执行方法
drawBackground();

代码如上,但是出来如下图,,,不解,,,有大神可以给解释一下吗??头一次学习canvas

迷茫迷茫2722 天前475

全部回覆(2)我來回復

  • 怪我咯

    怪我咯2017-04-17 14:30:10

    <canvas width=200 height=200 id="clock"></canvas>

    canvas那兒改成這樣子

    https://developer.mozilla.org...

    看起來和 元素很相像,唯一的不同就是它並沒有 src 和 alt 屬性。實際上, 標籤只有兩個屬性- width和height。這些都是可選的,並且同樣利用 DOM properties 來設定。當沒有設定寬度和高度的時候,canvas會初始化寬度為300像素、高度為150像素。 該元素可以使用CSS來定義大小,但在繪製時圖像會伸縮以適應它的框架尺寸:如果CSS的尺寸與初始畫布的比例不一致,它會出現扭曲。

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 14:30:10

    使用<canvas width="300" height="300" id="clock"></canvas>指定畫布的物理尺寸
    或`dom.width=200;
    dom.height=200;`

    並且不要稱其為“dom”,它是一個畫布元素。

    回覆
    0
  • 取消回覆