gpt4 book ai didi

c - 试图在 c 中放大正弦波的问题

转载 作者:太空宇宙 更新时间:2023-11-04 03:33:36 24 4
gpt4 key购买 nike

希望有人能指出为什么这不起作用或我可能哪里出错了。我通过 c 中的 for 循环产生正弦波。最终目标是生成一个显示此内容的 .ppm 文件。我正在处理 1 比 1 的像素比。我的盒子是128H*256W。正在显示正弦波,但由于以弧度为单位产生答案,结果是一个非常小的两个像素高的“波”。我假设这是由于 rad 值介于 1 和 -1 之间。这是我的代码。我尝试只是简单地增加 y 值的时间以增加 y 值的大小,希望它能正确绘制,但这几乎没有或更糟导致应用程序停止运行。非常欢迎任何想法。

for (x = 0; x < H; x++)
{

y =(int) H/2+ sin(x*(2*PI));
y = y * 50;
image[y][x][1] = 0;
image[y][x][2] = 255;
image[y][x][3] = 0;
}

编辑:这是通过 infraview 打开时在 .ppm 文件中生成的内容。我也#defining PI 3.141592653589793。这又可能是一个问题领域。

first sine wave .ppm

最佳答案

我推测 y 是一个 int

您的sin 值将被截断为一个整数;大多数情况下为 0,但偶尔为 -1 或 +1。

解决方法很简单:为 y 使用 float ,并在您想将其用作数组索引时进行转换。

关于c - 试图在 c 中放大正弦波的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34225459/

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