HTML5 Canvas - 圆形渲染问题

时间:2014-02-14 14:38:24

标签: javascript jquery html5 canvas

我正在尝试HTML5画布,并且在绘制圆形/弧形时遇到一些问题,当我制作圆形时,它看起来更像是一个扭曲的椭圆形。我不确定我做错了什么。

这是我的js,在代码下面摆弄。

<script>
$(document).ready(function drawOnCanvas() {
$("a#draw").click(function(){
 var canvas = document.getElementById("canvas_1");
    if ( canvas.getContext ) {
        var canvas_context = canvas.getContext("2d");
         console.log("2D context supported");
        // Drawing circles
        var start_degrees = 0;
        var end_degrees = 360;
        var start_angle = ( Math.PI/180 ) * start_degrees;

        var end_angle = ( Math.PI/180 ) * end_degrees;
        canvas_context.beginPath();
        canvas_context.arc(100,100,25,start_angle, end_angle, true);
        canvas_context.strokeStyle="rgb(0,222,0)";
        canvas_context.fill();
    }
    else{
     alert("Not Working");
    }
}); 
});
</script>

小提琴:

http://jsfiddle.net/hLfHy/

2 个答案:

答案 0 :(得分:1)

问题是画布内部大小不符合渲染它的视口。

在初始化中添加:

var canvas = document.getElementById('canvas_1');
canvas.height = canvas.clientHeight;
canvas.width = canvas.clientWidth

Demonstration

答案 1 :(得分:0)

您需要设置画布宽度和高度,以便正确计算。尝试以下似乎现在正在你的小提琴http://jsfiddle.net/hLfHy/10/

canvas.height = $("#canvas_1").clientHeight;
canvas.width = $("#canvas_1").clientWidth;