求空间圆最小二乘拟合的C语言程序是空间三维的圆,不是平面的就是给你三个点的坐标,你能把圆心以及半径求出来
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/20 17:10:53
![求空间圆最小二乘拟合的C语言程序是空间三维的圆,不是平面的就是给你三个点的坐标,你能把圆心以及半径求出来](/uploads/image/z/11649893-5-3.jpg?t=%E6%B1%82%E7%A9%BA%E9%97%B4%E5%9C%86%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%8B%9F%E5%90%88%E7%9A%84C%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E6%98%AF%E7%A9%BA%E9%97%B4%E4%B8%89%E7%BB%B4%E7%9A%84%E5%9C%86%2C%E4%B8%8D%E6%98%AF%E5%B9%B3%E9%9D%A2%E7%9A%84%E5%B0%B1%E6%98%AF%E7%BB%99%E4%BD%A0%E4%B8%89%E4%B8%AA%E7%82%B9%E7%9A%84%E5%9D%90%E6%A0%87%2C%E4%BD%A0%E8%83%BD%E6%8A%8A%E5%9C%86%E5%BF%83%E4%BB%A5%E5%8F%8A%E5%8D%8A%E5%BE%84%E6%B1%82%E5%87%BA%E6%9D%A5)
求空间圆最小二乘拟合的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