请实现下面的问题的算法:
如图,pàq两点组成的有向线段,按顺序经过了(1,0)(2,0)(2,1)(3,1)(3,2)四个黄色的格。
问题: 给出两点坐标pàq ,求经过的格,并且结果是按经过的顺序排列的。
算法要求:
1. 尽可能地减少运算量。 (最好能控制在40次基本运算内)
2. 因为计算机精度问题,尽可能地少使用除法运算。
3. 基本运算加,减,乘,取整,操作是被推荐的。
4. 使用定点数,而不是浮点数。
5. 请给出图形化的验证程序。
6. 请发送算法源代码和解题思路。
小提示:该算法容易和画线算法联系,但画线算法和该问题有根本区别是:画线算法每个样本点对应一个值,而覆盖算法每个样本点对应一个或两个值
这到题看上去有点虎人,其实不是很难,经常做游戏,特别是动作或者RPG的开发的人员应该都知道怎么做:基本思路是:1.画线,当点走到某一坐标的时候根据格子的行和列计算当前点所在位置,每经过一个格子就在索引中加1,判断当前坐标的边界,同时查看索引是第几,如果超过一个格子的宽和高,相当与索引再加一,因为起点和终点坐标是告诉的,程序写起来比较简单。这个办法在游戏当中一般用来判定角色当前的地图坐标,以及进行地形检测。