HAMIchin仮面の土木・測量教室   Room 711  14回 


    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(158

     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