我正在做一些 3D 图形,我有一片开阔的海洋。对于这个海洋,我有一个矩阵,表示特定矩形海段的海况(即波高)。海洋的其余部分是平坦的。我的问题是,我的受控海(有波浪)位于开阔平坦的大海中间,网格边缘的不连续性会导致一些不良伪影。我只为一小部分而不是整个海洋生成波浪的原因是因为我的噪声函数在整个海洋上计算起来非常昂贵(而且我知道最简单的解决方案是使用更便宜的噪声函数,如单纯形噪声,但这不是一个选项)。
话虽如此,我的问题真的很简单。如果说我有一个大小为 100x40 的网格(又名矩阵又名 2d 数组),并且我想找到位置 120x33 的值,我只想取最近的邻居,即 100x33。因此,对于位于给定范围之外的任何数字,我希望该数字饱和以位于给定范围内。 C 或 C++ 中是否有执行此操作的函数?
编辑:位置参数是浮点类型
我知道我可以用一些简单的 if 语句来做到这一点,但这似乎是标准库中包含的东西。
原文由 lmirosevic 发布,翻译遵循 CC BY-SA 4.0 许可协议