我正在开发一个小型图书馆作为一些应用程序的基础。由于我要创建一个场景图(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