なぜ処理がsamply方法で、私の正弦波を描くのですか?

itzjackyscode:

私は、処理は、正弦波を描画するために取得しようとしています。しかし、出力に正弦波の悪いサンプリングバージョンのように見えます。私は一連の線と形状を交換する必要がある、または別の解決策はありますか?

私は、フロートに変数をキャストすると、変更しようとした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();

私はそれが滑らかな形状を作成し、ウィンドウのピクセル・バイ・ピクセルを横切ることを期待します。私が実際に取得することは、ここで示したように、サンプリングされているように見えるものです。

量子化された正弦波

Rabbid76:

表現

c / 50

不可欠な部門です。結果は整数値です。場合は0 <= c < 50、その結果が0である、もし50 <= c < 100その結果1。

浮動小数点除算を行うために、浮動小数点結果と、2つの値の上の点(例えば、フローティングされなければなりませんc / 50.0)。

この問題を解決するために式を変更します。

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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=231758&siteId=1