【发布时间】:2012-09-17 09:02:54
【问题描述】:
我正在构建的应用程序必须以流畅的帧速率在屏幕上绘制大约 400 个四边形形状。形状有 255 种排列,并在 0-360 度的任何地方旋转绘制。考虑到它需要的内存量(虽然我可能是错的),我认为预渲染它们不会有效。它们还具有 24 位颜色范围。现在我正在用路径绘制它们,所有的旋转和平移都由生成值的函数处理。虽然这个实现是有效的(一切都是在像 25 一样的低帧速率下),我只是觉得有一种更有效的方法来做到这一点。老实说,openGL 和 java 看起来很混乱,但如果它是唯一的选择,那么我会努力学习它。
TL;DR 这段代码对于不断变化的形状是最有效的吗?
void quad(Canvas canvas,Paint paint, float x1,float y1, float x2,float y2, float x3,float y3,float x4,float y4, float xoff, float yoff, int color){
float[] hsvc = { map(color,0,100,0,360),.8f,1};
paint.setColor(Color.HSVToColor(hsvc));
Path path = new Path();
path.moveTo(x1, y1);
path.lineTo(x2, y2);
path.lineTo(x3, y3);
path.lineTo(x4, y4);
path.close();
path.offset(xoff, yoff);
canvas.drawPath(path, paint);
}
谢谢!
【问题讨论】: