Comprobar si dos puntos (x1, y1) y (x2, y2) se encuentran en el mismo lado de una línea dada o no

Dados tres enteros a , b y c que representan coeficientes de la ecuación de una recta a * x + b * y – c = 0 . Dados dos puntos enteros (x1, y1) y (x2, y2) . La tarea es determinar si los puntos (x1, y1) y (x2, y2) se encuentran en el mismo lado de la línea dada o no.
Ejemplos: 
 

Entrada: a = 1, b = 1, c = 1, x1 = 1, y1 = 1, x2 = 1, y2 = 2 
Salida: sí 
Al aplicar (x1, y1) y (x2, y2) en a * x + b * y – c, da 1 y 2 respectivamente, los cuales tienen el mismo signo, por lo tanto, ambos puntos se encuentran en el mismo lado de la línea. 
Entrada: a = 1, b = 1, c = 1, x1 = 1, y1 = 1, x2 = 0, y2 = 0 
Salida: no 
 

Enfoque: aplique ambos puntos en la ecuación de línea dada y verifique si los valores obtenidos pertenecen a la misma paridad o no.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to check if two points
// lie on the same side or not
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if two points
// lie on the same side or not
bool pointsAreOnSameSideOfLine(int a, int b, int c,
                        int x1,    int y1, int x2, int y2)
{
    int fx1; // Variable to store a * x1 + b * y1 - c
    int fx2; // Variable to store a * x2 + b * y2 - c
 
    fx1 = a * x1 + b * y1 - c;
    fx2 = a * x2 + b * y2 - c;
 
    // If fx1 and fx2 have same sign
    if ((fx1 * fx2) > 0)
        return true;
 
    return false;
}
 
// Driver code
int main()
{
    int a = 1, b = 1, c = 1;
    int x1 = 1, y1 = 1;
    int x2 = 2, y2 = 1;
 
    if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))
        cout << "Yes";
    else
        cout << "No";
}

Java

// Java program to check if two points
// lie on the same side or not
import java.util.*;
 
class GFG
{
 
// Function to check if two points
// lie on the same side or not
static boolean pointsAreOnSameSideOfLine(int a, int b,
                                         int c, int x1,
                                         int y1, int x2,
                                         int y2)
{
    int fx1; // Variable to store a * x1 + b * y1 - c
    int fx2; // Variable to store a * x2 + b * y2 - c
 
    fx1 = a * x1 + b * y1 - c;
    fx2 = a * x2 + b * y2 - c;
 
    // If fx1 and fx2 have same sign
    if ((fx1 * fx2) > 0)
        return true;
 
    return false;
}
 
// Driver code
public static void main(String[] args)
{
    int a = 1, b = 1, c = 1;
    int x1 = 1, y1 = 1;
    int x2 = 2, y2 = 1;
 
    if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))
        System.out.println("Yes");
    else
        System.out.println("No");
}
}
 
// This code is contributed by 29AjayKumar

Python3

# Python3 program to check if two points
# lie on the same side or not
 
# Function to check if two points
# lie on the same side or not
def pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2):
    fx1 = 0 # Variable to store a * x1 + b * y1 - c
    fx2 = 0 # Variable to store a * x2 + b * y2 - c
 
    fx1 = a * x1 + b * y1 - c
    fx2 = a * x2 + b * y2 - c
 
    # If fx1 and fx2 have same sign
    if ((fx1 * fx2) > 0):
        return True
 
    return False
 
# Driver code
a, b, c = 1, 1, 1
x1, y1 = 1, 1
x2, y2 = 2, 1
 
if (pointsAreOnSameSideOfLine(a, b, c,
                              x1, y1, x2, y2)):
    print("Yes")
else:
    print("No")
 
# This code is contributed by Mohit Kumar

C#

// C# program to check if two points
// lie on the same side or not
using System;
class GFG
{
 
// Function to check if two points
// lie on the same side or not
static bool pointsAreOnSameSideOfLine(int a, int b,
                                      int c, int x1,
                                      int y1, int x2,
                                      int y2)
{
    int fx1; // Variable to store a * x1 + b * y1 - c
    int fx2; // Variable to store a * x2 + b * y2 - c
 
    fx1 = a * x1 + b * y1 - c;
    fx2 = a * x2 + b * y2 - c;
 
    // If fx1 and fx2 have same sign
    if ((fx1 * fx2) > 0)
        return true;
 
    return false;
}
 
// Driver code
public static void Main()
{
    int a = 1, b = 1, c = 1;
    int x1 = 1, y1 = 1;
    int x2 = 2, y2 = 1;
 
    if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))
        Console.WriteLine("Yes");
    else
        Console.WriteLine("No");
}
}
 
// This code is contributed by Code_Mech

Javascript

<script>
    // Javascript program to check if two points 
    // lie on the same side or not
     
    // Function to check if two points 
    // lie on the same side or not
    function pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2)
    {
        let fx1; // Variable to store a * x1 + b * y1 - c
        let fx2; // Variable to store a * x2 + b * y2 - c
 
        fx1 = a * x1 + b * y1 - c;
        fx2 = a * x2 + b * y2 - c;
 
        // If fx1 and fx2 have same sign
        if ((fx1 * fx2) > 0)
            return true;
 
        return false;
    }
     
    let a = 1, b = 1, c = 1;
    let x1 = 1, y1 = 1;
    let x2 = 2, y2 = 1;
   
    if (pointsAreOnSameSideOfLine(a, b, c, x1, y1, x2, y2))
        document.write("Yes");
    else
        document.write("No");
 
// This code is contributed by divyesh072019.
</script>
Producción: 

Yes

 

Publicación traducida automáticamente

Artículo escrito por DiptayanBiswas y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *