无法用Canvas绘制一个合适的圆圈
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法用Canvas绘制一个合适的圆圈相关的知识,希望对你有一定的参考价值。
无论怎样,我都无法画出一个合适的圆圈。我总是得到一个椭圆形。这是示例代码,向您展示我的意思:
function canvasClicked(number)
var c = "canvas" + number;
var canvas = document.getElementById(c);
var context = canvas.getContext("2d");
var centerX = 150;
var centerY = 75;
context.beginPath();
context.arc(centerX, centerY, 70, 0, Math.PI * 2);
context.lineWidth = 10;
context.strokeStyle = "red";
context.stroke();
#canvas1
width: 200px;
height: 200px;
border: 1px solid black;
<canvas id="canvas1" onclick="canvasClicked(1)"></canvas>
我试图找出问题的原因但没有任何成功。我知道centerX和centerY应该等于element.width / 2和element.height / 2但是这会给我带来更尴尬的结果,将椭圆移离盒子的中心。
答案
问题是这样的:
#canvas1
width: 200px;
height: 200px;
border: 1px solid black;
使用这个时:
<canvas id="canvas1" onclick="canvasClicked(1)"></canvas>
或者更确切地说:可见的css尺寸与底层画布尺寸不同。因为没有将它们设置为元素上的属性:
<canvas id="canvas1" onclick="canvasClicked(1)" width="200" height="200"></canvas>
将导致画布使用默认值300x150px。
但是:Kua zxsw指出
进一步参考:http://jsbin.com/geralevi/1/
注意:如果渲染效果看起来失真,请尝试在属性中明确指定宽度和高度属性,而不是使用CSS。
以上是关于无法用Canvas绘制一个合适的圆圈的主要内容,如果未能解决你的问题,请参考以下文章