前回記事で、せっかく円をえがくプログラムを作ったので、
その円のかたちから三角関数のsinの値をおしえてくれる、
そんなプログラムにかいぞうしてみます!
sinて、中学?高校?の数学で出てくるので、
小学生にはできません。すみません。
sinθて何か、ひとことで説明しろ、と言われたら
「単位円(半径1の円)をぐるぐる(角度にしてθ)まわった時の、Y座標」
て、答えるかな。
円状に、何かのまわりをぐるぐるまわる、というのは、
世の中のほとんどの運動にあてはまる性質。
なので、自分は、sinのことを上の表現みたいに、円で考えることが多いです。
三角関数のことを、円関数ともいうくらいですし。
そしてsinのことも、「正弦」(円弧の弦の長さ)というくらいだし。
直角三角形の2辺で教わることが多いですが、
円の弦、というイメージで読んでってください。
数学のややこしい話はおいといて、
とにかくボールを角度θだけ転がして、
その時のY座標(つまりsinθ)をプログラムにこたえさてみます。
まずは、前回記事で作った円をえがくプログラムからスタートします↓
https://scratch.mit.edu/projects/1143484182
ここに、ユーザーに角度(θ)を入力してもらって、
θだけボールを転がすよう、プログラムをいじります。
ユーザーに値を入力してもらうには、
「しらべる」の中の「〇〇ときいてまつ」ブロックを使います。
入力された値が、自動的に「こたえ」という変数にはいります。
つづけて「へんすう」で「θ」と名前をつけた新しい変数をていぎして、
そのθに「こたえ」の値を入れます。
※「こたえ」をそのまま使っていけばいいのかもだけど、
θって名前をつけた方が角度っぽくて、わかりやすいので。
で、くりかえしブロックの360回のところに変数θをいれれば、
指定した角度θだけボールを転がすプログラムになります。
90を入力して、90度だけボールが転がりました!
そうしたら、次はsinθを答えさせるため、
ボールのY座標を使います。
「しらべる」の中に「yざひょう」があるので、
これを「〇〇という」コードで答えさせる。
これで、θだけ転がしたときのボールのY座標がわかります。
しかし、ここで問題が。
この円は単位円(半径1)ではありません!
1ピクセルずつ、360回のくりかえし処理によって描いた円で、
わかるのはその円周の長さが360ピクセル、ということ。
ここで、円周率による円周の計算。
円周=2 * r * 3.14
なので、この円の半径rは
360 = 2 * r * 3.14 → r = 57.3
になります。
単位円の57.3倍の長さ。
なので、y座標を57.3で割れば、単位円の場合のy座標になります。
その演算結果をこたえさせるよう、「〇〇という」に、
「えんざん」を入れます。
これでプログラムの完成です!
最終的な作品をScratchで共有します
https://scratch.mit.edu/projects/1143525979
※ボールを1ピクセルずつ動かす過程で、少しですが、誤差が出ます。





