こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

屈折率についてのプログラミング

光の屈折についてのプログラムを作りたいのですが、
条件を与える場合If文などを使うと思うのですが、
それを何個も使う場合どのように
組み合わせればいいのかわかりません。

屈折の法則: SIN(Θ1)*N1=SIN(Θ2)*N2
まずB(X軸方向の距離),L(Y軸方向の距離)を与えてまずΘ1の値を求めます。そして最終的にΘ2を求めるプログラムをつくりたいですが、
この法則には0<Θ1<90という条件があります。

教えていただきたいのが次ぎからなのですが
B、Lのよこにチェックボックスをつけてチェックした場合その値を
定数とします。そしてチェックしなかったほうの値を5ずつ増やしていきます。
そして、値が大きくなっていくにつれて0<Θ1<90を
みたさなくなります。みたさなくなったときにプログラムを終了させるようにしたい
のですがどのようにすればよいのでしょうか?
↓こんな感じに表せるようにしたいのです
(Bをチェックした場合)
B    L    角度
10 20 ・・・
10 25 ・・・
10 30 ・・・

よろしくおねがいします。

投稿日時 - 2006-05-04 18:19:04

QNo.2130876

すぐに回答ほしいです

質問者が選んだベストアンサー

> 0<Θ1<90をみたさなくなったときにプログラムを終了

If theta1 <= 0 Or theta1 >= 90 Then End
――とか。これは、
If Not( (0<theta1) And (theta1<90) ) Then End
――の変形です。

ちなみに、θ = arctan( L / B ) [arctanは逆正接関数]で求めようとしてるなら、
> B L
> 10 20
> 10 25
――のように、BもLも正の値である限り、角度θが0°や90°に達する事は無いので、終了条件としては不適切かも。

投稿日時 - 2006-05-05 23:20:42

お礼

アークタンジェントを使って求めようとしていました。
他の条件に代えて挑戦してみます。
ありがとうございました。

投稿日時 - 2006-05-06 08:09:32

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問