我正在尝试实现此公式以产生碰撞,但是我遇到了一些问题。结果看起来不一样,因此要暗得多。 。



这是相关的代码。 ?
非常感谢!

评论

专业提示,与您的问题无关:您可以期望(foo * foo)比pow(foo,2.0f)快得多;如果您的数据是逐行(而不是逐列)组织的,则应交换for循环以更一致的顺序遍历数据。

#1 楼

当您使用多个正弦波的平均值时,您的颜色值将在-1到1的范围内。在示例图像中,看起来只有该值范围的上半部分(从0到1)产生颜色,其他所有地方都保持黑色。

如果用于显示结果的内容只能处理正值,则需要将结果转换为正确的值范围。例如,要将范围从[-1到1]转换为[0到1],您需要加1并除以2。

在示例代码的上下文中,这可能是遵循以下行

color /= (float)_iterations;




color += 1;
color /= 2;