易采站长站为您分析C++判断矩形相交的方法,涉及C++针对平面坐标数学运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了C++判断矩形相交的方法。。具体如下:
已知2矩形原点和宽高,判断2矩形相交,相交矩形
相交判断原理:
假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形
rect1{(minx1, miny1)(maxx1, maxy1)}
rect2{(minx2, miny2)(maxx2, maxy2)}
相交的结果一定是个矩形,构成这个相交矩形rect{(minx, miny) (maxx, maxy)}的点对坐标是:
minx = max(minx1, minx2)
miny = max(miny1, miny2)
maxx = min(maxx1, maxx2)
maxy = min(maxy1, maxy2)
如果两个矩形不相交,那么计算得到的点对坐标必然满足:
( minx > maxx ) 或者 ( miny > maxy )
判定是否相交,以及相交矩形是什么都可以用这个方法一体计算完成
设计3个类:
1. 点类:x,y
2. 矩形类:点,宽,高
3. 判断相交类
程序实现:
- CPoint.h #import <Foundation/Foundation.h>
- @interface CPoint : NSObject {
- int x; //点坐标 int y;
- } -(void) print;
- -(void) setX: (int) vx; -(void) setY: (int) vy;
- -(void) setXY:(int) vx :(int) vy; -(int) x;
- -(int) y; @end
- CPoint.m #import "CPoint.h"
- @implementation CPoint -(void) print
- { NSLog(@"the point is (%i, %i)",x,y);
- } -(void) setX: (int) vx
- { x = vx;
- } -(void) setY: (int) vy
- { y = vy;
- } -(void) setXY:(int)vx :(int)vy
- { x = vx;
- y = vy; }
- -(int) x {
- return x; }
- -(int) y {
- return y; }
- @end CRect.h
- #import <Foundation/Foundation.h> #import "CPoint.h"










