jw_cad 外部変形 - (919) jscriptで2線の交点に点を打つ -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

jscriptで2線の交点に点を打つ

/* jscriptで2線の交点に点を打つ
@cls & echo off
copy jwc_temp.txt myfiles > nul
cscript //nologo //e:jscript %0 < myfiles > jwc_temp.txt
goto:eof

REM #jww
REM #1%dln 線を指示してください
REM #2%dln 線を指示してください
REM #bz
REM #e
*/

function inters(ln1, ln2){
  dx = ln1[2] - ln1[0]
  dy = ln1[3] - ln1[1]
  if (dx == 0) { m1 = 1e20 } else { m1 = dy / dx }
  dx = ln2[2] - ln2[0]
  dy = ln2[3] - ln2[1]
  if (dx == 0) { m2 = 1e20 } else { m2 = dy / dx }
  aa = m1 - m2
  if (aa != 0) {
    u1 = ln1[1] - m1 * ln1[0]
    u2 = ln2[1] - m2 * ln2[0]
    return [(u2 - u1) / aa, (m1 * u2 - m2 * u1) / aa]
  } else {
    return "he処理できません"
  }
}

ln = []
i = 1
f = WScript.StdIn
while (! f.AtEndOfStream) {
  F = ($_ = f.ReadLine()).split(/\s+/)
  if (/^\s+/i .test($_)) { //ln 指示線
    if (ln[i] = F) for (j = 0; j < ln[i].length; j++) ln[i][j] *= 1.0;
    i++
  }
}
g = WScript.StdOut
g.WriteLine("bz")
g.WriteLine("pt "+inters(ln[1], ln[2]).join(" "))