Tässäpä vielä lähde näille kaavoille: http://en.wikipedia.org/wiki/Line-line_intersection
EDIT:
Unohdin pistää infoa:
Nämä samat muuttujat pätee myös LsIPy-funktiossa.
LsIPx(viiva1x,viiva1y,viiva1:n pää x, viiva1:n pää y, viiva2x,viiva2y,viiva2:n pää x, viiva2:n pää y)
Code: Select all
Repeat
Color cbwhite
Line 0,0,Mousex(),Mousey()
Line 0,150,400,150
Text 0,0,"Intersection points: X:"+LsIPx(0,0,MouseX(),MouseY(),0,150,400,150)+", Y:"+LsIPy(0,0,MouseX(),MouseY(),0,150,400,150)
Color cbred
Cross(LsIPx(0,0,MouseX(),MouseY(),0,150,400,150),LsIPY(0,0,MouseX(),MouseY(),0,150,400,150))
DrawScreen
Forever
Function Cross(x,y)
Line x-10,y-10,x+10,y+10
Line x+10,y-10,x-10,y+10
EndFunction
Function LsIPx(x1,y1,x2,y2,x3,y3,x4,y4)
lasku1# = (x1*y2-y1-x2)*(x3-x4)-(x1-x2)*(x3*y4-y3*x4)
lasku2# = (x1-x2)*(y3-y4)-(y1-y2)*(x3-x4)
Return lasku1/lasku2
EndFunction
Function LsIPy(x1,y1,x2,y2,x3,y3,x4,y4)
lasku1# = (x1*y2-y1-x2)*(y3-y4)-(y1-y2)*(x3*y4-y3*x4)
lasku2# = (x1-x2)*(y3-y4)-(y1-y2)*(x3-x4)
Return lasku1/lasku2
EndFunction