| 
Canvas 에 원을 그리기 위해서 Ellipse 멤버함수를 사용하는데 이 함수가 사각형에 내접하는 원을 그리는 방식이라
 타원이 그려지게 되죠..
 
 그래서 원의 중심점과 반지름 위치의 점을 이용하여 원을 그리는 방식으로 변경하는 코드를 만들어 보았습니다.
 
 void Calcu_Circle_Position(POINT Center, POINT Radius, POINT* StartPos, POINT* EndPos)
 {
 int dx, dy, radius ;
 
 dx = (Radius.x - Center.x) * (Radius.x - Center.x) ;
 dy = (Radius.y - Center.y) * (Radius.y - Center.y) ;
 radius = sqrt((double)(dx+dy)) ;
 
 StartPos->x = Center.x - radius ;
 StartPos->y = Center.y - radius ;
 EndPos->x   = Center.x + radius ;
 EndPos->y   = Center.y + radius ;
 }
 
 함수 사용방법은
 
 POINT Center, Radius, StartPos, EndPos ;
 
 /****************
 Center : 마우스 첫 클릭 포인트
 Radius : 마우스의 두번째 클릭 포인트
 *****************/
 
 Calcu_Circle_Position(Center, Radius, &StartPos, &EndPos) ;
 Canvas->Ellipse(StartPos.x, StartPos.y, EndPos.x, EndPos.y) ;
 
 이렇게 사용하시면 됩니다.
 | 
함수 두번호출 필요없이 한번에 그리게 하면 어떨까요?
DrawCircle( TCanvas *pCanvas , float fCenterX , float fCenterY,float fRadius);