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

Угол между векторами

Вычисление угла между двумя векторами в радианах

🐍 Python
from math import *

x1, y1, x2, y2 = map(int, input().split())

d1 = (x1**2 + y1**2)**0.5
d2 = (x2**2 + y2**2)**0.5

z = acos((x1 * x2 + y1 * y2) / (d1 * d2))
print(z)
⚙️ C++
#include <bits/stdc++.h>
using namespace std;

int main() {
    int x1, y1, x2, y2;
    cin >> x1 >> y1 >> x2 >> y2;
    
    double d1 = sqrt(x1*x1 + y1*y1);
    double d2 = sqrt(x2*x2 + y2*y2);
    
    double dot = x1 * x2 + y1 * y2;
    double angle = acos(dot / (d1 * d2));
    
    cout << angle << endl;
    
    return 0;
}

Формула угла между векторами

Угол между векторами a(x₁, y₁) и b(x₂, y₂) вычисляется через скалярное произведение:

cos α = (a·b) / (|a|·|b|)
α = arccos((x₁·x₂ + y₁·y₂) / (√(x₁² + y₁²)·√(x₂² + y₂²)))

Результат возвращается в радианах:

Перевод в градусы: угол° = α·180/π

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

Ввод: x₁ y₁ x₂ y₂ — координаты двух векторов

Вывод: угол в радианах

Пример:

1 0 0 1

Векторы (1,0) и (0,1) перпендикулярны → угол = π/2 ≈ 1.5708

Вывод: 1.5707963267948966

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

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