¡Urgente! Pregunta de C ++: ingrese los puntos finales de dos líneas rectas desde la pantalla para determinar si se cruzan. Si se cruzan, se proporciona el punto de intersección. Imprima los resultados en la pantalla.
Todos están incompletos e ignoran la situación de la pendiente infinita
1L es tan poderoso que realmente me avergüenzo de mí mismo
La descripción de LZ en sí es incorrecta: directa line Si no hay puntos finales, lo manejaré como dos puntos en la línea recta
#include
usando namespace std; Obtener la intersección de la línea recta del plano
doble x0 = 3,y0=0,x1 = 3,y1=3, x2 = 3, y2 = 0, x3 = 0, y3 = 3,
x,y; //Registra el punto de intersección
bool Inter(){
bool lim1 = false,lim2 = false //Si el eje X es vertical o not
double k1,b1, k2,b2;//Pendiente e intercepción del eje Y
//Marca de caso especial
if(x1 != x0 ) k1 = (y1-y0)/(x1-x0 ),b1 = y0 - k1*x0;
else lim1 = verdadero
if(x3 != x2) k2; = (y3-y2)/(x3-x2), b2 = y2 - k2*x2;
else lim2 = true
if(!lim1 && !lim2){/ /No perpendicular al eje X
if(k1 == k2)return false
x = (b2-b1)/(k1-k2);
y = k1 * x + b1;
return true;
}else if(lim1 && lim2){//2 líneas rectas, todas verticales en el eje X p>
devuelve falso
}si(lim1 &&!lim2){
x = b2
y = k2 * x + b2; ;
devuelve verdadero;
}si no(!lim1 &&lim2){
x =
y = k1 * x; + b1;
devuelve verdadero
}
devuelve falso
}
int principal(); {
if(Inter()) cout<< "Se cruza con:"< else cout<<"Paralelo; "< devuelve 0; si no cout< }