クロソイド曲線

CASIO FX-603P版 測量計算ソフト プログラムソース




fx-4850P版はこちらです→fx-4850P クロソイド曲線

マニュアル、操作手順書のサンプルはこちらです→クロソイド曲線

クロソイド曲線

 クロソイド曲線上の任意の点(P)の座標(Xp,Yp)及び、諸数値(R,τ,σ,So,H,Ho,Hp,Xm,Ym,Tk,TL)を計算します。
 入力データ及び求まる数値は次の通りで、継続計算の場合には曲線が固定され、求めたい点(P)までの曲線長(L)の入力からの繰り返し計算になります。

●入力データ
 1) 始点(O)の座標(Xo,Yo)
 2) 終点(Z)の座標(Xz,Yz)
 3) クロソイド曲線長(Lz)
 4) クロソイドパラメータ(A)
 5) 求めたい点(P)までの曲線長(L)

●求まる数値1[必ず表示されるもの]
 1) P点における曲率半径(R)
 2) 始点からP点までの直線距離(So)
 3) 始点(O)における接線の方向角(H),
   始点(O)からP点を通る方向角(Ho),
   P点における接線の方向角(Hp)
 4) P点の座標(Xp,Yp)

●求まる数値2[表示は任意]
 接線角(τ),極角(σ),始点(O)を原点とする座標系における曲率中心(M)の座標(XM, YM),単接線長(Tk),長接線長(TL)


クロソイド曲線 【プログラム番号:P15】
   AC 999 MinF 1 Min50
LBL1 MR50 "Type(1[LTA]L R[RTA]2) ?" HLT
   Min50 - 1 = X=0 GOTO2 MR50 - 2 = X=0 GOTO2 GOTO1
LBL2 1 +/- Min51 MR50 - 1 = X=0 GOTO0 1 Min51
LBL0 MR52 "(Typ[AR50]) Xo ?" HLT
   Min52 MR53 "(Typ[AR50]) Yo ?" HLT
   Min53 MR72 "(Typ[AR50]) Xz ?" HLT
   Min72 MR73 "(Typ[AR50]) Yz ?" HLT
   Min73 MR52 Min91 MR53 Min92 MR72 Min93 MR73 Min94 GSBP19
   MR9F X=F GOTO0 MR96 Min79 MR95 Min80
LBL3 0 Min9F MR74 "(Typ[AR50]) Lz ?" HLT
   Min74 +/- X>=0 GSBP18 MR9F X=F GOTO3
LBL4 0 Min9F MR55 "(Typ[AR50]) A ?" HLT
   Min55 +/- X>=0 GSBP18 MR9F X=F GOTO4
   MR55 X^2 / MR74 = Min75 1 Min76 MR74 X^2 / 56 / MR75 X^2
   = M-76 MR74 X^Y 4 / 7040 / MR75 X^Y 4 = M+76 MR74 X^Y 6
   / 1612800 / MR75 X^Y 6 = M-76 MR76 * MR74 X^2 / 6 / MR75
   = Min76 1 Min77 MR74 X^2 / 40 / MR75 X^2 = M-77 MR74 X^Y
   4 / 3456 / MR75 X^Y 4 = M+77 MR74 X^Y 6 / 599040 / MR75
   X^Y 6 = M-77 MR77 * MR74 = Min77 MR76 / MR77 = ATN Min78
   MR79 - MR78 * MR51 = Min54 X>=0 GOTO5 + 360 = Min54
LBL5 0 Min9F MR56 "(A=[AR55]) L ?" HLT Min56 +/- X>=0 GOTO5
   MR55 X^2 / MR56 = Min57 1 Min58 MR56 X^2 / 56 / MR57 X^2 =
   M-58 MR56 X^Y 4 / 7040 / MR57 X^Y 4 = M+58 MR56 X^Y 6 /
   1612800 / MR57 X^Y 6 = M-58 MR58 * MR56 X^2 / 6 / MR57 =
   Min58 1 Min59 MR56 X^2 / 40 / MR57 X^2 = M-59 MR56 X^Y 4
   / 3456 / MR57 X^Y 4 = M+59 MR56 X^Y 6 / 599040 / MR57 X^Y 6
   = M-59 MR59 * MR56 = Min59 MR58 / MR59 = ATN Min61 MR58 X^2
   + MR59 X^2 = SQR Min62 MR56 / 2 / MR57 * 180 / PI = Min60
   MR54 + MR60 * MR51 = Min63 X>=0 0 GOTO9
   + 360 = Min63
LBL9 MR54 + MR61 * MR51 = Min64 X>=0 GOTO7 + 360 = Min64
LBL7 MR52 + MR62 * MR64 COS = Min65 MR53 + MR62 * MR64 SIN
   = Min66
LBL8 MR55 "(Typ[AR50]) A=" HLT
   MR57 "(Typ[AR50]) R=" HLT
   MR62 "(Typ[AR50]) So=" HLT
   MR54 SDMS "(Typ[AR50]) H=" HLT
   MR64 SDMS "(Typ[AR50]) Ho=" HLT
   MR63 SDMS "(Typ[AR50]) Hp=" HLT
   MR65 "(Typ[AR50]) Xp=" HLT
   MR66 "Yp= more[RTA]999" HLT
   Min70 X=F GOTO6 GOTO5
LBL6 MR59 - MR60 SIN * MR57 = Min67 MR60 COS * MR57 + MR58
   = Min71 MR60 SIN 1/X * MR58 = Min68 MR59 - MR60 TAN 1/X
   * MR58 = Min69 MR60 SDMS "(Typ[AR50]) t=" HLT
   MR61 SDMS "(Typ[AR50]) s=" HLT
   MR71 "(Typ[AR50]) Xm=" HLT
   MR67 "(Typ[AR50]) Ym=" HLT
   MR68 "(Typ[AR50]) Tk=" HLT
   MR69 "TL= EXE[RTA]return" HLT
   GOTO8
エラー表示サブルーチン 【プログラム番号:P18】
   999 Min9F 0 " DATA ERROR" PAUSE

座標変換サブルーチン 【プログラム番号:P19】
   0 Min9F MR91 - MR93 = X=0 GOTO1
   GOTO3
LBL1 MR92 - MR94 = X=0 GOTO2
   GOTO3
LBL2 GSBP18
   GOTO5
LBL3 MR93 - MR91 = R>P ( MR94 - MR92 ) = Min95 X<>Y X>=0 GOTO4
   + 360 =
LBL4 Min96
LBL5

ご注意下さい
  • 上記プログラムソースは見やすいようにインデント・改行されていますが、FX-603Pに入力する際には、インデント・改行を無視してください。
  • サブルーチンは他のプログラムと共用しますのでプログラム番号を変更しないでください。
  • 当プラグラムソースはASCIIコードで書かれていますので、実際の表現とは違う部分があります。表現の違いは下表の通りです。