我已知道A面上a1(x1,y1,z1),a2(x2,y2,z2),a3(x3,y3,z3)三个点的座标位置,也知道B面上b1(x1,y1,z1),b2(x2,y2,z2),b3(x3,y3,z3)三个点的座标位置,我要求A面与B面之间的角度?

解决方案 »

  1.   

    换了个思路:
    已知:
    面A
    上有a1(x1,y1,z1),a2(x2,y2,z2),a3(x3,y3,z3)
    面B
    上有b1(x4,y4,z4),b2(x5,y5,z5),b3(x6,y6,z6)
    求:
    A,B面二面角θ大小
    解:
    思路:求A,B面法向量α,β,然后由θ=arccos(αβ) '因为法向量模的乘积是1,故αβ=αβ/1方法:
    任求A面两个向量
    t1=<x1-x2,y1-y2,z1-z2>,t2=<x1-x3,y1-y3,z1-z3>
    设α=<e,f,g>,则可得方程组:
       e*(x1-x2)+f*(y1-y2)+g*(z1-z2)=0
    {  e*(x1-x3)+f*(y1-y3)+g*(z1-z3)=0  }
       e^2+f^2+g^2=1
    同理,求出B面法向量β<l,m,n>
    最后得到θ=arccos(αβ)=arccos(e*l+f*m+g*n)具体思路是这个,代码没时间写了,因为解方程组还得推,很麻烦,也许用大学的行列式解还方便些(不好意思,我只上高二,就这个水平了不要笑我*^_^*)
      

  2.   

    我已知道A面上a1(x1,y1,z1),a2(x2,y2,z2),a3(x3,y3,z3)三个点的座标位置,也知道B面上b1(x1,y1,z1),b2(x2,y2,z2),b3(x3,y3,z3)三个点的座标位置,我要求A面与B面之间的角度?解:
       A-->
          a1*x1+a2*y1+a3*z1=1
          a1*x2+a2*y2+a3*z2=1
          a1*x3+a2*y3+a3*z3=1      用三阶行列式解三元一次方程得A(a1,a2,a3),非常容易的。   同理  
       B-->
          b1*x1+b2*y1+b3*z1=1
          b1*x2+b2*y2+b3*z2=1
          b1*x3+b2*y3+b3*z3=1      用三阶行列式解三元一次方程得B(b1,b2,b3)。      则两个平面法线夹角α,两个平面二面角β,
          cosα=A·B/(|A|·|B|)=(a1*b1+a2*b2+a3*b3)/(sqr(a1^2+a2^2+a3^2)·sqr(b1^2+b2^2+b3^2))      由于α+β=180,则β=180-α
          
      

  3.   

    兄弟。此处“(sqr(a1^2+a2^2+a3^2)·sqr(b1^2+b2^2+b3^2))”
    的点我不明白应该怎样运算
      

  4.   

    (a1的平方+a2的平方+a3的平方)开方  然后 乘 (b1的平方+b2的平方+b3的平方)的开方