根据空间4点坐标求球心坐标
- 格式:doc
- 大小:61.06 KB
- 文档页数:6
球坐标系概述球坐标系是一种三维坐标系,使用球半径、极角和方位角来描述点在球面上的位置。
相比于直角坐标系,球坐标系更适用于描述球体上的位置和方向,尤其在天文学、地理学和航空航天等领域中得到广泛应用。
本文将介绍球坐标系的定义、转换公式和应用。
定义球坐标系由球心、极轴、极面和方位角组成。
球心是球坐标系的原点,极轴是从球心到球面上的点的连线,极面是与极轴垂直的平面。
球坐标系需要两个角度和一个距离来确定点的位置。
极角(θ)是从极轴与参考平面的交点到点的连线与参考平面的夹角,范围为0到π。
方位角(φ)是从参考方向到点的连线与参考平面的交线所成的角度,范围为0到2π。
球半径(r)则是从球心到点的距离。
转换公式将直角坐标系(x,y,z)转换为球坐标系(r,θ,φ)的公式如下:r = √(x^2 + y^2 + z^2)θ = arccos(z / √(x^2 + y^2 + z^2))φ = arctan(y / x)将球坐标系(r,θ,φ)转换为直角坐标系(x,y,z)的公式如下:x = r * sin(θ) * cos(φ)y = r * sin(θ) * sin(φ)z = r * cos(θ)应用球坐标系在许多领域中具有广泛应用。
天文学中,球坐标系用于描述星体的位置和方向。
通过观测星体的极角和方位角,天文学家可以确定恒星的位置和行星的轨道。
地理学中,球坐标系用于描述地球上的位置和方向。
通过使用经度和纬度来确定地理位置,人们可以准确地定位地点并导航。
航空航天领域中,球坐标系用于导航和控制飞行器。
通过使用航向角和仰角,导航员可以确定飞机的朝向和高度,从而精确地控制飞行器。
此外,球坐标系还在计算机图形学和物理学中得到广泛应用。
在计算机图形学中,球坐标系可用于描述三维物体的位置和旋转。
在物理学中,球坐标系可用于描述电场、磁场和其他物理现象的特征。
结论球坐标系是一种三维坐标系,适用于描述球体上的位置和方向。
通过使用球半径、极角和方位角,可以准确地确定点的位置。
四面体外接球的球心、半径求法在立体几何中,几何体外接球是一个常考的知识点,对于学生来说这是一个难点,一方面图形不会画,另一方面在画出图形的情况下无从下手,不知道球心在什么位置,半径是多少而无法解题。
本文章在给出图形的情况下解决球心位置、半径大小的问题。
第一节 原理部分一、出现“墙角”结构利用补形知识,联系长方体。
【原理】:长方体中从一个顶点出发的三条棱长分别为c b a ,,,则体对角线长为222c b a l ++=,几何体的外接球直径R 2为体对角线长l 即2222c b a R ++=【例题】:在四面体ABCD 中,共顶点的三条棱两两垂直,其长度分别为3,61,,若该四面体的四个顶点在一个球面上,求这个球的表面积。
解:因为:长方体外接球的直径为长方体的体对角线长 所以:四面体外接球的直径为AE 的长 即:22224AD AC AB R ++=1663142222=++=R 所以2=R 球的表面积为ππ1642==R S二、出现两个垂直关系,利用直角三角形结论。
【原理】:直角三角形斜边中线等于斜边一半。
球心为直角三角形斜边中点。
【例题】:已知三棱锥的四个顶点都在球O 的球面上,BC AB ⊥且7=PA ,5=PB ,51=PC ,10=AC ,求球O 的体积。
解:BC AB ⊥且7=PA ,5=PB ,51=PC ,10=AC , 因为22210517=+ 所以知222PC PA AC += 所以 PC PA ⊥ 所以可得图形为: 在ABC Rt ∆中斜边为AC 在PAC Rt ∆中斜边为AC 取斜边的中点O ,在ABC Rt ∆中OC OB OA == 在PAC Rt ∆中OC OB OP ==所以在几何体中OA OC OB OP ===,即O 为该四面体的外接球的球心521==AC R 所以该外接球的体积为3500343ππ==R V【总结】斜边一般为四面体中除了直角顶点以外的两个点连线。
球的坐标方程公式
球的坐标方程公式为x^2 + y^2 + z^2 = r^2,这个简单的方程描述了一个球体的几何特征。
在三维空间中,球是一种非常基本的几何体,它具有许多有趣的特性和应用。
让我们来看看球体的基本性质。
球体是所有点到球心的距离都等于半径r的点的集合。
这意味着球体是一个完美的对称体,无论从哪个方向观察,它始终保持相同的形状。
这种对称性使球体在许多领域都有广泛的应用,比如天体物理中描述星球运动的模型、工程学中描述球形零件的设计等。
球体的表面也是非常有趣的,它是一个闭合的曲面,没有边界或顶点。
这使得球体成为研究曲面积分、曲面积分等数学问题的重要对象。
球体的表面积可以通过球体的半径来计算,这在实际问题中有很多应用,比如计算地球的表面积、计算球形容器的表面积等。
除了数学上的性质,球体在现实世界中也有许多应用。
例如,地球可以近似看作一个球体,这在导航、天文学等领域都有重要的意义。
此外,球体的形状也被广泛运用在体育比赛中,比如足球、篮球等运动都是围绕着球体展开的。
总的来说,球体作为一个简单而基本的几何体,具有许多有趣的性质和应用。
通过球的坐标方程公式,我们可以更好地理解球体的几何特征,并将其运用到实际问题中去。
希望通过这篇文章,读者能
对球体有更深入的了解,并认识到它在数学、物理、工程等领域的重要性和广泛应用。
空间几何的球体与球面解析在空间几何学中,球体与球面是重要的研究对象。
球体是由三维空间中所有离一个固定点相距不超过一个给定常数的点组成的集合。
而球面则是球体的边界,由球面上的所有点组成。
一、球体的基本性质球体具有以下几个基本性质:1. 半径:球体的半径是从球心到球面上的任意一点的距离。
在三维坐标系中,可以用(r, θ, φ)表示球体的位置,其中r为半径,θ为极角,φ为方位角。
2. 直径:球体的直径是通过球心的任意两点之间的距离,等于半径的两倍。
3. 表面积:球体的表面积可以通过公式4πr²计算,其中π为圆周率。
4. 体积:球体的体积可以通过公式(4/3)πr³计算。
二、球面的基本性质球面的基本性质与球体密切相关,以下是一些重要的性质:1. 曲率:球面上的每一点都有相同的曲率。
在球面上的所有切平面都是一样的,并且与球心保持垂直。
2. 面积:球面的面积可以通过公式4πr²计算,其中r为球面的半径。
三、球体与球面的解析几何解析几何是研究几何对象在坐标系中的位置与性质的数学分支。
球体与球面也可以通过解析几何的方法进行描述与分析。
1. 球体的方程:在三维坐标系中,球体的方程可以表示为(x-a)² +(y-b)² + (z-c)² = r²,其中(a, b, c)为球心的坐标,r为半径。
2. 球面的方程:球面的方程可以表示为(x-a)² + (y-b)² + (z-c)² = r²,其中(a, b, c)为球心的坐标,r为球面的半径。
3. 切线与法线:对球面上的任意一点,可以通过求导数的方法计算其切线方程。
切线方程与球面上的切点有关,而球面的法线方程与球心有关。
4. 点与球体/球面的位置关系:可以通过将点的坐标代入球体/球面方程,判断点是否在球体/球面上、在球内部还是在球外部。
四、应用场景球体与球面在各个领域具有广泛的应用,以下是一些典型的应用场景:1. 几何建模:球体与球面常常被用来描述物体的形状,如建筑设计、汽车造型等。
程序设计艺术与方法课程2012“达内杯”安徽省程序设计竞赛Problem J 银河系5A风景区解题报告题目原文:Description巴尔坦星是个银河系中一个著名的观光景点,它之所有著名,是因为巴尔坦星有四颗卫星,而且四颗卫星距离巴尔坦星的距离都是一样的!某天,巴尔坦星上的居民们想知道自己星球所处的具体三维宇宙坐标,因为科技落后,巴尔坦星上的居民只有某个时刻测得的四颗卫星的坐标。
现在请你写个程序帮可怜的巴尔坦星居民给自己的星球定下位吧。
Input第一行是一个整数t,表示有t组测试数据。
(t <= 30)每组数据占四行,表示四颗卫星的坐标。
每行三个实数x, y, z表示该点的坐标为(x,y,z)。
输入数据保证每组的数据都可以确定巴尔坦星,设巴尔坦星的坐标为(ox, oy, oz),每颗卫星到巴尔坦星的距离都是r。
则以下不等式总是成立:-500 <= ox, oy, oz<= 500,500 <= r <= 1000。
Output对于每组数据输出一行;"Case #k: x y z" 。
k表示第k组数据,x, y, z 表示巴尔坦星的坐标(均保留到小数点后一位)。
Sample Input11.1 0 00.1 1.0 00.1 -1.0 00.1 0 1.0Sample OutputCase #1: 0.1 0.0 0.0解题思路:本题本质上是一道空间解析几何题,其核心是利用三维空间中不共面的四个点的坐标来求球心坐标。
我利用四个点到球心距离相等的性质,列出四个三元二次方程,再两两消去,得到三个三元一次方程,该方程组是一个线性非齐次方程组,利用系数行列式表示,并且运用克拉默法则,可以解出该方程组,方程组的解就是球心的坐标。
算法:题中所要求坐标的星球有四颗卫星,可以对应空间中的四个点,因为知道四个卫星的坐标,所以已知这四个点的坐标,可设为A(x1,y1,z1)、B(x2,y2,z2)、C(x3,y3,z3)、D(x4,y4,z4),设半径为r ,球心O 坐标为(x,y,z)。
2012“达内杯”安徽省程序设计竞赛Problem J 银河系5A风景区解题报告题目原文:Description巴尔坦星是个银河系中一个著名的观光景点,它之所有著名,是因为巴尔坦星有四颗卫星,而且四颗卫星距离巴尔坦星的距离都是一样的!某天,巴尔坦星上的居民们想知道自己星球所处的具体三维宇宙坐标,因为科技落后,巴尔坦星上的居民只有某个时刻测得的四颗卫星的坐标。
现在请你写个程序帮可怜的巴尔坦星居民给自己的星球定下位吧。
Input第一行是一个整数 t ,表示有t 组测试数据。
(t <= 30)每组数据占四行,表示四颗卫星的坐标。
每行三个实数 x, y, z 表示该点的坐标为 (x,y,z)。
输入数据保证每组的数据都可以确定巴尔坦星,设巴尔坦星的坐标为(ox, oy, oz),每颗卫星到巴尔坦星的距离都是r。
则以下不等式总是成立:-500 <= ox, oy, oz <= 500, 500 <= r <= 1000。
Output对于每组数据输出一行;"Case #k: x y z" 。
k表示第k组数据,x, y, z 表示巴尔坦星的坐标(均保留到小数点后一位)。
Sample Input10 0Sample OutputCase #1:解题思路:本题本质上是一道空间解析几何题,其核心是利用三维空间中不共面的四个点的坐标来求球心坐标。
我利用四个点到球心距离相等的性质,列出四个三元二次方程,再两两消去,得到三个三元一次方程,该方程组是一个线性非齐次方程组,利用系数行列式表示,并且运用克拉默法则,可以解出该方程组,方程组的解就是球心的坐标。
算法:题中所要求坐标的星球有四颗卫星,可以对应空间中的四个点,因为知道四个卫星的坐标,所以已知这四个点的坐标,可设为A(x1,y1,z1)、B(x2,y2,z2)、C(x3,y3,z3)、D(x4,y4,z4),设半径为r,球心O坐标为(x,y,z)。
已知空间N点坐标求圆心坐标,半径注意哦这里是求圆心不是球心哦条件:已知空间N点坐标,格式如下求圆心坐标,半径-33.386698 -12.312448 -2301.396442-33.668120 -12.571431 -2300.390996-33.838611 -12.774933 -2299.691688-34.079235 -13.616660 -2298.326277-34.254998 -13.441280 -2298.192657-34.356542 -13.755525 -2297.796473 ........................................................实现方法:用最小二乘法拟合出球面方程和平面方程,两者相交即为所求圆曲线球面方程:(x - a)^2 + (y - b)^2 + (z - c)^2 = R^2展开:x^2 + y^2 + z ^2 + a^2 +b^2 +c^2 - 2ax - 2by -2cz = R ^2令A = 2a ; B =2b ; C =2c D=a^2 +b^2 +c^2 -R^2得x^2 + y^2 + z ^2 - Ax -By - Cz + D =0即:Ax +By +Cz -D = x^2 +y^2 +z^2用矩阵表示这N组数据如下形式现在就是求A B C D 的问题了具体步骤如下平面方程 A' x + B' y + C' z + D' = 0可化为 A x + B y + C z -1 =0用矩阵表示如下同样可以求出A B C这样就有了球面方程球心坐标球半径和平面方程了如图所示(网络找的图,意思着看囧)圆心为球心到平面的垂足(也就是平面外一点到平面的坐标问题)半径为sqrt(球半径^2 - 球心到平面的距离^2)设平面方程为 A X + B Y + C Z +D = 0 ①球心坐标(a,b,c)平面外一点到平面的坐标问题:则平面的法向量为(A ,B ,C )设垂足即圆心(x' y' z') 球心到圆心的连线与法向量是平行的可以得到如下(x' -a )/A = (y' -b)/B = (z' - c)/C = t ②由②得x' = At + a; y' = B t + b ; z' = C t + c;带入①可以得到(x' , y' , z')平面外一点到平面的距离问题d = abs(Ax' + By' + C z' +D) / sqrt(A^2 + B^2 +C^2)到此为止已经有了足够的理论知识,下面是代码分别用OPENCV 和C 实现1// 最小二乘法拟合球.cpp : 定义控制台应用程序的入口点。
球面的球面坐标方程球面被认为是在三维空间中的一种重要的几何体。
我们可以通过球面坐标系来描述球面上的点的位置。
球面坐标系是一种在球面上描述点的坐标系,类似于在平面上使用直角坐标系描述点的位置一样。
在球面坐标系中,一个点的位置由两个角度和一个距离确定。
这两个角度定义了点在球面上的方位,而距离则表示该点到球心的距离。
这种坐标系非常适合描述球面上的点的位置,特别适用于球体几何中的问题。
球面坐标系的定义球面坐标系由两个角度和一个半径组成,其中:•r表示球面上点到球心的距离;•$\\theta$ 表示从z轴正方向沿着经度方向到达目标点的角度;•$\\varphi$ 表示从x轴正方向沿着纬度方向到达目标点的角度。
通过以上定义,我们可以得到球面坐标系下点的坐标表示为 $(r, \\theta,\\varphi)$。
在球面坐标系中,$\\theta$ 的取值范围是 $0 \\leq \\theta < 2\\pi$,而$\\varphi$ 的取值范围则是 $0 \\leq \\varphi \\leq \\pi$。
球面坐标方程的推导为了描述球面上的点的位置,我们需要根据球面坐标系统的定义,建立球面坐标方程。
以球体的球心为原点建立球面坐标系。
设球面上某点的坐标为(x,y,z),我们可以通过球面坐标系中的距离r、经度角$\\theta$ 和纬度角 $\\varphi$ 来表达其坐标。
由三角关系,我们可以得到:$$ \\begin{cases} x = r \\cdot \\sin{\\varphi} \\cdot \\cos{\\theta} \\\\ y = r \\cdot \\sin{\\varphi} \\cdot \\sin{\\theta} \\\\ z = r \\cdot \\cos{\\varphi}\\end{cases} $$这便是球面坐标系下点 $(r, \\theta, \\varphi)$ 在直角坐标系中的坐标表示。
球坐标系是一种常用的欧几里得坐标系,用来描述球面上点的位置。
在球坐标系中,点的坐标由球心到点的距离r、经度θ和纬度φ三个参数表示。
在球坐标系中,可以使用以下公式来计算两点之间的距离和球心角:
距离公式:d = arccos(sinφ1sinφ2 + cosφ1cosφ2*cos(θ1-θ2))
球心角公式:θ = arctan((sin(θ2-θ1)cosφ2)/(cosφ1sinφ2-sinφ1cosφ2cos(θ2-θ1)))
其中,d为两点之间的距离,θ为球心角。
球坐标距离公式和球心角公式常用来计算地理坐标系中的两点之间的距离和方位角,例如地图上两个城市之间的距离和方位角等。
这些公式也可以用来计算天体物理学中天体间的距离和方位角。
球坐标距离公式和球心角公式的应用不仅局限于地理和天文学,还可以用于其他领域,例如机器人导航、空间探测和卫星定位等。
通过这些公式,我们可以准确计算出两个点之间的距离和方位角,从而实现机器人的自主导航、空间探测器的轨道计算和卫星的定位等功能。
一般方程球心坐标公式球面是三维空间中的一种几何体,它可以由球心和半径两个参数来完整描述。
在球面上的任意一点,都可以由球心和该点到球心的距离(即半径)确定。
在数学上,我们通常使用球心坐标来描述球面上的点,这个坐标系的中心就是球心,而每个点则由两个角度和一个距离来定义。
下面是一般方程球心坐标公式:一般方程球心坐标公式(通常简称为一般方程)是描述球面上的点的坐标系中经常使用的公式。
这个公式在三维空间中可以用来表示任意一点的坐标,因此在数学、物理学、工程学和计算机图形学等领域中都有着广泛的应用。
一般方程球心坐标公式的公式如下:$$(x - x_0)^2 + (y - y_0)^2 + (z - z_0)^2 = R^2$$其中 $x_0,y_0,z_0$ 是球心的三维坐标,$R$ 是球的半径。
这个公式的推导是基于勾股定理的。
如下图所示,我们假设一个球面上的任意一点 $P$,它的坐标是 $(x,y,z)$,球心的坐标是$(x_0,y_0,z_0)$,半径为 $R$。
从球心到点 $P$ 的线段可以表示为向量$\overrightarrow{OP}$,那么根据勾股定理,我们可以得到:$$\begin{aligned} (\overrightarrow{OP})^2 &= (x - x_0)^2 + (y - y_0)^2 +(z - z_0)^2 \\ &= R^2 \end{aligned} $$因此,一般方程就是把勾股定理应用到球面上得到的。
一般方程球心坐标公式的性质:1. 球面上的任意一点 $P$ 都满足一般方程,同时任意满足一般方程的点 $P$ 都在球面上。
2. 如果一个平面和球面都满足一般方程,那么这个平面和球面的交线就是圆。
3. 如果一个直线和球面都满足一般方程,那么这个直线和球面的交点就是一个点。
4. 一般方程球心坐标的坐标系具有球面的对称性。
总结一般方程球心坐标公式是描述三维空间中球面上的任意一点的坐标系,它的公式是基于勾股定理推导而来。
程序设计艺术与方法课程2012“达内杯”安徽省程序设计竞赛Problem J 银河系5A风景区解题报告题目原文:Description巴尔坦星是个银河系中一个著名的观光景点,它之所有著名,是因为巴尔坦星有四颗卫星,而且四颗卫星距离巴尔坦星的距离都是一样的!某天,巴尔坦星上的居民们想知道自己星球所处的具体三维宇宙坐标,因为科技落后,巴尔坦星上的居民只有某个时刻测得的四颗卫星的坐标。
现在请你写个程序帮可怜的巴尔坦星居民给自己的星球定下位吧。
Input第一行是一个整数t,表示有t组测试数据。
(t <= 30)每组数据占四行,表示四颗卫星的坐标。
每行三个实数x, y, z表示该点的坐标为(x,y,z)。
输入数据保证每组的数据都可以确定巴尔坦星,设巴尔坦星的坐标为(ox, oy, oz),每颗卫星到巴尔坦星的距离都是r。
则以下不等式总是成立:-500 <= ox, oy, oz <= 500,500 <= r <= 1000。
Output对于每组数据输出一行;"Case #k: x y z" 。
k表示第k组数据,x, y, z 表示巴尔坦星的坐标(均保留到小数点后一位)。
Sample Input11.1 0 00.1 1.0 00.1 -1.0 00.1 0 1.0Sample OutputCase #1: 0.1 0.0 0.0解题思路:本题本质上是一道空间解析几何题,其核心是利用三维空间中不共面的四个点的坐标来求球心坐标。
我利用四个点到球心距离相等的性质,列出四个三元二次方程,再两两消去,得到三个三元一次方程,该方程组是一个线性非齐次方程组,利用系数行列式表示,并且运用克拉默法则,可以解出该方程组,方程组的解就是球心的坐标。
算法:题中所要求坐标的星球有四颗卫星,可以对应空间中的四个点,因为知道四个卫星的坐标,所以已知这四个点的坐标,可设为A(x1,y1,z1)、B(x2,y2,z2)、C(x3,y3,z3)、D(x4,y4,z4),设半径为r ,球心O 坐标为(x,y,z)。
利用四点到球心距离相等的性质得到如下四个方程。
(x −x1)2+(y −y1)2 +(z −z1)2 =r 2; (x −x2)2+(y −y2)2 +(z −z2)2 =r 2; (x −x3)2+(y −y3)2 +(z −z3)2 =r 2; (x −x3)2+(y −y3)2 +(z −z3)2 =r 2;展开得:x 2+y 2+z 2−2(x1x+y1y+z1z) + x12 + y12 + z12=r 2; ○1 x 2+y 2+z 2−2(x2x+y2y+z2z) + x22 + y22 + z22=r 2; ○2 x 2+y 2+z 2−2(x3x+y3y+z3z) + x32 + y32 + z32=r 2; ○3 x 2+y 2+z 2−2(x4x+y4y+z4z) + x42 + y42 + z42=r 2; ○4分别作○1−○2、○3−○4、○2−○3得:(x1-x2)x+(y1-y2)y+(z1-z2)z=12(x12−x22 + y12−x22 + z12−z22);(x3-x4)x+(y3-y4)y+(z3-z4)z=12(x32−x42 + y32−x42 + z32−z42);(x2-x3)x+(y2-y3)y+(z2-z3)z=12(x22−x32 + y22−x32 + z22−z32);其对应的系数行列式可设为:D=a b c a1b1c1a2b2c2则a=(x1-x2), b=(y1-y2), c=(z1-z2)a1=(x3-x4), b1=(y3-y4), c1=(z3-z4);a2=(x2-x3), b2=(y2-y3), c2=(z2-z3);常数项行列式为:PQR则P=12(x12−x22+ y12−x22+ z12−z22);Q=12(x32−x42+ y32−x42+ z32−z42);R=12(x22−x32+ y22−x32+ z22−z32);现设Dx=P b cQ b1c1R b2c2Dy=a P ca1Q c1a2R c2DZ=a b Pa1b1Qa2b2R由线性代数中的克拉默法则可知:x=Dx / D;y=Dy / D;z=Dz / D;由此即可解出三元一次方程组的解,所得解也就是空间四个点所在球的球心坐标。
还原至题中亦即巴尔坦星的坐标。
收获和分析:我的收获:在解决问题的过程中,我了解到了方法和知识的重要性,在解决问题的过程中采取合适的方法将事半功倍,而这需要我们平时不断地积累,善于使用专业课所学的知识;还有就是团队协作的能力得到了锻炼,本题的解答,是我和室友共同努力的结晶,是我们团队协作的成果。
关于题目的分析:解题过程中,我曾一度陷入僵局,早先就列出了三元一次方程组,却是利用高中时所学的代入法,解出了x, y ,z的公式,但解出的公式却有一个致命伤,对输入的很多组测试数据,偶尔有使公式的分母出现0的情况,此时公式便失去了作用,即程序有bug,这个问题是公式法算法中迟迟无法解决的。
而就本题而言,采用行列式的解法和克拉默法则后,只有当空间中的四点共面时才会出现无解的情况,而这时才会使系数行列式D值为0;通过数学我们知道,共面的四个点无法确定一个球,所以本题合理的输入不应包括共面的四个点的坐标。
有了求解球心的函数之后(以上算法编成一个函数),开始考虑规范化输入输出,这应当不难解决源代码:。
#include<iostream>#include<cmath> //fabs()、sqrt()函数#include<iomanip> //用于控制输出精度#define maxnum 30using namespace std;void solve();//double distances(double x1,double y1,double z1,double h1,double h2,double h3);int main(){solve();system("PAUSE");return 0;}void solve(){double answer[maxnum][4];int i,t, s=0 ;cin >> t;double x1,y1,z1, x2,y2,z2, x3,y3,z3, x4,y4,z4;double a,b,c, A,B,C, a1,b1,c1, A1,B1,C1, a2,b2,c2, A2,B2,C2;double P,Q,R;double x, y, z;for(i=0;i<t;i++){//输入四个点的坐标cin>>x1>>y1>>z1>>x2>>y2>>z2>>x3>>y3>>z3>>x4>>y4>>z4;cout<<endl;a=(x1-x2); b=(y1-y2); c=(z1-z2); A=(x1*x1-x2*x2); B=(y1*y1-y2*y2); C=(z1*z1-z2*z2);a1=(x3-x4); b1=(y3-y4); c1=(z3-z4); A1=(x3*x3-x4*x4); B1=(y3*y3-y4*y4); C1=(z3*z3-z4*z4);a2=(x2-x3); b2=(y2-y3); c2=(z2-z3); A2=(x2*x2-x3*x3); B2=(y2*y2-y3*y3); C2=(z2*z2-z3*z3);P=(A+B+C)/2; Q=(A1+B1+C1)/2; R=(A2+B2+C2)/2;//D是系数行列式,运用克拉默法则double D=a*b1*c2+a2*b*c1+c*a1*b2-(a2*b1*c+a1*b*c2+a*b2*c1);double Dx=P*b1*c2+b*c1*R+c*Q*b2-(c*b1*R+P*c1*b2+Q*b*c2);double Dy=a*Q*c2+P*c1*a2+c*a1*R-(c*Q*a2+a*c1*R+c2*P*a1);double Dz=a*b1*R+b*Q*a2+P*a1*b2-(a2*b1*P+a*Q*b2+R*b*a1);x = Dx/D;y = Dy/D;z = Dz/D ;answer[i][0]=x;answer[i][1]=y;answer[i][2]=z;answer[i][3]=D;//判断四点是否共面:}for(i=0;i<t;i++){if(answer[i][3]==0)cout<<"第"<<i+1<<"组输入的四个点不符合要求"<<endl; //四点共面或者等于零都不符合else{cout << "Case #" <<i+1 << "£º" <<setiosflags(ios::fixed) << setprecision(1)<<answer[i][0] <<" " << setiosflags(ios::fixed) << setprecision(1)<< answer[i][1] <<" " << setiosflags(ios::fixed) << setprecision(1)<<answer[i][2] <<endl; }}}。