如何在Processing中绘制高斯曲线

时间:2013-10-04 14:54:03

标签: processing processing.js

我正在尝试使用处理绘制带有mean = 0standard deviation = 1的高斯曲线,但是当我的代码运行时,屏幕上不会绘制任何内容(甚至不是背景)。

这是我的代码:

float x, y, mu, sigma;

void setup() {
  size(900, 650);
  background(255);
  stroke(0);
  strokeWeight(1);

  mu = 0.0;
  sigma = 1.0;

  for(int i = -4; i < 4; i += 0.5) {
    x = i;
    y = (1/(sigma * sqrt(2 * PI)))*(exp((-1 * sq(x - mu)) / (2 * sq(sigma)) ));

    x = map(x, -4, 4, 0, width);
    y = map(y, 0, 1, 0, height);
    point(x, y);
  }
}

void draw() {

}

1 个答案:

答案 0 :(得分:1)

在你的for循环中,你使用int作为计数器,但是你将它递增0.5。当i为正且它递增时,0.5被截断并且我保持之前的状态 - 因此循环将永远运行。这是一个有趣的观察,i确实在负数时增加 - 截断趋于零,因此添加0.5结束添加1.将i的声明从int i = -4更改为{{1修复它在我的电脑上。你可能还想增加每次击球的重量,至少是暂时的,以确定是否正在绘制这些点(他们很难看到它们,我不确定它是否在起作用)。