12 lines
215 B
Go
12 lines
215 B
Go
package geom
|
|
|
|
func SegLineIntersect(A, B, O, D Vec) (bool, float64) {
|
|
r := Sub(B, A)
|
|
den := Cross(r, D)
|
|
if NearlyZero(den) {
|
|
return false, 0
|
|
}
|
|
t := Cross(Sub(O, A), D) / den
|
|
return t > EPS && t < 1-EPS, t
|
|
}
|