/*
**********************************************************************
*/
/*
*/
/* Calcula a interseccao
entre 2 retas (no plano "XY" Z =
0)
*/
/*
*/
/* k : ponto inicial da
reta 1
*/
/* l : ponto final da reta 1
*/
/* m : ponto inicial da reta 2
*/
/* n : ponto final da reta 2
*/
/*
*/
/* s: valor do parâmetro no
ponto de interseção (sobre a reta KL)
*/
/* t: valor do
parâmetro no ponto de interseção (sobre a reta MN)
*/
/*
*/
/*
**********************************************************************
*/
int intersec2d(Ponto k, Ponto l,
Ponto m, Ponto n, double &s, double &t)
{
double det;
det = (n.x - m.x) * (l.y -
k.y) - (n.y - m.y) * (l.x - k.x);
if (det == 0.0)
return 0 ; // não
há intersecção
s = ((n.x - m.x) * (m.y -
k.y) - (n.y - m.y) * (m.x - k.x))/ det ;
t = ((l.x - k.x) * (m.y -
k.y) - (l.y - k.y) * (m.x - k.x))/ det ;
return 1; // há
intersecção
}