Snippets

sironekotoro 正弦波を表示する

Created by sironekotoro last modified
#!/usr/bin env perl
use strict;
use warnings;
use Math::Trig 'deg2rad';   # 角度をラジアンにする
use Time::HiRes qw(sleep);  # 高精度sleep関数

$| = 1; # 出力を溜め込まず、print 文の実行の都度出力する

my $deg = 0;    # 角度の初期値

for ( 1 .. 1000 ) {
    sleep(0.5); # この行で0.5秒待つ

    # 角度をラジアンに変換
    my $rad = deg2rad($deg);

    # ラジアンからサインに変換
    my $sin = sin($rad);

    # sin + 1 を加えた正の値を
    # グラフを構成する * の数とする
    my $star = $sin + 1;

    # 最大値2,最小値0ではグラフに華がないので、
    # 10倍の値にする
    $star *= 10;

    # 小数点は邪魔なので、int関数で小数点を切り捨てた
    # 値に丸める
    $star = int($star);

    # * を $star の数だけ表示する
    print '*' x $star . "\n";

    # $degに30度加える
    $deg = $deg + 30;
}

Comments (0)