tips011

数値と単位④
— sin/cos の周期制御

Maths ▸ Trig ▸ Sine / Cosine

角度(ラジアン=1周を 2π で数える角度の単位)を受けて、-1 から 1 のあいだを行き来する数を返す、2つのコンポーネント(キャンバス上の表示名は SinCos)。
波の形を決めるのは Sine 自体ではなく、その前後に置いた Multiplication(A×B)のほう。

何をつなぐか

  • x に角度の数列をつなぐ。0 から 6.283185307179586(2π)までで波1本分=1周期になる
  • 波の数を変えるなら x の手前に、高さを変えるなら y の後ろに A×B を挟む
①がオレンジ、②が青、③が緑の枠。どの枠も左半分は同じで、上のパネルの 0 To 2.0 * Pi が 0 から 6.283185307179586(Panel は π の倍数をこの形で表示する)。3枚の波は同じ画角・同じ縮尺で、灰色の横線が y = 0、両端の縦棒が x = 0x = 2π。山の位置は①③が左端から 1/4(1.570796)、②が 1/8(0.785398)。クリックで拡大。

① そのままつなぐ

  • 0 から 2π までを 48 等分した数列(Range)を x につなぎ、出てきた y をそのまま点の高さにする(図①の①・オレンジの枠)

Result① そのまま

波の数1 本
山が来る x1.570796
値の範囲-1 To 1

② x の手前で 2 を掛ける

  • Range の出力を A×BA に、2B に入れて、その結果を Sine の x につなぐ(図①の②・青い枠)

Result② x に 2 を掛けた

波の数2 本
山が来る x0.785398
値の範囲-1 To 1

x が2倍の速さで進むので、同じ範囲に波が2本入る。

③ y の後ろで 2 を掛ける

  • Sine の yA×BA に、2B に入れる(図①の③・緑の枠)

Result③ y に 2 を掛けた

波の数1 本
山が来る x1.570796
値の範囲-2 To 2

掛ける位置で変わるもの

x の手前(Sine より左)波の数が変わる。2 で同じ範囲に2本入り、値の範囲は -1 To 1 のまま
y の後ろ(Sine より右)高さが変わる。2-2 To 2 になり、波の数は1本のまま

Cosine は 1/4 周期ずれる

Cosine は Sine と同じ形の波で、山が 1.570796(0.5π)だけ早く来る。
1周期 2π の 1/4 にあたるので、x = 0 の時点ですでに 1 になっている。

①が Sine、②が Cosine。x はどちらも同じ5点で、0.5 * Pi は 1.570796。クリックで拡大。
x = 0Sine 0 / Cosine 1
x = 1.570796(0.5π)Sine 1 / Cosine 0
x = 3.141593(π)Sine 0 / Cosine -1
x = 4.712389(1.5π)Sine -1 / Cosine -0
x = 6.283185(2π)Sine -0 / Cosine 1

使いどころ

  • ルーバーやスラブの縁の波打ち方を、x の手前の数ひとつで変える。
  • 波の数はそのままに高さだけ調整するときは、y の後ろの数を動かす。
  • Cosine を X 座標に、Sine を Y 座標に入れて、円周上に点を並べる。

注意

Sine の x はラジアンで受ける。度のつもりの数をそのまま渡すと、まったく違う波になる。
Panel の 0-0 は厳密な 0 ではない。x6.283185307179586 のとき Sine が返すのは -2.4492935982947064e-16 なので、0 と等しいかで分岐すると外れる。

円やらせんの作り方は、Sine と Cosine を組にする回で扱う。

#数値制御