Dadas as coordenadas cartesianas de três pontos em um plano, encontre a equação do círculo através de todas elas. Os três pontos não estarão em linha reta.
Cada linha de entrada para o seu programa conterá as coordenadas x
e y
de três pontos, na ordem A(x),A(y),B(x),B(y),C(x),C(y)
. Essas coordenadas serão números reais menores que 1.000.000 separados um do outro pelo espaço.
A solução deve ser impressa como uma equação do formulário (x-h)^2 + (y-k)^2 = r^2
. Os valores para h
, k
, r
devem ser impressos com três dígitos após o ponto decimal. Os sinais de mais e menos nas equações devem ser alterados conforme necessário para evitar vários sinais antes de um número.
Sample Inputs
7.0 -5.0 -1.0 1.0 0.0 -6.0
1.0 7.0 8.0 6.0 7.0 -2.0
Sample Outputs
(x - 3.000)^2 + (y + 2.000)^2 = 5.000^2
(x - 3.921)^2 + (y - 2.447)^2 = 5.409^2
Respostas:
Python,
176189 caracteresFaz todo o seu trabalho no plano complexo. Eu vou a matemática no final desta página .
-c
é o centro do círculo.fonte
C # - 490
Ele encontra as 2 linhas entre AB e BC. Em seguida, ele encontra onde os bissetos dessas duas linhas se cruzam. (O que acabei de notar é o que @PeterTaylor mencionou em seu comentário a @PeterOfTheCorn.)
fonte
Ruby, 192 caracteres
Exemplos de uso:
fonte
x
,y
er
na chamada para%
deve ajudar, se possível.Wolfram Alpha (27)
Eu digo, use a ferramenta adequada para o trabalho.
Exemplo aqui .
fonte
Javascript (299)
A única maneira de pensar em resolver isso foi resolver algebricamente três equações para três incógnitas encontrarem h, ke er.
Exemplo de E / S:
7.0 -5.0 -1.0 1.0 0.0 -6.0
->(x-3)²+(y--2)²=5²
1.0 7.0 8.0 6.0 7.0 -2.0
->(x-3.9210526315789473)²+(y-2.4473684210526314)² =5.409159155551175²
O único bug que vejo é que, se h ou k for negativo, ele será exibido em
--
vez de+
.fonte