交点計算(円−直線)

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




FX-603P版はこちらです→FX-603P 交点計算(円−直線)     印刷用ページ】

交点計算(円−直線)

 円と直線の交点(P),(Q)の座標(Px,Py),(Qx,Qy)を計算します。
 円のデータ入力は中心座標(Xo,Yo)と半径(R)で、直線データの入力は、2点座標と、1点座標と方向角の2通りの方法があります。

交点計算(円−直線)画面

交点計算(円−直線) 【ファイル名:P7】(672バイト)
   Fixm:S=0
Lbl 0:"<KOUTEN_C-S>"
   {AB}
   A"X0_":B"Y0_"
Lbl 1:{C}
   C"R_"
   C≦0⇒Goto 1△
Lbl 2:{DEHS}
   D"AX_":E"AY_"
   "LINE_INPUT"
   "__ZAHYO___⇒0"
   S"__HOKOKAKU⇒1_"
   S≠0⇒H"HOKOKAKU_"
   T=H:Prog "60.SUB"
   K=W:Goto 3△
   {FG}
   F"BX_":G"BY_"
   T=D:U=E:V=F:W=G
   Prog "ZA.SUB"
   Z=999⇒Goto 2△
   K=Y
   X"KYORI="▲
   T=K:Prog "60.SUB"
   H=V
   H"HOKOKAKU="▲
Lbl 3:I=D-A
   J=E-B
   K=90⇒Goto 4△
   K=270⇒Goto 4△
   T=tan K
   U=T×I−J
   V=U×T
   W=C^2×(T^2+1)−U^2
   W≦0⇒Prog "ER.SUB":Goto 0△
   W=√W
   X=T^2+1
   Y=(V+W)÷X
   M=Y+A
   N=Y×T−U+B
   Y=(V−W)÷X
   P=Y+A
   Q=Y×T−U+B
   Goto 5
Lbl 4:Y=C−Abs I
   Y<0⇒Prog "ER.SUB":Goto 0△
   M=D
   P=D
   Y=√(C^2−I^2)
   N=Y+B
   Q=B−Y
Lbl 5:T=D:U=E:V=M:W=N
   Prog "ZA.SUB"
   M"PX="▲
   N"PY="▲
   X"KYORI(A-P)="▲
   T=Y:Prog "60.SUB"
   V"HOKO(A-P)="▲
   T=D:U=E:V=P:W=Q
   Prog "ZA.SUB"
   P"QX="▲
   Q"QY="▲
   X"KYORI(A-Q)="▲
   T=Y:Prog "60.SUB"
   V"HOKO(A-Q)="▲
   Goto 2

QUICK RUN に書き加える条件文 (14バイト)
  I=7⇒Prog "P7":Goto 0△

エラー表示サブルーチン 【ファイル名:ER.SUB】(38バイト)
   Z=999
   "DATA_ERROR"
   Pause 1

座標変換サブルーチン 【ファイル名:ZA.SUB】(106バイト)
   Fixm:Z=0
   (T-V)≠0⇒Goto 1△
   (U-W)≠0⇒Goto 1△
   Prog "ER.SUB":Goto 2
Lbl 1:X=W-U:Y=V-T
   Deg:Pol(Y,X)
   J≦0⇒J=J+360△
   X=I:Y=J
Lbl 2

角度変換サブルーチン 【ファイル名:60.SUB】(153バイト)
   Fixm:V=T:W=T
   T=0⇒Goto 1△
   X=T÷Abs T
   T=Abs T
   V=Int T:W=V
   Y=(T-V)×60
   I=Int Y
   J=(Y-I)×60
   V=(V+(J÷100+I)÷100)×X
   Y=Frac T×100
   I=Int Y
   J=(Y-I)×100
   W=(W+(I+J÷60)÷60)×X
Lbl 1

ご注意下さい
  • プログラムを入力する前に、fx-4800Pの取扱説明書をよくお読みください。
  • プログラムをご使用になる前に、「内容説明書」「操作手順書」「例題集」を良くお読みになり、操作方法を練習してください。
  • 上記プログラムソースは見やすいようにインデントされていますが、fx-4800Pに入力する際には、インデントを無視してください。
  • ファイル名は変更可能ですが、ソフト起動プログラム(QUICK RUN)を利用する場合には変更しないでください。
  • サブルーチンは他のプログラムと共用しますのでファイル名を変更しないでください。
  • アルファベットの「O」と数字の「0」を区別するため、アルファベットの「 O 」にアンダーラインを入れて表示しています。
  • fx-4800Pのプログラムには通常のテキストでは忠実に表現できないものがあります。本プログラムリストでは下表の通り表現していますのでご注意ください。