为什么 Processing 以示例方式绘制我的正弦波?
Why does Processing draw my sine wave in a samply way?
我正在尝试让 Processing 绘制正弦波。但是,它看起来像是输出上正弦波的糟糕采样版本。我需要用一系列线条替换形状,还是有其他解决方案?
我试过将变量转换为浮点数,并将 c++
更改为 c += 1
。
noFill();
stroke(255);
beginShape();
translate(0, 100);
for (int c = 0; c <= width; c += 1)
{
vertex(c, (float) 100 * sin(c / 50));
}
endShape();
我希望它逐个像素地遍历 window,创建一个平滑的形状。
我实际得到的是看起来像是采样的东西,如此处所示。
量化正弦波
表达式
c / 50
是积分除法。结果是一个整数值。如果0 <= c < 50
,则结果为0,如果50 <= c < 100
,则结果为1。
要使用浮点结果进行浮点除法,2 个值中的一个必须是浮点(例如 c / 50.0
)。
更改表达式以解决问题:
vertex(c, 100.0 * sin((float)c / 50.0));
我正在尝试让 Processing 绘制正弦波。但是,它看起来像是输出上正弦波的糟糕采样版本。我需要用一系列线条替换形状,还是有其他解决方案?
我试过将变量转换为浮点数,并将 c++
更改为 c += 1
。
noFill();
stroke(255);
beginShape();
translate(0, 100);
for (int c = 0; c <= width; c += 1)
{
vertex(c, (float) 100 * sin(c / 50));
}
endShape();
我希望它逐个像素地遍历 window,创建一个平滑的形状。 我实际得到的是看起来像是采样的东西,如此处所示。
量化正弦波
表达式
c / 50
是积分除法。结果是一个整数值。如果0 <= c < 50
,则结果为0,如果50 <= c < 100
,则结果为1。
要使用浮点结果进行浮点除法,2 个值中的一个必须是浮点(例如 c / 50.0
)。
更改表达式以解决问题:
vertex(c, 100.0 * sin((float)c / 50.0));