
やっと「斜面上の物体と力」についてのプログラムが出来上がりました。休みやすみ取り組んで20日ほどかかりました。斜面の角度に従って矢印が変わってきますから、すべての矢印を角度k°を使って計算します。使用するのは cos k° sin k° です。プログラムの最初のほうで ck = cos k° sk = sin k° と計算して変数に記憶させます(cos k°を計算して変数ckに計算値を入れる。)。この変数ckとskをいっぱい使って矢印を作っていきます。矢印の長さの90%は4px(1pxとは画面の最小単位)幅の実線で引き、残りの10%で矢印の先の三角形を描きます。こんなことをこんがりながらも頭をフル回転させてやっていきました。わからないときには「プログラムを書いてみて~どう描画するか?」を試してみました。「おかしかったらプログラムを書き直す!」です。大概は、ckとskを入れ替えるとか、+と−を入れ替えることで解決しました。しかし、どこがおかしいか全くわからず長考も何度もありました。そんなときは、何も考えないでいるとアイデアは自然と降りてきます。考えようとするよりこっちがイイようです。不思議です。頭では考えようとしなくてもいつも考えているんですね。これをちょっとずつ積み重ねて出来上がりました。
これが初期画面です。

右側の上から7つのボタンは力の矢印を一つ一つ表示させます。
上の4つの黒ボタンはボタンに書かれた働きがいくつかの力の矢印で表現されます。
下の -1 -10 +10 +1 のボタンは斜面の角度k°を変えるためのボタンです。上のボタンがどんな状態でも角度を変えることができます。
重力の矢印が表示されていますが、右ボタンの重力ボタンの色が反転しています。文字の色の青が重力の矢印の色と同じになっています。他のボタンの色と矢印の色も同じような組み合わせになっています。
矢印の先にある数字100は、その矢印の力の大きさです。物体の質量を10kgと設定していますので、それにかかる重力の大きさを100N(ニュートン)と便宜的に示しました。(実際は≒98Nとなりますが、チョットでもわかり易く簡単に表しています。)
このプログラムは、どれかのボタンを押すと、すべての計算をして画面を表示させるものになっています。
ではボタンを押してみましょう。
まず”物体を押す力”ボタンです。

斜面が物体を押す力の矢印が表示されました。画面から”矢印の色とボタンの色”が同じになっていますし、ボタンは反転もしています。わかり易いでしょうか。
右側のボタンの場合は、他の6つもすべて同じで、ボタンに書かれた力の矢印を、ボタンの色で描いてくれます。
上の黒ボタンも押してみましょう。
まずは”つり合い”ボタンです。

物体は”静止”していますからつり合い状態にあります。物体が触れているのは”斜面”と”ひも”ですから、”斜面と物体”では物体が斜面を押す力と斜面が物体を押す力が釣り合っています。
”ひもと物体”では物体がひもを引く力とひもが物体を引く力が釣り合っています。
”重力の分解”ボタンです。

”物体に働く力”ボタンです。

”物体が他に働く力”ボタンです。

このように黒ボタンを押した場合には、働く力の矢印が表示されるだけでなく、右の色ボタンも反転しています。
※ 右ボタンの一番下の”リセット”ボタンは矢印の力を消すためのものです。
次は、下の角度ボタンを押してみましょう。

角度が10度になっています。30度から10度ですから、”ー10”ボタンを2回押せばいいですね。-1を20回でもいいですね。
ではボタンを押してみましょう。
まず”物体を押す力”ボタンです。

斜面が物体を押す力の矢印が表示されました。画面から”矢印の色とボタンの色”が同じになっていますし、ボタンは反転もしています。わかり易いでしょうか。
右側のボタンの場合は、他の6つもすべて同じで、ボタンに書かれた力の矢印を、ボタンの色で描いてくれます。
上の黒ボタンも押してみましょう。
まずは”つり合い”ボタンです。

物体は”静止”していますからつり合い状態にあります。物体が触れているのは”斜面”と”ひも”ですから、”斜面と物体”では物体が斜面を押す力と斜面が物体を押す力が釣り合っています。
”ひもと物体”では物体がひもを引く力とひもが物体を引く力が釣り合っています。
”重力の分解”ボタンです。

”物体に働く力”ボタンです。

”物体が他に働く力”ボタンです。

このように黒ボタンを押した場合には、働く力の矢印が表示されるだけでなく、右の色ボタンも反転しています。
※ 右ボタンの一番下の”リセット”ボタンは矢印の力を消すためのものです。
次は、下の角度ボタンを押してみましょう。

角度が10度になっています。30度から10度ですから、”ー10”ボタンを2回押せばいいですね。-1を20回でもいいですね。
角度ボタンを1つ押すたびに、瞬時に計算して画面が変わります。タイムラグはまったく感じられません。

次は14度になっていますから、更に”+1”ボタンを4回押したんですね。

次は14度になっていますから、更に”+1”ボタンを4回押したんですね。
押すたびにですから、画面も11度12度13度14度と4回変わります。
更に、


90度の場合です。

0度の場合です。

角度は0~90度の範囲で変化するようになっています。
以上、紹介しましたが、物体に働く力の理解に役立つものでしょうか。学校や個人学習で役立つものになっていれば嬉しいです。
実際に使ってみたい方は次をクリックすると表示されます。
http://hirakaretagakkou.web.fc2.com/puroguramu/syamennjyounobuttaitotikara.html

最後まで読んでいただきありがとうございました。
更に、


90度の場合です。

0度の場合です。

角度は0~90度の範囲で変化するようになっています。
以上、紹介しましたが、物体に働く力の理解に役立つものでしょうか。学校や個人学習で役立つものになっていれば嬉しいです。
実際に使ってみたい方は次をクリックすると表示されます。
http://hirakaretagakkou.web.fc2.com/puroguramu/syamennjyounobuttaitotikara.html

最後まで読んでいただきありがとうございました。
とても興味深く、そして面白いです。
20日間のご奮闘、ほんとうにお疲れ様でした。
ありがとうございます。プログラムについてのコメントは初めてだったので嬉しいです。実は私も他の人がどんなのを作っているのか知らないものですから、凄いのか凄くないのかわかりません。先の投稿にも別のものがありますから良かったら試してください。ありがとうございました。