求空间圆最小二乘拟合的C语言程序是空间三维的圆,不是平面的就是给你三个点的坐标,你能把圆心以及半径求出来
来源:学生作业帮助网 编辑:六六作业网 时间:2024/08/27 00:58:19
求空间圆最小二乘拟合的C语言程序是空间三维的圆,不是平面的就是给你三个点的坐标,你能把圆心以及半径求出来
求空间圆最小二乘拟合的C语言程序
是空间三维的圆,不是平面的
就是给你三个点的坐标,你能把圆心以及半径求出来
求空间圆最小二乘拟合的C语言程序是空间三维的圆,不是平面的就是给你三个点的坐标,你能把圆心以及半径求出来
很久没搞立体几何运算,所以给不出答案.但可以给点建议.
空间不在一条线上的3点,可以确定1个圆.
空间圆的参数方程:
x = Cx + r (Ux*cos(t) + Vx*sin(t));
y = Cy + r (Uy*cos(t) + Vy*sin(t));
x = Cz + r (Uz*cos(t) + Vz*sin(t));
Cx,Cy,Cz 是圆心 x,y,z 座标.r 是半径.
Ux,Uy,Uz 是 与 圆所在平面的 法线 方向 有关 的 单位向量(规一化后的向量)
Vx,Vy,Vz 是 与 圆所在平面的 切线 方向 有关 的 单位向量 (规一化后的向量)
-------
空间不在一条线上的3点,可以组成2个向量,例如
( x3-x1) i + (y3-y1) j + (z3-z1) k
( x2-x1) i + (y2-y1) j + (z2-z1) k
2个向量 的 叉乘积 的 方向 就是 法线方向.
2个向量 的 点乘积 的 方向 就是 切线 方向.
叉乘积公式 用 行列式记:
白白白白| i j k |
a X b = | a1 a2 a3|
白白白白| b1 b2 b3|
点乘积 公式简单,略.
把 方向 系数 代入 空间圆的参数方程 求解便可.
------
还有个关系式 是 半径的 平方 等于 圆心到 圆上一点 空间距离.
r * r = (x-Cx)^2 + (y-Cy)^2 + (z-Cz)^2