我正在做一个模拟器项目,测试几种基于 A* 的算法并展示它们的工作原理和结果。这些算法都是多智能体并在网格地图环境中运行。
我为网格使用了 JPanel,其中包含一个二维单元格数组,其中每个单元格都是一个自定义类,它扩展了 Component 类并使用paint方法在每个单元格内绘制我需要的东西。对于单元格内的绘图,我使用诸如 Graphics.fillRect 或 Graphics.drawImage 之类的方法来用某种颜色或图标填充每个单元格)。
我为网格上每个代理的起始位置和目标位置使用了一个特殊的图标。我的问题是我希望能够在同一个单元格上绘制多个项目。
例如,我希望能够通过以特殊颜色沿路径绘制单元格来显示其中一个代理的路径,并且路径可能会通过不同代理的起始位置,所以我希望能够填充带有颜色的单元格,并在顶部绘制一个图标。在另一个示例中,我希望能够使用 alpha 混合来混合两种颜色。
如果我使用具有 alpha 的一种颜色的 graphics.fillRect(),然后再次使用具有 alpha 值的不同颜色,它将无法工作,因为最后一个 fillRect() 将覆盖第一次调用。
有没有办法可以使用我创建的相同单元组件来实现我需要的东西,或者我应该以不同的方式实现它?也许这个问题有更好的解决方案?我真的很感激关于这个问题的任何建议。