2个回答
展开全部
很久没搞立体几何运算,所以给不出答案。但可以给点建议。
空间不在一条线上的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
空间不在一条线上的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
更多追问追答
追问
有没有现成的程序?
圆所在平面的 切线 你怎么确定是哪一条?法线肯定就一条
追答
没有现成程序。圆所在平面 法线有无数条 (指垂直于 圆所在平面 的 任何一条线)。
圆所在平面 “切线” 指 在这个平面上的直线。可以用2点式(3点中任2点连线都可以)。
东莞大凡
2024-08-07 广告
2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询