↓
http://oshiete1.goo.ne.jp/qa28994.html
見つからないのは調べ方の問題でしょうか。
この式は自分にもよくわからないので説明をしっかり読んでください。
参考にしてモジュールを作らせていただきました。
引数は返す値の指定(0ならx、1ならy)と、
直線aのx1,y1,x2,y1
直線bのx1,y1,x2,y1を並べて指定です。
#module
#defcfunc linep int sw,double ax1,double ay1,double ax2,double ay2,double bx1,double by1,double bx2,double by2
x = ( (bx1*by2-bx2*by1)*(ax1-ax2)-(ax1*ay2-ax2*ay1)*(bx1-bx2) ) / ( (ax1-ax2)*(by2-by1)-(bx1-bx2)*(ay2-ay1) )
y = ( (ax1*ay2-ax2*ay1)*(by2-by1)-(bx1*by2-bx2*by1)*(ay2-ay1) ) / ( (ax1-ax2)*(by2-by1)-(bx1-bx2)*(ay2-ay1) )
if sw = 0 : return x : else : return y
#global
color 0,0,255
line 100,100 , 400,430 : line 400,110 , 210,450
x.0 = linep( 0, 100,100 , 400,430 , 400,110 , 210,450 )
y.0 = linep( 1, 100,100 , 400,430 , 400,110 , 210,450 )
color
line 150,10 , 600,430 : line 400,110 , 110,450
x.1 = linep( 0, 150,10 , 600,430 , 400,110 , 110,450 )
y.1 = linep( 1, 150,10 , 600,430 , 400,110 , 110,450 )
repeat 2
cc = cnt
repeat 9
color 255
pset x.cc + cnt\3 - 1 , y.cc + cnt/3 - 1
loop
loop