2012-11-16 43 views
5

我只想顯示在畫布上繪製的一部分形狀。 我行基本上是這樣,它工作正常:畫布,負座標:繪製從畫布開始的路徑,並繼續?

ctx.fillRect(xPosition, rectHeight - offsetV , rectWidth, rectHeight); 

第二個變量存在將是負面的。所以,我的問題是:這是不好的做法(或者我是否爲自己的錯誤設置了自己)來繪製從畫布開始的路徑(帶有負座標),然後繼續繪製到畫布上。

+2

不,它不是」只要你不在屏幕上畫很多東西,這將是一個重大的資源浪費。 – Shmiddty

+1

如果您想知道,大多數實現(?all?)會在繪製矩形之前剪切矩形,所以成本只是此剪輯成本 - 並非在畫布外繪製單個像素。 – GameAlchemist

回答

0

完全沒問題。如果你有大量的繪圖對象,你可以像GameAlchemist所說的那樣阻止繪製該對象。如果你使用畫布像地圖進行探索(縮小/在ctx中,翻譯整個上下文),防止繪製會花費更多的剪輯成本。它的複雜...

我有一些過期的畫布對象。如果您將計算和其他(無繪圖)員工介紹繪圖功能,則可能會有問題。

重要:

- 製作畫布繪製函數代碼明確的(只畫油畫代碼)。

- 如果你的應用程序不需要const更新,只有在需要時才進行更新調用。

- 清除畫布只在(0,0,canvas.w,canvas.h)

- 使用風格,只有當它需要(筆觸,填充,字體等)