/* @brief 두점을 지나는 원의 중심점을 구한다. @param * psRelMatchPos 원의 중심점 좌표 @param fR 반지름 @param * psCenterPoint 첫번째 점과 두번째 점의 좌표 @param Direction 좌측 또는 우측방향 @return Error code */ ATF_ERR_T CiADAS_ReconstructorDlg ::Get_Two_Point_Circle( AT_FPOINT *psRelMatchPos, const float fR, const AT_FPOINT* psCenterPoint, const BOOL Direction) { float fdx = (psCenterPoint[1].x - psCenterPoint[0].x); float fdy = (psCenterPoint[1].y - psCenterPoint[0].y); float fxc = (psCenterPoint[1].x + psCenterPoint[0].x) / 2.0; float fyc = (psCenterPoint[1].y + psCenterPoint[0].y) / 2.0; float fd = sqrt(fdx * fdx + fdy * fdy); //두점사이의 거리 float fd2 = fd/2; //거리의 중간 float fOffset = sqrt(fR * fR - fd2 * fd2); float fplusx = fOffset * fdy/fd; float fplusy = fOffset * fdx/fd; if(Direction == 1) { psRelMatchPos->x = fxc + fplusx; psRelMatchPos->y = fyc - fplusy; } else// if(Direction == 0) { psRelMatchPos->x = fxc - fplusx; psRelMatchPos->y = fyc + fplusy; } return ATF_ERR_NONE; }