2013-04-29 67 views
1

當我申請canvas.getContext2d().scale(1.5, 1.5),然後我在畫布對象變得如預期大,但在某種程度上模糊了。如何正確放大畫布?

我有什麼做的,使畫布上畫出我的對象一樣鋒利,因爲它在不縮放的?

回答

0

我發現有ctx.transform()ctx.scale()方法的畫布。哪些工作正常,但因爲他們的行爲就像縮放圖像一樣,結果並不明顯。猜(歸因於)反對和類似的東西。

所以我決定改寫我所有的ctx.draw()方法來尊重GLOBAL_OFFSET,當用戶放大和縮小時它會改變數值。通過這種方式,畫布對象可以保持其原有的coordiante點值,但尊重縮放級別和偏移,可以吸引他們更大或更薄,哪一種「simmulates」的縮放和平移。

1

使用抗鋸齒呈現提示:

Graphics2D g2 = (Graphics2D) g; 
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 

所以當你擴展,它看起來真的好。

右邊的圖像使用RenderingHints.VALUE_ANTIALIAS_ON enter image description here

+1

我相信他是問GWT,沒有Graphics2D的或抗鋸齒控制 – jusio 2013-04-29 16:14:50

+0

起坐,我沒有看到GWT標籤! – 2013-04-29 18:21:07