C++计算两平面直线的交点 |
您所在的位置:网站首页 › 平面和直线的交点 › C++计算两平面直线的交点 |
这里还是用直线的参数曲线方程: A: f(t) = va*t+a B: g(s) = vb*s +b va是直线A的二维的单位方向向量,a是直线A的原点 计算直线A和B交点, f(t) = g(s) => va.x *t + a.x = vb.x*s +b.x va.y *t + a.y = vb.y*s +b.y => va.x*t - vb.x*s = b.x-a.x va.y*t - vb.y*s = b.y-a.y 这就是 M*X = Y 其中M是如下的两行两列矩阵 | va.x -vb.x| |va.y -vb.y| X是向量 |t s| 转置 Y是列向量 |b.x-a.x| |b.y-a.y| 其中Yx = b.x - a.x Yy = b.y-a.y 这个方程组用克拉姆法则求解,不了解的看下线性代数 先M的行列式 m = -va.x*vb.y + va.y*vb.x 如果m 等于0(实际上会用fabs(m) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |