【问题标题】:Why does Processing draw my sine wave in a samply way?为什么Processing会以一种简单的方式绘制我的正弦波?
【发布时间】:2019-07-03 01:54:02
【问题描述】:

我正在尝试让 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();

我希望它逐个像素地遍历窗口,创建一个平滑的形状。 我实际得到的是看起来是采样的,如下所示。

量化正弦波

【问题讨论】:

  • 是的。绝对是。

标签: java processing


【解决方案1】:

表达式

c / 50

是一个整数除法。结果是一个整数值。如果0 &lt;= c &lt; 50,则结果为0,如果50 &lt;= c &lt; 100,则结果为1。

要使用浮点结果进行浮点除法,两个值中的一个必须是浮点数(例如c / 50.0)。

更改表达式以解决问题:

vertex(c, 100.0 * sin((float)c / 50.0));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多