That one of sswifts doesn't work, as someone has pointed out in the comments. There are several other one's in the archives that do work, though.
[edit]
Actually, here's the functions I have for line intersection:
[edit]
Actually, here's the functions I have for line intersection:
; ; Determines whether two lines intersect without calculating the actual point of intersection. ; ; Params: ; x1,y1 - Start coords of first line. ; dx1,dy1 - Delta coords of first line. ; x2,y2 - Start coords of second line. ; dx2,dy2 - Delta coords of second line. ; ; Returns: ; True if the lines intersect, false otherwise. ; Function lines_intersect(x1#, y1#, dx1#, dy1#, x2#, y2#, dx2#, dy2#) u_b# = dy2 * dx1 - dx2 * dy1 If (u_b <> 0) ua_t# = (dx2 * (y1 - y2)) - (dy2 * (x1 - x2)) ub_t# = (dx1 * (y1 - y2)) - (dy1 * (x1 - x2)) ua# = ua_t / u_b ub# = ub_t / u_b If (ua >= 0 And ua =< 1 And ub >= 0 And ub =< 1) Then Return True EndIf Return False End Function Global intersect_x#, intersect_y# ; ; Determines whether two lines intersect, or not. If the lines do intersect, the ; point of intersection is returned in the global variables intersect_x and intersect_y. ; ; Params: ; x1,y1 - Start coords of first line. ; dx1,dy1 - Delta coords of first line. ; x2,y2 - Start coords of second line. ; dx2,dy2 - Delta coords of second line. ; ; Returns: ; True if the lines intersect, false otherwise. ; Function lines_intersect_xy(x1#, y1#, dx1#, dy1#, x2#, y2#, dx2#, dy2#) u_b# = dy2 * dx1 - dx2 * dy1 If (u_b <> 0) ua_t# = (dx2 * (y1 - y2)) - (dy2 * (x1 - x2)) ub_t# = (dx1 * (y1 - y2)) - (dy1 * (x1 - x2)) ua# = ua_t / u_b ub# = ub_t / u_b If (ua >= 0 And ua <= 1 And ub >= 0 And ub <= 1) intersect_x = x1 + (ua * dx1) intersect_y = y1 + (ua * dy1) Return True EndIf EndIf Return False End Function