Найдем "решение треугольника", то есть определим основания медиан, биссектрис, высот и точек их пересечения.
Пусть координаты вершин заданы числами
\(A, B, C.\) Векотора сторон можно определить как числа
\(a = C - B;\ b = A - C;\ c = B- A \)
1) Нахождение оснований медиан и "центроида" (точки пересечения медиан)
координаты оснований медиан есть
\(mA = (B + C)/2;\ mB = (A + C)/2;\ mC = (A + B)/2 \)
"центроид" будет иметь координаты \(cR = (A + B + C)/3 \) (доказательство несложное, оставлено в качестве упражнения)
2) Нахождение оснований биссектрис и "инцентра" (точки пересечения биссектрис).
Воспользуемся "геометрическим фактом", что биссектриса "разбивает" противоположную сторону в отношении длин прилегающих сторон.
Для нахождения длины стороны можно просто взять модуль (
abs), а разделить отрезок с помощью "взевешенного среднего".
Приведем пример такого разбиения, оставив разбор для самостоятельного изучения:
Пусть основание биссектрисы \(\angle A\) точка \(D.\ Тогда |BD| :|DA| = |AB| : |AC|\)
Следовательно координата точки \(D.\ определяется\ формулой\ D = \frac{B\cdot|AB| + C\cdot |AC| }{|AB| + |AC| }\)- это "взешенное среднее" \((B, C)\ по\ (|AB|, |AC|)\)
Основания координат биссектрис есть:
\(bA = \frac{B\cdot abs(b) + C\cdot abs(c)}{abs(b) + abs(c)}\); \(bB = \frac{A\cdot abs(a) + C\cdot abs(c)}{abs(a) + abs(c)}\); \(bC = \frac{A\cdot abs(a) + B\cdot abs(b)}{abs(a) + abs(b)}\)
Для "инцентра" \(cI \) логично предположить, что координаты можно вычислить по формуле \(cI = \frac{A\cdot abs(a) + B\cdot abs(b) + C\cdot abs(c)}{abs(a) + abs(b) + abs(c)}\)
(это истина, доказательство оставлено в качестве упражнения)
Следующая программа рисует два одинатовых треугольника. В синем рисует медианы, а в зелёном биссектрисы вписанную окрухность (радиус вписанной находится "двойным" подсчетом площади)
PS. Некоторые формулы можно сократить использованием библиотеки cmath, но пока эта библиотека "сознательно" не используется