como verificar uma intersecção entre duas retas java code example

Example: como verificar uma intersecção entre duas retas java

/* Imagine duas retas no plano cartesiano, onde seus coeficientes respectivos são a1 e b1, e 
a2 e b2. Faça um programa em Java para calcular quais as coordenadas do ponto de interseção 
entre as duas retas (mostre uma mensagem caso não haja intersecção).*/

//uma reta é formada por 2 pontos no plano
// um ponto é formado por cordenadas(x,y)
// formula geral da reta ax+by+c=0
//coeficiente angular > m = 
/*
* Autor: Janerson Douglas
* 
* Prof: Rafael Leal
*/


import java.util.*;

public class Exercicio25{
    public static void main(String[] args ) {
        Scanner input = new Scanner(System.in);
        // coletando dados para formar um reta
       double xa ,ya , xb,yb;  // Reta R composta pelo ponto A e B
       double xc ,yc , xd,yd;  // Reta S composta pelo ponto C e D
       double m,m1,x,y,y1,y2;
       
       // Lendo os Pontos A e B
        System.out.println("Cordenadas do Ponto A");
        System.out.print("Valor de X: ");
        xa = input.nextDouble();
        System.out.print("Valor de Y: ");
        ya = input.nextDouble();
        System.out.println("Cordenadas do Ponto B");
        System.out.print("Valor de X: ");
        xb = input.nextDouble();
        System.out.print("Valor de Y: ");
        yb = input.nextDouble();
                   
         // Lendo os Pontos C e D
        System.out.println("Cordenadas do Ponto C");
        System.out.print("Valor de X: ");
        xc = input.nextDouble();
        System.out.print("Valor de Y: ");
        yc = input.nextDouble();
        System.out.println("Cordenadas do Ponto D");
        System.out.print("Valor de X: ");
        xd = input.nextDouble();
        System.out.print("Valor de Y: ");
        yd = input.nextDouble();
        
        // CALCULANDO O COEFICIENTE ANGULAR DA RETA R QUE PASSA PELOS PONTOS A E B
        // m = (yb-ya)/(xb-xa)
        // calculo da reta que passa por dois pontos y-y1=m(x-x1)
        m = (yb-ya)/(xb-xa); 
        // y1=(m*(x))-(m*(xa))+ya;       
         // CALCULANDO O COEFICIENTE ANGULAR DA RETA R QUE PASSA PELOS PONTOS C E D
        // m1 = (yd-yc)/(xd-xc)
        m1 = (yd-yc)/(xd-xc);
        // y2=(m1*(x))-(m1*(xc))+yc; 
        x = ((m*(xa))+ya + (m*(xa))-ya)/((yd*yb)+yd)*-1;
        y = (m1*(x)-(m1*(xc))+yc);
       if(m==m1 || m<0 || m1<0){
           System.out.println("Não existe ponto de intersecção");
       }else{
           System.out.println("Ponto de intersecção: ("+x+" , "+y+")");
       }
    }
}

Tags:

Java Example