让我们说我在2d飞机上的位置有一个观点。 这一点将随机改变它的位置,但这不是重点,所以我们假设它有自己的速度,并且它在宽度和高度受限的平面上移动; 因此,经过一段时间的运动,这一点将到达飞机边界。 但它不允许离开飞机。
所以现在我可以检查每一帧的点位置,看它是否已达到约束。
如果(point.x> bound.xMax)point.x = bound.xMax
如果我想将点传送到飞机的第二侧,我可以简单地说:
point.x = point.x%bound.xMax;
然后我需要以整数存储点位置。
对于我的corei7 1.6两种解决方案的10 milion值 有类似的时间。第二节41毫秒vs 47 所以在这种情况下使用模数函数是没有意义的,只需检查值就更快。
但是,是否有任何一种技巧可以让它更快? 迭代数组方法的多个线程不是解决方案。
也许我可以将我的绑定值扩展为某个奇怪的值,例如丢弃位置值的二进制解释的一部分。
如果有一些技巧可以做到这一点,我认为有人在我之前做过:) 你知道任何可以帮助我的解决方案吗?
答案 0 :(得分:1)
如果有某种方法可以在平面坐标周围添加信息,那么很可能在平面周围形成一个“边界”,其中包含一个被标识为“超出边界”的值。例如,如果您有一个10x10电路板,请将其设为12x12,并使用额外的2行和列来插入该信息。
现在你可以做(伪代码): IF点IN板IS“超出边界值”那么 做你的事 结束如果
请注意,如果您的点同时具有x和y值(我在您的情况下的假设),则此方法仅是优化。