java - 为什么 Processing 以简单的方式绘制我的正弦波?

标签 java processing

我正在尝试让 Processing 绘制正弦波。但是,它看起来像是输出上正弦波的糟糕采样版本。我需要用一系列线条替换形状,还是有其他解决方案?

我试过将变量转换为 float ,并将 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();

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

量化正弦波

最佳答案

表达式

c / 50

是一个整体除法。结果是一个整数值。如果0 <= c < 50 ,则结果为 0,如果 50 <= c < 100然后是结果 1。

要进行浮点除法,得到浮点结果,2 个值中的一个必须是 float (例如 c / 50.0)。

修改表达式解决问题:

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

关于java - 为什么 Processing 以简单的方式绘制我的正弦波?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56861902/

相关文章:

java - 为什么我的蓝牙应用程序崩溃

java - 什么是 VM,为什么动态语言需要 VM?

image - Kinect,使用深度图像获取Z值

javascript - 重构这段代码的有效方法是什么?

java - MVC 进度条线程

java - 创建表记录 - Google Spreadsheets API

java - setText中 `"“+`的用途是什么

console - 处理隐藏控制台警告

qt - 创建跨平台计算机视觉 GUI 的理想框架

Android rsSetElementAt 4.2