首先利用线性代数有关二次型的知识,将二次项对角化,即将表达式中的二次项整理为矩阵形式(顺便也整理一次项),得到:
将二次项矩阵对角化,记xyz行向量为X,列向量为X转置(记为X°),变换矩阵为P,系数矩阵变为PΛP°(注意P的转置等于P的逆阵,即P°=P¯),其中Λ为对角阵diag(λ1,λ2,λ3)
再记(u,v,w)=U=XP,原表达式变为关于u、v、w的表达式:
UΛU°+(G H I)P°U°+J=0
λ1u²+λ2v²+λ3w²+G`u+H`v+I`w+J=0
注意这个表达式已经消去了所有的交叉项,配方后消除一次项就可以得到标准方程。
变换矩阵U就对应了旋转角度,配方过程就可以得到平移和伸缩的尺度。