我正在做一个项目,房间里摆满了不同形状的物体。
我正在用油漆画房间,把画面全白,把所有的墙壁/障碍物都涂成红色。
我在不同的文件中绘制每个可移动对象,也使用油漆。
现在,我将房间的地图和对象作为 1 和 0 的矩阵加载到我的程序中。我有一个矩阵作为第一个矩阵,另一个矩阵用于我加载到房间的每个对象。
该物体将能够在房间内自由移动,可以任意距离、任意角度移动,并且可以自行旋转。我应该如何设计一种允许我将对象旋转任意角度并仍然能够检测到碰撞的方法?我的意思是,如果对象可以向上、向下、向左和向右移动,我可以检查两个矩阵以查看它们是否“重叠”任何 1。但是,如果我想将对象旋转 10º,我看不到如何将其转换为矩阵并对照墙壁的矩阵进行检查。
我应该放弃矩阵表示并创建数学区域并处理这个问题,就像我们在 IR^2 微积分中处理它一样,使用一些库吗?在计算方面不是很昂贵吗?
有什么简单的方法可以做到这一点?它不需要是一流的方法,但我将它用于复杂的算法,我不希望在每次迭代中损失太多的计算时间。