自己推导,自测没有问题,用时自己验证(x1=x3,x2=x4,y1=y3,y2=y4)
(采用最小二乘法模拟离散点或采用RANSAC方法模拟离散形成的空间四边形曲面的代码回头补充)
(感觉利用投射应该会更好计算,但是没百度到,也暂时没时间去看投射,回头补充)
空间四边形的一般方程:
AX+BY+CZ+DXY+E=0
决定空间四边形的4个点P1(x1,y1,z1),P2(x2,y1,z2),P3(x1,y2,z3),P4(x2,y2,z4)
A= -(z4y1-z3y1-z2y2+z1y2)/((x2-x1)(y2-y1))
B= -(z4x1-z3x2-z2x1+z1x2)/((x2-x1)(y2-y1))
C= -((x2-x1)(y2-y1))
D= z4-z3-z2+z1
E=x1y1z4-x2y1z3-x1y2z2+x2y2z1
如果底面已经确定(x1,y1,x2,y2已经确定),已知几点在面上,但是已知点(x,y)求z值,
则
Az4+Bz3+Cz2+Dz1+E=0
A=xy-x1y-y1x+x1y1
B= -(xy-x2y-y1x+x2y1)
C= -(xy -x1y-y2x+x1y2)
D=xy-x2y-y2x+x2y2
E=-(x2-x1)(y2-y1)z
zF=(thd4*(i*j-BV1*j-EVD1*i+BV1*EVD1)-thd3*(i*j-BV2*j-EVD1*i+BV2*EVD1)-thd2*(i*j-BV1*j-EVD2*i+BV1*EVD2)+thd1*(i*j-BV2*j-EVD2*i+BV2*EVD2))/((BV2-BV1)*(EVD2-EVD1))