tips011
数値と単位④
— sin/cos の周期制御
Maths ▸ Trig ▸ Sine / Cosine
角度(ラジアン=1周を 2π で数える角度の単位)を受けて、-1 から 1 のあいだを行き来する数を返す、2つのコンポーネント(キャンバス上の表示名は Sin と Cos)。
波の形を決めるのは 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 = 0 と x = 2π。山の位置は①③が左端から 1/4(1.570796)、②が 1/8(0.785398)。クリックで拡大。① そのままつなぐ
- 0 から 2π までを 48 等分した数列(Range)を x につなぎ、出てきた y をそのまま点の高さにする(図①の①・オレンジの枠)
Result① そのまま
| 波の数 | 1 本 |
|---|---|
| 山が来る x | 1.570796 |
| 値の範囲 | -1 To 1 |
② x の手前で 2 を掛ける
- Range の出力を
A×Bの A に、2を B に入れて、その結果を Sine の x につなぐ(図①の②・青い枠)
Result② x に 2 を掛けた
| 波の数 | 2 本 |
|---|---|
| 山が来る x | 0.785398 |
| 値の範囲 | -1 To 1 |
x が2倍の速さで進むので、同じ範囲に波が2本入る。
③ y の後ろで 2 を掛ける
- Sine の y を
A×Bの A に、2を B に入れる(図①の③・緑の枠)
Result③ y に 2 を掛けた
| 波の数 | 1 本 |
|---|---|
| 山が来る x | 1.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 になっている。
0.5 * Pi は 1.570796。クリックで拡大。x = 0 | Sine 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 ではない。x が 6.283185307179586 のとき Sine が返すのは -2.4492935982947064e-16 なので、0 と等しいかで分岐すると外れる。
円やらせんの作り方は、Sine と Cosine を組にする回で扱う。