3
我想畫一個建築物的粗略輪廓。 我通過爲每個邊創建一系列正方形,再加上頂部「頂」,然後基本按照Painter的算法依次繪製它們,從而實現以下效果。HTML5畫布不保留繪製順序
左邊的屏幕截圖顯示了它的外觀。這是分別繪製每個正方形。
爲了提高性能,我希望儘可能少的.stroke()和.fill()調用,所以我排隊調用所有moveTo()和lineTo()調用,並將它們全部繪製在一個大的範圍內。 測試表明(至少對於行)這提供了大量的性能改進,並且我自己對其進行了驗證。
不幸的是,你可以從右側的截圖看到,當我在最後繪製建築物時,分層基本上被破壞。它以一種看似隨機的順序來繪製事物。
畫布應該以這種方式工作嗎?爲什麼它不按照我告訴它像第一個截圖那樣繪製的順序繪製所有內容? 有沒有人知道這種行爲很好的解決辦法?
實際上,當繪製一個具有相同風格的所有東西的循環時,它只是一個關於.stroke()和.fill()是否在循環內部或外部的問題。 – Nick
我想我總是把我的地方放在同一個地方 - 可能在外面,因爲我傾向於獲得OP演示的效果。 – hunterloftis