📌  相关文章
📜  检查两个点(x1,y1)和(x2,y2)是否在给定线的同一侧

📅  最后修改于: 2021-04-23 19:49:32             🧑  作者: Mango

给定三个整数abc ,它们表示直线方程a * x + b * y – c = 0的系数。给定两个整数点(x1,y1)(x2,y2) 。任务是确定点(x1,y1)(x2,y2)是否位于给定线的同一侧。
例子:

方法:将两个点都应用到给定的线性方程式上,并检查所获得的值是否属于相同的奇偶校验。
下面是上述方法的实现:

C++
// C++ program to check if two points
// lie on the same side or not
#include 
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


输出:
Yes