사각형 중앙에서 외부의 한점까지 직선을 그었을때 사각형과의 접점.
2010/04/12 09:35
빡쳐서 수학책 샀긔
공비가 코드 짜줌. thanks, gongbi.
POINT getPoint(int x, int y,int cx, int cy)
{
double m,dx,dy,off,result;
POINT pt;
if( y <= 0 ) off = 0.0f;
else off = 2*(double)cy;
if( x != cx ) dx = (double)(x - cx);
else
{
pt.x = cx;
if( y <= 0 ) pt.y = 0;
else pt.y = 2*cy;
//*r = 2;
return pt;
}
if( y != cy ) dy = (double)(y - cy);
else
{
if( x<= 0 ) pt.x = 0;
else pt.x = 2*cx;
pt.y = cy;
//*r=2;
return pt;
}
m = dy/dx;
result = (m*(double)x-(double)y+off)/m;
if( (int)result < 0 || (int)result > cx*2 )
{
if( x<= 0 ) off = 0.0f;
else off = 2*(double)cx;
result = m*(off-(double)x)+(double)y;
pt.x = (int)off;
pt.y = (int)result;
//*r=1;
return pt;
}
else
{
pt.x = (int)result;
pt.y = (int)off;
//*r=0;
return pt;
}
}

