Dadas las coordenadas cartesianas de tres puntos en un plano, encuentra la ecuación del círculo a través de todos ellos. Los tres puntos no estarán en línea recta.
Cada línea de entrada a su programa contendrá las coordenadas x
y y
de tres puntos, en el orden A(x),A(y),B(x),B(y),C(x),C(y)
. Estas coordenadas serán números reales menos de 1,000,000 separados entre sí por el espacio.
La solución debe imprimirse como una ecuación del formulario (x-h)^2 + (y-k)^2 = r^2
. Los valores para h
, k
, r
se van a imprimir con tres dígitos después del punto decimal. Los signos más y menos en las ecuaciones deben cambiarse según sea necesario para evitar múltiples signos antes de un 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
Respuestas:
Python,
176189 caracteresHace todo su trabajo en el plano complejo. Voy a las matemáticas desde el final de esta página .
-c
Es el centro del círculo.fuente
C # - 490
Esto encuentra las 2 líneas entre AB y BC. Luego encuentra dónde se intersecan las bisectas de esas 2 líneas. (Lo que acabo de notar es lo que @PeterTaylor mencionó en su comentario a @PeterOfTheCorn).
fuente
Ruby, 192 caracteres.
Ejemplos de uso:
fuente
x
,y
yr
en la llamada a%
debe ayudar, si es posible.Wolfram Alpha (27)
Yo digo, use la herramienta adecuada para el trabajo.
Ejemplo aquí .
fuente
Javascript (299)
La única forma en que podía pensar en resolver esto era resolviendo algebraicamente tres ecuaciones para tres incógnitas para encontrar h, k y r.
Ejemplo 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²
El único error que veo es que si h o k es negativo, se genera en
--
lugar de+
.fuente