태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

사각형 중앙에서 외부의 한점까지 직선을 그었을때 사각형과의 접점.

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;
	}
}
크리에이티브 커먼즈 라이선스
Creative Commons License

유리한 코드창고