TA的每日心情![](source/plugin/dsu_paulsign/img/emot/kx.gif) | 开心 昨天 15:23 |
---|
签到天数: 69 天 [LV.6]常住居民II
管理员
- 积分
- 2704
|
设两点为 P1(x1,y1,z1), P2(x2,y2,z2), 则由P1指向P2的有向线段P1P2与X轴的夹角为:
float angle=CalLineToXAngle(x1,y1,z1,x2,y2,z2);
float CMesh::CalLineToXAngle(float x1,float y1,float z1,float x2,float y2,float z2)//1->2
{
if ((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1)==0)
{
return 0.0f;
}
float linevector[3]={x2-x1,y2-y1,z2-z1};
float linex[3]={1.0f,0.0f,0.0f};
float cosangle=(x2-x1)/sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1));
if (cosangle<-1||cosangle>1)
{
ASSERT(1);
}
//
float langle=acos(cosangle);
//
float angle=langle*180.0f/PI;
if (angle<0||angle>180)
{
ASSERT(1);
}
return angle;
}
|
|