#include
#include
#include
#include
#include
double a,b,c,al,be,ga,sal,sbe,sga,cal,cbe,cga,mm,nn,ss,f1,f2,f3;
/*ÒÔÏÂÊDZäÁ¿µÄ˵Ã÷
a£¬b£¬c£ºÈý¸ö»ùʸµÄ³¤¶È
al£¬be£¬ga£ºÈý¸ö»ùʸ֮¼äµÄ¼Ð½Ç£¨½Ç¶ÈÖµ£©
sal£¬sbe£¬sga£ºÈý¸ö»ùʸ֮¼äµÄ¼Ð½ÇµÄÕýÏÒÖµ
cal£¬cbe£¬cga£ºÈý¸ö»ùʸ֮¼äµÄ¼Ð½ÇµÄÓàÏÒÖµ
mm£¬nn£¬ss£ºµ¹Ò×µãÕóÈý¸ö»ùʸ֮¼äµÄ¼Ð½ÇµÄÓàÏÒÖµ
f1£¬f2£¬f3£ºµ¹Ò×µãÕóµÄÈý¸ö»ùʸµÄ³¤¶È
fvect£ºÊ¸Á¿ÀàÐÍ
ÒÔÏÂΪº¯Êý˵Ã÷
angle£º¼ÆËãµ¹Ò×µãÕóÖÐÁ½¸öʸÁ¿¼äµÄ¼Ð½Ç£¬¼´Õý¿Õ¼äÖÐÁ½¸öÃæµÄ¼Ð½Ç
input£ºÊäÈë²ÎÊý
*/
struct fvect
{
float x,y,z;
};
struct fvect cef,rif;
float angle(struct fvect aa,struct fvect bb)
{
float se1=aa.x*bb.x*f1*f1+aa.y*bb.y*f2*f2+aa.z*bb.z*f3*f3+(aa.x*bb.y+bb.x*aa.y)*ss+(aa.x*bb.z+bb.x*aa.z)*nn+(aa.y*bb.z+bb.y*aa.z)*mm;
float se2=sqrt(aa.x*aa.x*f1*f1+aa.y*aa.y*f2*f2+aa.z*aa.z*f3*f3+(aa.x*aa.y+aa.x+aa.y)*ss+(aa.x*aa.z+aa.x*aa.z)*nn+(aa.y*aa.z+aa.y*aa.z)*mm);
float se3=sqrt(bb.x*bb.x*f1*f1+bb.y*bb.y*f2*f2+bb.z*bb.z*f3*f3+(bb.x*bb.y+bb.x*bb.y)*ss+(bb.x*bb.z+bb.x*bb.z)*nn+(bb.y*bb.z+bb.y*bb.z)*mm);
float ee=se1/se2/se3;
if(fabs(ee)<0.01) ee=0;
return (ee);
}
void input(void)
{
double pi,angle1;int t;
struct fvect p1,p2,p3;
printf("please input a,b,c\n" ;
scanf("%lf %lf %lf",&a,&b,&c);
printf("please input al,be,ga\n" ;
scanf("%lf %lf %lf",&al,&be,&ga);
pi=3.1415926/180;t=1;
al=al*pi;be=be*pi;ga=ga*pi;
sal=sin(al);sbe=sin(be);sga=sin(ga);
cal=cos(al);cbe=cos(be);cga=cos(ga);
mm=(cal*cbe-cga)/sal/sbe;
nn=(cal*cga-cbe)/sal/sga;
ss=(cbe*cga-cal)/sbe/sga;
f1=a*sal/(sqrt(t-cal*cal-cbe*cbe-cga*cga+cal*cbe*cga+cal*cbe*cga));
f2=b*sbe/(sqrt(t-cal*cal-cbe*cbe-cga*cga+cal*cbe*cga+cal*cbe*cga));
f3=c*sga/(sqrt(t-cal*cal-cbe*cbe-cga*cga+cal*cbe*cga+cal*cbe*cga));
printf("please input the first plane\n" ;
scanf("%lf %lf %lf",&cef.x,&cef.y,&cef.z);
printf("please input the second plane\n" ;
scanf("%lf %lf %lf",&rif.x,&rif.y,&rif.z);
angle1=angle(cef,rif);
angle1=acos(angle1);
printf("The angle between two plane is %f",angle1*180/3.1415926);
}
void main()
{
input();
system("pause" ;
}
¸÷λ°ïæ¿´¿´£¬Õâ¶Î´úÂëÓÐʲô´íÎóà£
ÔËÐÐʱ×ÜÊÇÌáʾmainº¯Êý·µ»ØÖµ²»ÄÜΪ¿Õ£¬¸ÄΪintºó£¬ÊäÈë²ÎÊýºóµÄÔËÐнá¹ûÈ總ͼ
![]()
ÔËÐнá¹û |