gpt4 book ai didi

c++ - 指定范围内的保值

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:07 25 4
gpt4 key购买 nike

假设我有一个点及其在二维平面上的位置。这个点会随机改变它的位置,但那不是那个点,所以我们假设它有自己的速度并且它在宽度和高度受限的平面上移动;因此,经过一段时间的运动后,该点将到达平面边界。但不允许离开飞机。

所以现在我可以检查每一帧的点位置,看看它是否达到边界。

if(point.x>bound.xMax)point.x=bound.xMax

如果我想让点自己传送到平面的第二侧,我可以简单地:

point.x = point.x%bound.xMax;

但是我需要用整数存储点位置。

对于我的 corei7 1.6 上的 1000 万值,这两种解决方案有相似的时间。 41 毫秒 vs 47 秒,所以在这种情况下使用模函数是没有意义的,只检查值会更快。

但是,有什么技巧可以让它更快吗?迭代数组方法的多线程不是解决方案。

也许我可以将我的绑定(bind)值缩放到某个奇怪的值,例如丢弃位置值的二进制解释的一部分。

如果有什么技巧可以做到,我认为有人在我之前做到了 :)您知道可以帮助我的任何解决方案吗?

最佳答案

如果有一些方法可以在平面坐标周围添加信息,那么您可以很好地在平面周围创建一个“边界”,其中包含一个被标识为“超出边界”的值。例如,如果您有一个 10x10 的板,将其设为 12x12 并使用 2 个额外的行和列来插入该信息。

现在你可以做(​​伪代码): IF point IN board 是“out of boundaries value” THEN 做你的事 如果结束

请注意,如果您的点同时具有 x 和 y 值(我对您的情况的假设),则此方法只是一种优化。

关于c++ - 指定范围内的保值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11067907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com