Как найти центр окружности треугольника, используя python без внешних библиотек? - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь найти центр окружности треугольника с питоном и без внешних библиотек для геометрического калькулятора, который я делаю.Дело в том, что я не могу использовать такие уравнения, как y = mx + b, потому что компьютер считает, что я пытаюсь определить переменную, а не алгебру.

Я пробовал много разных вещей, таких как использованиесимпатичный и стройный, и никто из них не работал.Пока я могу найти середину и уклон.Я не совсем уверен, что делать.Пожалуйста помоги.Спасибо!

def circumcenter():
    c1 = float(input('What is x of point 1?'))
    c2 = float(input('What is y of point 1?'))
    c3 = float(input('What is x of point 2?'))
    c4 = float(input('What is y of point 2?'))
    c5 = float(input('What is x of point 3?'))
    c6 = float(input('What is y of point 3?'))
    m1 = c1 + c3
    m2 = c2 + c4
    m3 = m1 / 2
    m4 = m2 / 2
    s1a = c3 - c1
    s1b = c4 - c2
    s1c = s1a / s1b
    s2a = c5 - c3
    s2b = c6 - c4
    s2c = s2a / s2b
    s1 = -1 / s1c
    s2 = -1 / s2c

Нет выходных данных, потому что если я что-то напечатаю, это не будет означать ничего, кроме склона.

1 Ответ

2 голосов
/ 20 мая 2019

Вы просто должны применить формулы из Википедии :

Декартовы координаты окружности:

enter image description here

с

enter image description here

Итак, вашкод:

def circumcenter():
    ax = float(input('What is x of point 1?'))
    ay = float(input('What is y of point 1?'))
    bx = float(input('What is x of point 2?'))
    by = float(input('What is y of point 2?'))
    cx = float(input('What is x of point 3?'))
    cy = float(input('What is y of point 3?'))
    d = 2 * (ax * (by - cy) + bx * (cy - ay) + cx * (ay - by))
    ux = ((ax * ax + ay * ay) * (by - cy) + (bx * bx + by * by) * (cy - ay) + (cx * cx + cy * cy) * (ay - by)) / d
    uy = ((ax * ax + ay * ay) * (cx - bx) + (bx * bx + by * by) * (ax - cx) + (cx * cx + cy * cy) * (bx - ax)) / d
    return (ux, uy)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...