Hokokaku() の中身 細かく説明
|
| |
|
Hokokaku() 関数の構造。
条件分岐の結果を考える。
|
図14-1
|

単位円の方向角と dX dY による条件の分岐
|
図14-2
条
件
番
号
1
の
場
合
|
Select Case dX
Case Is > 0
Select Case dY
Case Is > 0
Hokokaku = Atn(dY / dX) 条件番号 1
Case Is = 0
Hokokaku = 0 条件番号 2
Case Is < 0
Hokokaku = 2 * pi + Atn(dY / dX) 条件番号 3
End Select
条件番号1 の場合を考える。 dX>0 dY>0
”エクセル” セルの入力 例 =Hokokaku(15、8)
dX=15 ですので dX>0 の条件に一致します。
dY=8 ですので dY>0 の条件に一致します。
dX>0, dY>0 の条件を満たす範囲は黄色の部分です。 (図14-1)
方向角は 0°〜90°ただし 0°と 90°は除く 範囲です。
方向角を求める計算式は tan-1(dY/dX) です。
実際に dY=8 dX=15を代入して計算しますと
tan-1(8/15)=0.489957326rad
角度で表示すると tan-1(8/15)*180/π=28.07248694°です。
この条件では 計算式に修正を加える必要はありません
プログラム上の方向角を求める命令は
Hokokaku= Atn(dY/dX) となります。 (図14-2)
Atn(dY/dX)は atan-1(dY/dX) (アークタンゼント)のVBAでの命令文です。
条件番号1は完成です。
|
条
件
番
号
2
の
場
合 |
条件番号2 の場合を考える。 dX>0 dY=0
エクセル セルの入力 例 =Hokokaku(10、0)
dX=10 ですので dX>0 の条件に一致します。
dY=0 ですので dX=0 の条件に一致します。
dX>0, dY=0 の条件を満たす範囲は黄色と白の間の赤い線上の部分です。(図14-1)
方向角は dXがどのような正の値であっても 「0°」 真北を指します。
実際に dY=0 dX=15を代入して計算しますと
tan-1(0/15)=0.000 rad です。
プログラム上の計算式 atn(0/15) を実行させると 0となります。
この場合、無理に修正を加える必要はありませんが
条件分岐をあつかった説明ですので
念のため Hokokaku=0と命令します。(図14-2)
条件番号2は完成です。
|
条
件
番
号
3
の
場
合
|
条件番号3 の場合を考える。 dX>0 dY<0
エクセル セル入力 例 =Hokokaku(15、-8)
dX=15 ですので dX>0 の条件に一致します。
dY=-8 ですので dX<0 の条件に一致します。
dX>0, dY<0 の条件を満たす範囲は白色の部分です。(図14-1)
方向角は 270°〜360°ただし 270°と360°は除く 範囲です。
実際に dY=-8 dX=15を代入して計算しますと
tan-1(-8/15)=-0.489957326rad
角度で表示すると tan-1(-8/15)*180/π=-28.07248694°です。
-0.489957326rad または-28.07248694°は
dY=8 dX=-15の時も同じ答えになります
tan-1(8/-15)=-0.489957326rad
後に説明しますが 「条件番号7」 ピンク色の範囲です。(図14-1)
この条件では 計算式に修正を加えなければ正しい答えが得られません。
そこで正しい答えにするために
方向角 = 2*π + atan-1(dY/dX)
= 2*3.14159265358979 + atan-1(-8/15)
= 2*3.14159265358979 + (-0.489957326)
= 5.793227981rad
角度に直すと
5.793227981rad×180/π=331.927513° となります。
プログラム上の方向角を求める修正式の命令は
Hokokaku= 2 * pi + Atn(dY / dX) となります。 (図14-2)
2*pi は ラジアンで360°の ことです pi は 定数宣言で pi=π(円周率)
pi= 3.14159265358979 に値を宣言しています。 (9回目参照)
条件番号3 では Atn(dY/dX)の答えは必ず マイナスの値になりますので
Hokokaku= 2*pi+Atn(dY/dX)は 360°から tan-1(dY/dX)を加えた値と言うことです。
条件番号3は完成です。
次回は 条件番号 4、5,6の場合を説明します。
|
|
エクセルのファイル 「座標計算シート」 (有料) を用意しました。
このファイルで ToraX、 ToraY 関数のマクロが完全に表示されます。
● トラバー計算、逆トラバー計算を一つの画面で処理する標準フォーム
● 標準フォームページを即、使うための解説
● VBA による 座標関連関数 のリソース(プログラム)の公開
● Hokokaku(dX, dY)の完全な動作, と記述を含みます。
● リソースの解説のための計算例
● プログラム作成のための補足説明
が含まれています。
この講座は 順次回を重ねていくと 最終的には 「座標計算シート」が出来上がります。
前もって 「座標計算シート」を手元に置かれて 参考にしながら 実際に作動させて
確認していただくと よりいっそう理解しやすいです。
また、本講座と 「座標計算シート」があれば 本格的な、座標計算やVBAの教材としても
十分に活用できるものと考えております。
テキストファイル入手方法は下欄でお確かめ下さい。
|
|
”エクセル” ファイル 「座標計算シート」 申し込み方法
ファイル代金 ¥2,000円 を下記の銀行に振り込んで下さい。
恐れいりますが、 メールにて
★ ファイルの送り先のメールアドレス
★ あなたの名前 (お名前がわからないと振込みの確認ができません)
以上をお知らせください。
確認ができしだい メールにてファイルを送らせていただきます。
もし、1週間経ってもファイルが届かない場合、お叱りのメールを下さい。直ちに対処いたします。
連絡先メール mt7116@mandala.ne.jp
振込み先
阿波銀行山川支店(店番号406)
普通預金
口座番号 1034509
永井 俊 (ナガイ タカシ)
ファイル代金 ¥2,000円
|
|
|
|
back to room 711 top goto e-school top |
|
|