|
假设三个球的公共切平面方程为
$ n \cdot (x - x_0) = 0 $
其中 $n$ 满足 $n \cdot n = 1 $.
平面须满足中心到平面的距离分别为 $r_1, r_2, r_3$。所以如果 $x_1 , x_2, x_3$ 是三个中心的位置向量,我们要解
$ | n \cdot (x_1 - x_0) | = r_1 $
$ | n \cdot (x_2 - x_0) | = r_2 $
$ | n \cdot (x_3 - x_0) | = r_3 $
定义
$ s_1 = \operatorname{sgn}(n \cdot (x_1 - x_0) ) $
$ s_2 = \operatorname{sgn}( n \cdot (x_2 - x_0) ) $
$ s_3 = \operatorname{sgn}(n \cdot (x_3 - x_0 ) ) $
然后,假设 $r_1 , r_2 , r_3 \gt 0 $,方程变为
$ n \cdot (x_1 - x_0) = s_1 r_1 $
$ n \cdot (x_2 - x_0) = s_2 r_2 $
$ n \cdot (x_3 - x_0) = s_3 r_3 $
取第一个和第二个方程的差,然后取第一个和第三个方程的差,得到
$ n \cdot (x_1 - x_2) = s_1 r_1 - s_2 r_2 $
$ n \cdot (x_1 - x_3) = s_1 r_1 - s_3 r_3 $
这是一个线性方程组,未知数是 $n$ 的三个分量。因此,解的形式为
$ n = n_0 + t n_1 $
其中 $n_0$ 和 $n_1$ 通过消元法得到,$t \in \mathbb{R}$ 待定。
为了确定 $t$,我们只需施加约束 $n \cdot n= 1 $,这转化为
$ (n_1 \cdot n_1) t^2 + 2 t (n_1 \cdot n_0) + (n_0 \cdot n_0) - 1 = 0 $
这将给出 $0, 1,$ 或 $2$ 个解。一旦我们有了 $n$,我们可以从原始方程的第一个方程中得到常数 $(n \cdot x_0)$,即
$ d = n \cdot x_0 = n \cdot x_1 - s_1 r_1 $
这样平面就完全确定了。
注意,如果我们反转线性方程组的所有符号,那么得到的法向量将只是原始符号得到的法向量的负数。所以如果我们用 $s_1 = 1 , s_2 = -1, s_3 = -1$ 得到 $ n $,那么我们将用 $s_1 = -1, s_2 = 1, s_3 = 1$ 得到 $ - n $。因此,我们只需要取以下组合 $ ( +, + , + ) , (+, +, - ) , (+, - , + ), ( -, + , + )$
这将为每个符号三元组生成两个平面,总共 $8$ 个可能的平面。
有人能简化上述内容以计算“解的存在条件”吗? |
|