几何基元的Java算法

时间:2014-02-11 04:39:41

标签: java algorithm geometry rendering

我一直在研究一些关于几何图元的算法,其中对我来说最重要的两个是笔画和圆圈。 Oracle似乎没有提供生成这些绘画形状的确切信息。我想要这个的原因是因为我需要将受影响的像素从绘画存储到texturePaint []中以进行游戏碰撞检测。我主要想要专家输入它是否值得做,因为仅仅使用bufferedImages会影响我因为RAM问题而制作游戏地图的程度。它是否会在迭代数组中大幅减慢我的绘画过程,或者java是否会遍历每个像素进行绘画以绘制其形状?

1 个答案:

答案 0 :(得分:1)

就速度而言,writeableraster允许您对图像进行非常快速的更改。您还可以使用fork/join等工具,以便在需要时加快速度。

在碰撞检测方面,我担心你将不得不依靠自己的手动数学函数。这是an example

编辑:

当我进行这种编码时,我发现在writeableraster中使用setPixels方法比依赖paintComponent方法(例如绘制形状)快得多。如果您想要更加确定,可以通过重复操作10000次来编写一些函数来测试每种方法,并查看哪种方法更快完成。

此外,除了多线程之外,您还可以使用java的double bufferingBufferStrategy工具在需要之前准备后续栅格。通过这种方式,每个连续的栅格在转弯时都会“打开”,因为它已经在缓冲区中预先渲染。

我希望这些额外的链接有所帮助。