知道空间3点(x1,y1,z1),(x2,y2,z2),(x3,y3,z3) 求这3点所确定的圆的参数方程?

2个回答

  • 下面是我的思路,尽量用Matlab语言叙述的,方便你作图.

    假设:(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),(x0,y0,z0),R,(A,B,C,D)均已知.

    法向量(A,B,C)归一化后,设单位向量K=[A B C]'/sqrt(A^2+B^2+C^2).设单位向量I=[x1-x0 y1-y0 z1-z0]'/sqrt((x1-x0)^2+(y1-y0)^2+(z1-z0)^2),设J=K × I(Matlab里的向量叉乘表示为J=cross(K,I)),则亦为单位向量.且I,J和K满足右手定则,可立为新坐标系.

    则T=[I J K] 为正交矩阵,而且是坐标旋转的矩阵,把[1 0 0]'变为I,[0 1 0]'变为J,[0 0 1]'变为K.

    给定一个角度Theta,如下计算式

    [x0 y0 z0]'+T*[R*cos(Theta) R*sin(Theta) 0]'

    即为该圆的参数方程,把Theta取个0到2*pi的循环即可画出此圆.