C++判断矩形相交的方法

2020-01-06 13:25:08王振洲
  • @interface CRect : NSObject  { 
  • int w; //矩形长  int h; //矩形高 
  • }  -(void) print; 
  • -(int) w;  -(int) h; 
  • -(void) setW: (int) vw;  -(void) setH: (int) vh; 
  • -(void) setWH: (int) vw :(int) vh;  -(CPoint *) origin; 
  • -(void) setOrigin: (CPoint *) pt;  @end 
  • CRect.m  #import "CRect.h" 
  • @implementation CRect  { 
  • CPoint *origin; //点  } 
  • -(void) print  { 
  • NSLog(@"the rect:(x:%i, y:%i, w:%i,h:%i)",origin.x, origin.y, w, h);  } 
  • -(int) w  { 
  • return w;  } 
  • -(int) h  { 
  • return h;  } 
  • -(void) setW:(int)vw  { 
  • w = vw;  } 
  • -(void) setH:(int)vh  { 
  • h = vh;  } 
  • -(void) setWH:(int)vw :(int)vh  { 
  • w = vw;  h = vh; 
  • }  -(CPoint *) origin 
  • {  return origin; 
  • }  -(void) setOrigin:(CPoint *)pt 
  • {  origin = pt; 
  • }  @end 
  • DoCRect.h  #import <Foundation/Foundation.h> 
  • #import "CRect.h"  @interface DoCRect : NSObject 
  • -(BOOL) isIntersect:(CRect *) rect1 :(CRect *) rect2; //矩形相交否  -(CRect *) intersectRect: (CRect *) rect1 :(CRect *) rect2; //相交矩形 
  • @end  DoCRect.m 
  • #import "DoCRect.h"  @implementation DoCRect 
  • //矩形是否相交  -(BOOL) isIntersect:(CRect *)rect1 :(CRect *)rect2 
  • {  int minx = MAX(rect1.origin.x, rect2.origin.x); 
  • int miny = MAX(rect1.origin.y, rect2.origin.y);  int maxx = MIN(rect1.origin.x+rect1.w, rect2.origin.x+rect2.w);