Bestimmen Sie anhand der kartesischen Koordinaten von drei Punkten in einer Ebene die Gleichung des Kreises durch alle. Die drei Punkte liegen nicht auf einer geraden Linie.
Jede Eingabezeile in Ihr Programm enthält die x
und y
Koordinaten von drei Punkten in der Reihenfolge A(x),A(y),B(x),B(y),C(x),C(y)
. Diese Koordinaten sind reelle Zahlen, die kleiner als 1.000.000 sind und durch Leerzeichen voneinander getrennt sind.
Die Lösung soll als Gleichung des Formulars ausgedruckt werden (x-h)^2 + (y-k)^2 = r^2
. Werte für h
, k
, r
sind mit drei Stellen hinter dem Komma zu drucken. Plus- und Minuszeichen in den Gleichungen sollten nach Bedarf geändert werden, um Mehrfachzeichen vor einer Zahl zu vermeiden.
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
Antworten:
Python,
176189 ZeichenArbeitet alles in der komplexen Ebene. Ich gehe die Mathematik vom Ende dieser Seite .
-c
ist der Mittelpunkt des Kreises.quelle
C # - 490
Dies findet die 2 Linien zwischen AB und BC. Dann wird gefunden, wo sich die Halbierungen dieser beiden Linien schneiden. (Was mir gerade aufgefallen ist, ist das, was @PeterTaylor in seinem Kommentar zu @PeterOfTheCorn erwähnt hat.)
quelle
Ruby, 192 Zeichen
Anwendungsbeispiele:
quelle
x
,y
undr
in dem Aufruf%
soll, wenn möglich , helfen.Wolfram Alpha (27)
Ich sage, benutze das richtige Werkzeug für den Job.
Beispiel hier .
quelle
Javascript (299)
Die einzige Möglichkeit, dies zu lösen, war die algebraische Lösung von drei Gleichungen für drei Unbekannte, um h, k und r zu finden.
Beispiel I / O:
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²
Der einzige Fehler, den ich sehe, ist, dass wenn h oder k negativ ist, es
--
anstelle von ausgibt+
.quelle