Предположим, у вас есть прямоугольник, нижняя левая точка 0,0 и верхняя правая точка 100,100.Теперь две линии пересекают прямоугольник.Я должен выяснить координаты точки пересечения.Я сделал это.Теперь проблема в том, что я не могу сказать, находится ли он внутри прямоугольника или нет.Я использовал двойное сравнение.Но я думаю, что это дает мне неправильный ответ.Предположим, что точка пересечения есть (x, y).Я использовал эту проверку для сравнения: if (x> = 0.0 && x <= 100.0 && y> = 0.0 && y <= 100.0).Что мне делать? </p>
//this function generates line
line genline( int x1 , int y1 , int x2 , int y2 ){
line l ;
l.A = y2 - y1 ;
l.B = x1 - x2 ;
l.C = l.A * x1 + l.B * y1 ;
return l ;
}
//this function checks intersection
bool intersect( line m ,line n ) {
int det = m.A * n.B - m.B * n.A ;
if( det == 0 ){
return false ;
}
else {
double x = ( n.B * m.C - m.B * n.C ) / ( det * 1.0 ) ;
double y = ( m.A * n.C - n.A * m.C ) / ( det * 1.0 ) ;
if( x >= 0.0 && x <= L && y >= 0.0 && y <= W ) { return true ; }
else{ return false ; }
}
}
РЕДАКТИРОВАТЬ: Обе линии растягиваются до бесконечности.