2011-02-16 163 views
2


     Canvas canvas = Canvas.createIfSupported(); 

     canvas.setWidth("200px"); 
     canvas.setHeight("200px"); 

     RootPanel.get().add(canvas); 

     Context2d context = canvas.getContext2d(); 
     context.setStrokeStyle("black"); 

     context.arc(50, 50, 20, 0, Math.PI*2); 

     context.stroke(); 

爲什麼我在這裏有橢圓而不是圓?橢圓vs圓

+2

這可能是您的屏幕的縱橫比不是1:1 - 您可以發佈截圖嗎? – 2011-02-16 13:55:13

+0

您是否已經確認「橢圓而不是圓形」的這種效果不是顯示器物理幾何體的僞影?也就是說,你是否用矩形繪製了一個正方形,並且用一把尺子確認了所有的邊是平等的? (如context.rect(30,30,40,40);) – rskar 2011-02-16 14:03:30

回答

4

您還可以設置座標空間,使其畫布的長寬比匹配。因此,您可以添加以下行:

canvas.setCoordinateSpaceWidth(200); 
canvas.setCoordinateSpaceHeight(200);