2015-08-04 3 views
1

Everytime я пытаюсь сделать круг по этому методу (где плата является холст доска, которая имеет контекст 2d):Почему мой холст создает эллипсы, когда я хочу создавать круги?

 board.lineWidth = 4; 
     board.beginPath(); 
     board.arc(canvas.width/2, canvas.height/2, 10,0,360); 
     board.strokeStyle = "blue"; 
     board.stroke(); 
     board.closePath(); 

Он всегда создается больше эллипса, чем круг, и он никогда не ехать координаты, которые я им даю. Если я скажу canvas.width/2 и с высотой (чтобы сосредоточить его), он даже выходит за пределы самого холста. Когда я даю ему что-то вроде 30, он идет намного дальше, чем 30 пикселей.

Sidenote: Моя ширина и высота моего холста равны 500 пикселям.

+0

Последний параметр должен быть поплавок в радианах, а не градусах – hindmost

+1

Такая же проблема? http://stackoverflow.com/questions/2588181/canvas-is-stretched-when-using-css-but-normal-with-width-height-properties –

+0

Если вы определяете размер холста с помощью CSS - не. Вместо этого измените размер, используя 'canvas.width' и' canvas.height'. – markE

ответ

1

5-й параметр arc ожидается как угол в радианах, а не в градусах.

360 degrees = 2 * PI

Таким образом, вы должны изменить свой код:

... 
board.arc(canvas.width/2, canvas.height/2, 10, 0, Math.PI * 2); 
+1

Это правда, но я думаю, что неправильный угол все равно будет создавать круг, а не эллипс. – Oriol

Смежные вопросы