Длина векторов, сумма, скалярное и векторное произведение, площадь треугольника
x1, y1, x2, y2 = map(int, input().split())
x3, y3, x4, y4 = map(int, input().split())
# координаты первого вектора
xx1, yy1 = x2 - x1, y2 - y1
# координаты второго вектора
xx2, yy2 = x4 - x3, y4 - y3
# длина векторов
print((xx1**2 + yy1**2)**0.5, (xx2**2 + yy2**2)**0.5)
# координаты вектора суммы
print(xx1 + xx2, yy1 + yy2)
# скалярное и векторное произведение
print(xx1 * xx2 + yy1 * yy2, xx1 * yy2 - xx2 * yy1)
# площадь треугольника на векторах
print(abs(xx1 * yy2 - xx2 * yy1) / 2)
#include <bits/stdc++.h>
using namespace std;
int main() {
int x1, y1, x2, y2, x3, y3, x4, y4;
cin >> x1 >> y1 >> x2 >> y2;
cin >> x3 >> y3 >> x4 >> y4;
// координаты первого вектора
int xx1 = x2 - x1, yy1 = y2 - y1;
// координаты второго вектора
int xx2 = x4 - x3, yy2 = y4 - y3;
// длина векторов
cout << sqrt(xx1*xx1 + yy1*yy1) << " " << sqrt(xx2*xx2 + yy2*yy2) << "\n";
// координаты вектора суммы
cout << xx1 + xx2 << " " << yy1 + yy2 << "\n";
// скалярное и векторное произведение
cout << xx1*xx2 + yy1*yy2 << " " << xx1*yy2 - xx2*yy1 << "\n";
// площадь треугольника на векторах
cout << abs(xx1*yy2 - xx2*yy1) / 2.0 << "\n";
return 0;
}
Если даны точки A(x₁, y₁) и B(x₂, y₂), то вектор AB имеет координаты:
При сложении векторов их координаты складываются:
Скалярное произведение равно |a|·|b|·cos(α), где α — угол между векторами.
Векторное произведение равно |a|·|b|·sin(α). Оно показывает ориентацию:
Площадь треугольника, построенного на векторах a и b, равна половине модуля их векторного произведения.
Ввод:
Вывод:
0 0 3 4
0 0 1 2
Первый вектор: (3, 4), длина = 5
Второй вектор: (1, 2), длина ≈ 2.236
Сумма: (4, 6)
Скалярное произведение: 3·1 + 4·2 = 11
Векторное произведение: 3·2 - 1·4 = 2
Площадь треугольника: 2/2 = 1
Вывод:
5.0 2.23606797749979
4 6
11 2
1.0
Введите координаты двух векторов: