Étant donné les coordonnées cartésiennes de trois points sur un plan, trouvez l'équation du cercle à travers tous. Les trois points ne seront pas en ligne droite.
Chaque ligne d'entrée de votre programme contiendra les coordonnées x
et y
de trois points, dans l'ordre A(x),A(y),B(x),B(y),C(x),C(y)
. Ces coordonnées seront des nombres réels inférieurs à 1 000 000 séparés les uns des autres par l'espace.
La solution doit être imprimée comme une équation du formulaire (x-h)^2 + (y-k)^2 = r^2
. Les valeurs de h
, k
, r
doivent être imprimés avec trois chiffres après la virgule. Les signes plus et moins dans les équations doivent être modifiés au besoin pour éviter plusieurs signes avant un nombre.
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
Réponses:
Python,
176189 caractèresFait tout son travail dans le plan complexe. Je fais le calcul en bas de cette page .
-c
est le centre du cercle.la source
C # - 490
Ceci trouve les 2 lignes entre AB et BC. Ensuite, il trouve où les bissectes de ces 2 lignes se croisent. (Ce que je viens de remarquer est ce que @PeterTaylor a mentionné dans son commentaire à @PeterOfTheCorn.)
la source
Ruby, 192 caractères
Exemples d'utilisation:
la source
x
,y
etr
dans l'appel à%
devrait aider, si possible.Wolfram Alpha (27)
Je dis, utilisez l'outil approprié pour le travail.
Exemple ici .
la source
Javascript (299)
La seule façon dont je pouvais penser à résoudre ce problème était de résoudre algébriquement trois équations pour trois inconnues pour trouver h, k et r.
Exemple d'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²
Le seul bug que je vois est que si h ou k est négatif, il sort à la
--
place de+
.la source