두 개의 CGPoint가 프레임 사각형의 두 모서리 위치입니다.두 값을 비교하고 두 값 중 가장 큰 값을 반환합니다.
별도의 지침을 제공해야합니다 (하나는 수직면), 다른 하나는 하단에 대한 지침입니다.
어떻게 비교 한 후 별도의 지침을 제공합니까?
두 개의 CGPoint가 프레임 사각형의 두 모서리 위치입니다.두 값을 비교하고 두 값 중 가장 큰 값을 반환합니다.
별도의 지침을 제공해야합니다 (하나는 수직면), 다른 하나는 하단에 대한 지침입니다.
어떻게 비교 한 후 별도의 지침을 제공합니까?
사용 ...
CGPoint upperPoint = ((one.y < two.y) ? one : two);
CGPoint lowerPoint = ((one.y < two.y) ? two : one);
아니면 FMAX/FMIN 형 매크로를 사용 ...
CGFloat lesserYvalue = ((CGFloat) fMinf(one.y , two.y));
CGFloat greaterYvalue = ((CGFloat) fMaxf(one.y , two.y));
CGPoint가 두 개인 경우 하나가 다른 CGPoint보다 위에 있으면 다른 CGPoint보다 y 값이 낮습니다.
예를 들어 :
CGPoint point1 = CGPointMake(100.0, 120.0);
CGPoint point2 = CGPointMake(100.0, 80.0);
당신이 방법을 쓸 수있다 : 두 점을
- (NSComparisonResult)compareYValueOfPoint:(CGPoint)point1 toPoint:(CGPoint)point2
{
CGFloat y1 = point1.y;
CGFloat y2 = point2.y;
if (y1 == y2) {
return NSOrderedSame;
} else if (y1 < y2) {
return NSOrderedAscending;
} else {
return NSOrderedDescending;
}
}
와 함께 전화 :
NSComparisonResult result = [self compareYValueOfPoint:point1 toPoint:point2];
그리고 결과에 따라, 사용 추가 작업을위한 관련 지점.
CGPoint
두 필드 x
& y
함유 복합 값 (struct
)이다.
두 개의 임의의 점이 있다면 그 y- 좌표가 다른 y- 좌표보다 큰 경우 다른 하나의 "위"에 있습니다. 하나는 x 좌표가 큰 경우 다른 하나의 오른쪽에 있습니다. 알려진 순서에 새로운 변수를 초기화하는 원 사업자
CPPoint one, two;
if (one.y > two.y) { // one is above two }
if (two.x > one.x) { // two is to the right of one }
두 점은 어느 곳입니다 직사각형에 ?? 한 가지 방법은 포인트를 최상부 및 최하부 대부분의 포인트, 즉 대각선 포인트와 비교하는 것이다. 따라서 포인트가 최상위 지점으로 향하는 경우 최상단과 관련된 지시를 수행하십시오. 최하위와 관련된 지시를 수행하십시오. 포인트에 대해 더 명확히 할 수 있습니까 ?? 비교는 Eucledian 거리 공식 – Jigar
@ Jigar의 도움으로 이루어집니다. 질문을 생각해 본 것 같습니다. 한 점이 다른 점 위에 있으면 유클리드 거리와 관련이 거의 없습니다. – Abizern
글쎄, 먼저 "가장 큰"의미를 정의해야합니다. 가장 큰 Y 값을 선택하기 만하면 사소한 테스트이고 왜 여기 묻는 지 궁금합니다. –