0

mean = 0処理を使用してガウス曲線を描画しようとしstandard 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() {

}
4

1 に答える 1

1

for ループではint、カウンターとして an を使用していますが、0.5 ずつインクリメントしています。がi正でインクリメントされると、その 0.5 が切り捨てられ、i は以前のもののままになります。したがって、ループは永久に実行されます。負の場合に増加するのは楽しい観察ですi。切り捨てはゼロに向かって機能するため、0.5 を追加すると 1 が追加されます。from の宣言を変更しiて、コンピューターで修正しましたint i = -4float i = -4ポイントが描画されていることを確認するために、少なくとも一時的にストロークの太さを増やすこともできます (ポイントが見づらかったため、最初は機能しているとは確信していませんでした)。

于 2013-10-04T17:06:26.877 に答える