오전 11:19 2000/08/14
조경민 (bro@shinbiro.com)
===========================================================================

직선위에 근처 점이 HitTest 되었는지 알아내는 알고리즘

           ptEnd
           *
         /
       /     pt가 nRange정도 라인 가까이 있으면 선택됩니다.
     /  *
   /    pt
*
ptSrt

pt가 라인에 대해서 nRange안에 있으면 라인이 선택된 것

BOOL CXMapperView::fnHitTestPointOverLine( CPoint ptSrt, CPoint ptEnd, CPoint pt , int nRange )
{
        BOOL bRet = FALSE;
        
        double dKiulki = ((double)( ptEnd.y-ptSrt.y ))/( ptEnd.x-ptSrt.x );
        int nLineY = dKiulki*( pt.x - ptEnd.x ) + ptEnd.y;

        if( abs(nLineY-pt.y) < nRange )
                bRet = TRUE;
        
        return bRet;
}

'KB > C/C++' 카테고리의 다른 글

STL String  (0) 2004.03.19
Boyer Moore 문자열 패턴 매칭  (0) 2004.03.19
[tc] tc 사용하기  (0) 2004.03.19
bc 버그 중 하나..  (0) 2004.03.19
C & C++ Tip 1001  (0) 2004.03.19

+ Recent posts