← Назад к геометрии

Расположение точки относительно прямой

Определение, находится точка слева, справа или на прямой

🐍 Python
x1, y1, x2, y2, x3, y3 = map(int, input().split())

q = (x3 - x1) * (y2 - y1) - (y3 - y1) * (x2 - x1)

if q == 0:
    print("BOTH")
elif q < 0:
    print("LEFT")
else:
    print("RIGHT")
⚙️ C++
#include <bits/stdc++.h>
using namespace std;

int main() {
    int x1, y1, x2, y2, x3, y3;
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
    
    int q = (x3 - x1) * (y2 - y1) - (y3 - y1) * (x2 - x1);
    
    if (q == 0) {
        cout << "BOTH" << endl;
    } else if (q < 0) {
        cout << "LEFT" << endl;
    } else {
        cout << "RIGHT" << endl;
    }
    
    return 0;
}

Как определить сторону?

Для точек A(x₁, y₁), B(x₂, y₂) и C(x₃, y₃) вычисляется ориентированная площадь треугольника ABC:

q = (x₃ - x₁)·(y₂ - y₁) - (y₃ - y₁)·(x₂ - x₁)

Интерпретация значения q

Геометрический смысл

q — это удвоенная ориентированная площадь треугольника ABC. Знак определяет поворот вектора AB к AC:

Формат ввода и вывода

Ввод: x₁ y₁ x₂ y₂ x₃ y₃ — координаты точек A, B, C

Вывод: LEFT, RIGHT или BOTH

Пример:

0 0 3 0 1 1

Точка (1,1) находится слева от отрезка (0,0)-(3,0) → вывод: LEFT

Попробовать онлайн

Результат появится здесь...