知道空间3点(x1,y1,z1),(x2,y2,z2),(x3,y3,z3) 求这3点所确定的圆的参数方程?
圆的半径R,圆心(x0,y0,z0),还有3点所在平面AX+BY+CZ=D,球的方程我都可以求出,如果用的到得话也可以把这些看做已知。matlab作图急求,务必要参数方程...
圆的半径R,圆心(x0,y0,z0),还有3点所在平面AX+BY+CZ=D,球的方程 我都可以求出,如果用的到得话也可以把这些看做已知。matlab作图急求,务必要参数方程的求法,谢谢!
展开
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的循环即可画出此圆。
不明白可以追问。
假设:(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的循环即可画出此圆。
不明白可以追问。
更多追问追答
追问
谢谢,计算式不太懂,这个计算式和参数方程是什么关系?参数方程不是应该是x=f(t),y=f(t),z=f(t),t=?
追答
是的,计算式子里的Theta(角度),就是你说的t。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询