Advertisement
nq1s788

Untitled

Nov 18th, 2024
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.24 KB | None | 0 0
  1. В этой задаче можно воспользоваться векторным произведением -- модуль векторного произведения векторов равен площади ромба, построенного на них. Половина площади ромба -- площадь треугольника.
  2.  
  3. Пример кода на python (используем класс vector для хранения векторов):
  4. from math import *
  5.  
  6.  
  7. class vector:
  8.     def __init__(self, x, y):
  9.         self.x = x
  10.         self.y = y
  11.  
  12.     def __add__(self, other):
  13.         return vector(self.x + other.x, self.y + other.y)
  14.  
  15.     def __sub__(self, other):
  16.         return vector(self.x - other.x, self.y - other.y)
  17.  
  18.     def __mul__(self, other): #скалярное произведение
  19.         return self.x * other.x + self.y * other.y
  20.  
  21.     def __xor__(self, other): #векторное произведение
  22.         return self.x * other.y - self.y * other.x
  23.  
  24.     def len(self):
  25.         return sqrt(self.x * self.x + self.y * self.y)
  26.  
  27.  
  28. x1, y1, x2, y2, x3, y3 = map(int, input().split())
  29. a = vector(x1, y1)
  30. b = vector(x2, y2)
  31. c = vector(x3, y3)
  32. ab = b - a
  33. ac = c - a
  34. print(abs(ab ^ ac) / 2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement