#P1329. Circle Through Three Points

    ID: 330 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>计算几何坐标变换Southern California 1989UVA 190

Circle Through Three Points

题目描述

你的团队需要编写一个程序,给定平面上三个点的笛卡尔坐标,求出经过这三个点的圆的方程。这三个点不会在同一条直线上。

解决方案需按照以下两种形式打印圆的方程:

  1. 形如 (xh)2+(yk)2=r2(x - h)^2 + (y - k)^2 = r^2 的方程 (公式1)
  2. 形如 x2+y2+cx+dye=0x^2 + y^2 + cx + dy - e = 0 的方程 (公式2)

输入

输入到你程序的每一行将包含三个点的x x 坐标和y y 坐标,顺序为 Ax,Ay,Bx,By,Cx,CyAx, Ay, Bx, By, Cx, Cy。这些坐标是实数,彼此之间由一个或多个空格分隔。

输出

你的程序必须按照下面示例中给出的格式在两行上打印所需的方程。在上述公式1和公式2中,你计算出的 hhkkrrccddee 的值需打印出小数点后三位。方程中的加号和减号应根据需要进行调整,以避免在一个数字前出现多个符号。加号、减号和等号必须与相邻字符之间各有一个空格。方程中不能出现其他空格。在每对方程后打印一个空行。

输入示例

7.0 -5.0 -1.0 1.0 0.0 -6.0
1.0 7.0 8.0 6.0 7.0 -2.0

输出示例

(x - 3.000)^2 + (y + 2.000)^2 = 5.000^2
x^2 + y^2 - 6.000x + 4.000y - 12.000 = 0

(x - 3.921)^2 + (y - 2.447)^2 = 5.409^2
x^2 + y^2 - 7.842x - 4.895y - 7.895 = 0

来源

1989年南加州竞赛,UVA 190题