2014-06-16 7 views
-2
//Test code to print all coordinates 

CGRect b=CGRectMake(0, 0, 4, 3); 
//top left 
float topLX=CGRectGetMinX(b); 
float topLY=CGRectGetMinY(b); 

NSLog(@"(%f,%f)",topLX,topLY); 

//top right 
float topRX=CGRectGetMaxX(b); 
float topRY=CGRectGetMinY(b); 

NSLog(@"(%f,%f)",topRX,topRY); 

//bottom left 
float bottomLX=CGRectGetMinX(b); 
float bottomLY=CGRectGetMaxY(b); 

NSLog(@"(%f,%f)",bottomLX,bottomLY); 

//bottom right 
float bottomRX=CGRectGetMaxX(b); 
float bottomRY=CGRectGetMaxY(b); 

NSLog(@"(%f,%f)",bottomRX,bottomRY); 


//Sample CGRectContainsPoint Test 

CGRect d=CGRectMake(0, 0, 4, 3); 
CGPoint p=CGPointMake(0, 0); 
CGPoint o=CGPointMake(4, 3); 

BOOL contains=CGRectContainsPoint(d, p); 
BOOL contains1=CGRectContainsPoint(d, o); 

if(contains) NSLog(@"yes"); else NSLog(@"no"); 
//This will print yes because p is inside rect b 


if(contains1) NSLog(@"yes");else NSLog(@"no"); 
//This will print no because o is inside rect b 

NSLog Output: 
2014-06-16 16:08:37.291 Pirate Adventure[7564:60b] (0.000000,0.000000) 
2014-06-16 16:08:37.291 Pirate Adventure[7564:60b] (4.000000,0.000000) 
2014-06-16 16:08:37.292 Pirate Adventure[7564:60b] (0.000000,3.000000) 
2014-06-16 16:08:37.292 Pirate Adventure[7564:60b] (4.000000,3.000000) 
2014-06-16 16:08:37.292 Pirate Adventure[7564:60b] yes 
2014-06-16 16:08:37.293 Pirate Adventure[7564:60b] no 

저는 CGRect 그리기와 일련의 타일 개체에 대해 작업했습니다. 그러나 그것을 그리는 방법에 관계없이 4 점 (가로)과 3 점 (세로)을 매핑하는 사각형을 얻을 수 없습니다. 또한 저는 하루 종일 시행 착오를 철저히 수색했습니다.CGRectContainsPoint가 경계에 도달하지 못했습니다.

답변

0

하루 종일 작업 한 결과 0-3이 4 점인 0 기반 CGRect 의미임을 알았습니다. 또한 0-2는 3 점입니다. 따라서 점은 0,0을 원점으로 계산하므로 CGRect의 네 점은 다음과 같습니다. 0,0 - 3,0 2,0 - 2,3

2

CGRectContainsPoint의 설명서에서. 그 좌표 사각형 내부 또는 최소 X 또는 Y 최소 가장자리에 놓여있는 경우

토의

점은 사각형 안에 여겨진다.

-CGRectContainsPoint로 두 번째 통화에 false을 반환하는 이유는, 당신은 최대 에지 점에 대해 확인하는 것 같습니다.