问题描述
尝试了多种平面相交的方法,代码没有产生准确的结果。在某些角度上它非常好,对于直角三角形,大致位置但明显偏离。
xyzPoint return_Intersect_3planes(Tri tri1,Tri tri2,Tri tri3) {
double x1 = 0.646;
double y1 = 0.210;
double z1 = 2.147;
double a1 = 0.251;
double b1 = -0.456;
double c1 = -0.411;
double d1 = -((a1 * x1) + (b1 * y1) + (c1 * z1));
double x2 = -0.0744;
double y2 = 0.0808;
double z2 = 2.082;
double a2 = -0.1218;
double b2 = -0.2606;
double c2 = -0.748;
double d2 = -((a2 * x2) + (b2 * y2) + (c2 * z2));
double x3 = 0.10627;
double y3 = 0.3924;
double z3 = 2.335;
double a3 = 0.0987;
double b3 = 0.3236;
double c3 = -0.278;
double d3 = -((a3 * x3) + (b3 * y3) + (c3 * z3));
double D = (a2 * b2 * c3) + (b1 * c2 * a3) + (c1 * a2 * b3) - (a3 * b2 * c1) - (b3 * c2 * a1) - (c3 * a2 * b1);
double Dx = (d1 * b2 * c3) + (b1 * c2 * d3) + (c1 * d2 * b3) - (d3 * b2 * c1) - (b3 * c2 * d1) - (c3 * d2 * b1);
double Dy = (a1 * d2 * c3) + (d1 * c2 * a3) + (c1 * a2 * d3) - (a3 * d2 * c1) - (d3 * c2 * a1) - (c3 * a2 * d1);
double Dz = (a1 * b2 * d3) + (b1 * d2 * a3) + (d1 * a2 * b3) - (a3 * b2 * d1) - (b3 * d2 * a1) - (d3 * a2 * b1);
xyzPoint Intersection;
Intersection.x = Dx / D;
Intersection.y = Dy / D;
Intersection.z = Dz / D;
return Intersection;
}
结果是
x = 0.00276579 y = -0.32880155 z = -4.0193058 (这已被转为否定,可能完全错误?)
基于 CAD 的正确位置是
x = -0.002 y = 0.204 z = 2.498
ODS(开放式办公室计算)文件已上传 https://filebin.net/g6onuah7q5rfg7lj
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)