外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。
pythonで2線の交点に点を打つ
:pythonで2線の交点に点を打つ
@echo off
if not exist %~dpn0.py (
for /f "delims=:" %%n in ('findstr /n "^#!" %0') do (
more +%%n %0 > %~dpn0.py
)
)
copy jwc_temp.txt myfiles > nul
python %~dpn0.py > jwc_temp.txt
goto:eof
REM #jww
REM #1%dln 線を指示してください
REM #2%dln 線を指示してください
REM #bz
REM #e
#!この次の行からプログラムを書いてください
# coding: shift_jis
def line_x_poi(ln1,ln2):
x1, y1, x2, y2 = ln1
dx1 = x2 - x1
dy1 = y2 - y1
m1 = dx1 == 0 and 1e20 or dy1 / dx1
x3, y3, x4, y4 = ln2
dx2 = x4 - x3
dy2 = y4 - y3
m2 = dx2 == 0 and 1e20 or dy2 / dx2
aa = m1 - m2
if abs(aa) < 1e-10:
aa = 0
if aa != 0:
b1 = y1 - m1 * x1
b2 = y3 - m2 * x3
return ( (b2 - b1) / aa, (m1 * b2 - m2 * b1) / aa)
else:
sys.exit()
import sys,re
from math import *
ln = [ (0,0,0,0) ]*5
try :
f = open("myfiles", "r")
for line in f:
F = line.split()
if re.compile("^hhp[12]ln").search(line):
strg = re.sub("ln|-","",line.rstrip())
lnn = int( strg[3:] )
if re.compile("^\s+").search(line):
ln[lnn] = tuple(map(float, F))
f.close()
except :
sys.exit()
print("bz")
print("pt %s %s" % line_x_poi(ln[1],ln[2]))