我正在開發一個小型圖書館作爲一些應用程序的基礎。由於我要創建一個場景圖(2D)我想知道以下哪些方法看起來的性能,可維護性視野下更有前途,使用方便等畫布操作與元素操作
- 我可以給每個繪製元素的矩陣,其中我執行翻譯,旋轉和更多。
- 我可以在畫布上做所有事情而不是元素。
第一溶液具有的缺點:
private float get(int index) {
final float[] values = new float[9];
getValues(values);
return values[index];
}
public float getX() {
return get(Matrix.MTRANS_X);
}
public float getY() {
return get(Matrix.MTRANS_Y);
}
:對於像圓形,在不能在繪圖調用傳遞矩陣基本元素,我必須從矩陣這樣訪問翻譯過的值
因此,在每個繪圖調用中,我爲每個getter調用創建一個float數組(一個用於getX(),另一個用於getY())。假設我在屏幕上有很多元素,這可能會導致內存和性能的影響。
第二種方法有「負面」思維的缺點。如果我想在100/100點繪製一個元素,我必須將畫布轉換爲-100/-100,就像我在0/0上繪製一樣。如果我在此之後恢復畫布,結果將是在想要的100/100上繪製的元素。我不確定這種負面的想法是否會對代碼可維護性造成嚴重影響,並且會降低理解力(甚至從來沒有開始考慮通過簡單地忽略某些東西來引入錯誤)。
有人有提示哪種方式應該是首選嗎?
我發表了我的研究成果。我無法從你的答案中得到任何新東西,但我讚揚你的努力。 – WarrenFaith