前回記事で、せっかく円をえがくプログラムを作ったので、

その円のかたちから三角関数の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ピクセルずつ動かす過程で、少しですが、誤差が出ます。