外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
なでしこで2線の交点に点を打つ
/* なでしこで2線の交点に点を打つ
@cls & echo off
path C:\nadesiko_1_589;%path%
copy jwc_temp.txt myfiles > nul
cnako %0 > jwc_temp.txt
goto:eof
REM #jww
REM #1%dln 線を指示してください。
REM #2%dln 線を指示してください。
REM #bz
REM #e
*/
●ABS(x)
(x * SIGN(x))を戻す
●INTERS(線1, 線2)
F1とは配列; dx1とは実数; dy1とは実数; m1とは実数; u1とは実数
F2とは配列; dx2とは実数; dy2とは実数; m2とは実数; u2とは実数
aaとは実数
F1 = 線1を「 」で区切ったもの
dx1 = F1[2] - F1[0]
dy1 = F1[3] - F1[1]
もし(dx1 = 0)なら
m1 = 10 ^ 20
違えば
m1 = dy1 / dx1
F2 = 線2を「 」で区切ったもの
dx2 = F2[2] - F2[0]
dy2 = F2[3] - F2[1]
もし(dx2 = 0)なら
m2 = 10 ^ 20
違えば
m2 = dy2 / dx2
aa = m1 - m2
もし(ABS(aa) < 1e-10)なら(aa = 0)
もし(aa <> 0)なら
u1 = F1[1] - m1 * F1[0]
u2 = F2[1] - m2 * F2[0]
「{(u2 - u1) / aa} {(m1 * u2 - m2 * u1) / aa}」を戻す
違えば
"he処理できません"を表示
終了
「myfiles」を毎行読んで反復
もし(対象を「^hq」で正規表現マッチ)ならば
「bz」と表示
続ける
もし(対象を「^hhp(\d+)ln」で正規表現マッチ)ならば
i = 抽出文字列[0]
続ける
もし(対象を「^\s+(\S+ \S+ \S+ \S+)」で正規表現マッチ)ならば
ln[i] = 抽出文字列[0]
「pt {INTERS(ln[1], ln[2])}」を表示