我有一些代码可以在随机位置生成粒子,并以随机方向和速度移动.
每次迭代循环,我移动所有粒子,并在我的jpanel上调用重绘.
对于1,000个粒子,我每秒大约需要20到30帧.我计划最终拥有100,000到1,000,000个粒子.
在绘画中,如果窗口的大小发生变化,我只会创建一个新的bufferedimage.我将像素绘制到bufferedimage,然后调用drawImage来显示图像.
每个粒子都是一个像素,我已经确定所有的时间都用于实际绘制像素.因此,增加粒子数将大大降低帧速率.
我尝试过g.drawline(x,y,x + 1,y),img.setRGB(x,y,color),通过调用img.getRaster()得到一个像素数组.getDataBuffer().getData() ,然后设置pixelData [y*width + x] = color.
我只是通过这些不同的绘制像素的方式在帧速率上得到一个小的差异.
这是我的问题:绘制像素的最快方法是什么?是bufferedimage甚至是走的路吗?
谢谢.