D3DXIntersectTri 求三角形与射线相交

    D3DXVECTOR3 vec1( - 10 , 0 , - 10 );
    D3DXVECTOR3 vec2(  
0 , 0 10 );
    D3DXVECTOR3 vec3( 
10 , 0 , - 10 );

    D3DXVECTOR3 vecOrg(
0 , 10 , 0 );
    D3DXVECTOR3 vecDir(
0 , - 2 , 0 );

    
// 求射线长度
    D3DXVECTOR3 _vecDir;
    D3DXVec3Subtract(
& _vecDir,  & vecDir,  & vecOrg);
    
float  dis_Ray  =  D3DXVec3Length( & _vecDir);

    D3DXVec3Normalize(
& vecDir, & vecDir);

    
float  u;
    
float  v;
    
float  dis;
    
bool  bInt  =  D3DXIntersectTri( & vec1,  & vec2,  & vec3,  & vecOrg,  & vecDir, & u,  & v,  & dis );
    
if  (bInt  &&  dis  <=  dis_Ray)
    {
        
// 求交点
        D3DXVECTOR3 vecIntPoint  =   vec1  +  u  *  (vec2  -  vec1)  +  v  *  (vec3  -  vec1);
        
return  S_OK;
    }

你可能感兴趣的:(intersect)