Берём у гугла:
1. Формулу длины медианы:
2. Формулу коэффициентов прямой через две точки:
3. Формулу координат середины отрезка
Ну и бешено говнокодим это всё как-то вот так, считая что у нас вместо мозгов обезьянка с тарелками:
from math import sqrt
def edge_length(a,b):
#a, b - кортеж или список
return sqrt((a[0]-b[0])**2 + (a[1]-b[1])**2)
def median_length(a,b,c,point='A'):
a,b,c = edge_length(B,C),edge_length(A,C),edge_length(A,B)
if point == 'A':
m = sqrt(2*b**2+2*c**2-a**2)/2
elif point == 'B':
m = sqrt(2*a**2+2*c**2-b**2)/2
elif point == 'C':
m = sqrt(2*a**2+2*b**2-c**2)/2
else:
print('Такой вершины нет')
m = None
return m
def middle_point(a,b):
return (a[0]+b[0])/2,(a[1]+b[1])/2
def median_eq(a,b,c):
#На первое место ставим точку из которой построена медиана
x1,y1 = a[0],a[1]
x2,y2 = middle_point(b,c)
k = -(y2-y1)/(x1-x2)
b = -(x2*y1-x1*y2)/(x1-x2)
return k,b
A = (3,2)
B = (6,6)
C = (7,4)
print(f'{median_length(A,B,C,"B"):.2f}')
k,b = median_eq(A,B,C)
print(f'f(x) = {k:.1f}x{["","+"][b>0]}{b:.1f}')
Функция median_length() принимает три точки и последним аргументов точку из которой проведена медиана. Возвращает длину.
Функция median_eq принимает три точки, первой должна идти та из которой проведена медиана, потом остальные две. Возвращает коэффициенты k и b.
его медианы, проведенной из вершины и уравнение медианы
А(3;2), В(6;6), С(7;4).