Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Треугольник
- from math import sqrt
- import sys
- x1 = int(input('Введите абциссу первой вершины:'))
- y1 = int(input('Введите ординату первой вершины:'))
- x2 = int(input('Введите абциссу второй вершины:'))
- y2 = int(input('Введите ординату второй вершины:'))
- x3 = int(input('Введите абциссу третей вершины:'))
- y3 = int(input('Введите ординату третей вершины:'))
- AB = sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
- BC = sqrt((x3 - x2) ** 2 + (y3 - y2) ** 2)
- AC = sqrt((x3 - x1) ** 2 + (y3 - y1) ** 2)
- polper = (AB + BC + AC) / 2
- surface = sqrt(polper * (polper - AB) * (polper - BC) * (polper - AC))
- if surface <= 0:
- print()
- print('Введены некоректные данные, треугольника не существует.')
- print('Перезапустите программу и введите коректные данные.')
- sys.exit()
- print()
- print('AB = {:.4f}'.format(AB))
- print('BC = {:.4f}'.format(BC))
- print('AC = {:.4f}'.format(AC))
- max_side = max(AB,BC,AC)
- if AB == max_side:
- bis = sqrt(BC * AC * polper * 2 * (BC + AC - AB))/(BC + AC)
- if BC == max_side:
- bis = sqrt(AB * AC * polper * 2 * (AB + AC - BC))/(AB + AC)
- if AC == max_side:
- bis = sqrt(BC * AB * polper * 2 * (BC + AB - AC))/(BC + AB)
- print()
- print('Биссектриса, проведенная из наибольшего угла = {:.4f}'.format(bis))
- print()
- if AB == BC == AC:
- print('Получившийся треугольник - равносторонний.')
- print()
- x4 = int(input('Введите абциссу точки:'))
- y4 = int(input('Введите ординату точки:'))
- print()
- AM = sqrt((x4 - x1) ** 2 + (y4 - y1) ** 2)
- BM = sqrt((x4 - x2) ** 2 + (y4 - y2) ** 2)
- CM = sqrt((x4 - x3) ** 2 + (y4 - y3) ** 2)
- per1 = (AM + BM + AB) / 2
- per2 = (BM + CM + BC) / 2
- per3 = (AM + CM + AC) / 2
- surf1 = sqrt(per1 * (per1 - AM) * (per1 - BM) * (per1 - AB))
- surf2 = sqrt(per2 * (per2 - BM) * (per2 - CM) * (per2 - BC))
- surf3 = sqrt(per3 * (per3 - AM) * (per3 - CM) * (per3 - AC))
- print(surf1 + surf2 + surf3,surface)
- if surface == surf1 + surf2 + surf3:
- height1 = (2 * surf1) / AB
- height2 = (2 * surf2) / BC
- height3 = (2 * surf3) / AC
- min_h = min(height1,height2,height3)
- print('Точка находится внутри треугольника.')
- print('Расстояние от точки до ближайшей стороны = {:.4f}'.format(min_h))
- else:
- print('Точка лежит вне заданного треугольника.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement