亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

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

2020-01-26 15:02:38
字體:
來源:轉載
供稿:網友

本文實例講述了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;}@endCRect.h#import <Foundation/Foundation.h>#import "CPoint.h"@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;@endCRect.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;}@endDoCRect.h#import <Foundation/Foundation.h>#import "CRect.h"@interface DoCRect : NSObject-(BOOL) isIntersect:(CRect *) rect1 :(CRect *) rect2; //矩形相交否-(CRect *) intersectRect: (CRect *) rect1 :(CRect *) rect2; //相交矩形@endDoCRect.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);  int maxy = MIN(rect1.origin.y+rect1.h, rect2.origin.y+rect2.h);  if (minx>maxx || miny>maxy)  {    return NO;  }  return YES;}-(CRect *) intersectRect:(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);  int maxy = MIN(rect1.origin.y+rect1.h, rect2.origin.y+rect2.h);   CRect * rect = [[CRect alloc] init];  CPoint *p = [[CPoint alloc] init];  if (NO == [self isIntersect:rect1 :rect2])//no isIntersect  {    [p setXY:minx :miny];    [rect setOrigin:p];    rect.w = 0;    rect.h = 0;    return rect;  }  [p setXY:minx :miny];  [rect setOrigin:p];  rect.w = ABS(maxx-minx);  rect.h = ABS(maxy - miny);  return rect; }@endmain.m 測試#import <Foundation/Foundation.h>#import "DoCRect.h"int main(int argc, const char * argv[]){  @autoreleasepool  {    NSLog(@"Hello,判斷矩形相交,返回矩形的原點和長高");    //初始化對象    CRect *myrect1 = [[CRect alloc] init];    CRect *myrect2 = [[CRect alloc] init];    CPoint *p1 = [[CPoint alloc] init];    CPoint *p2 = [[CPoint alloc] init];    DoCRect *dorect = [[DoCRect alloc] init];    //原點變量    [p1 setXY:200 :420];    [p2 setXY:400 :300];    //設置矩形原點    [myrect1 setOrigin:p1];    [myrect1 setWH:250 :75];    [myrect1 print];    [myrect2 setOrigin:p2];    [myrect2 setWH:100 :180];    [myrect2 print];    //判斷2矩形是否相交    BOOL insersect = [dorect isIntersect:myrect1 :myrect1];    NSLog(@" two rect is :%@",insersect?@"YES":@"NO");    //返回相交矩形    //CRect *inserectRect = [[CRect alloc] init];    CRect *inserectRect = [dorect intersectRect:myrect1 :myrect2];    [inserectRect print];  }  return 0;}

希望本文所述對大家的C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文字幕网站| 日韩精品免费在线播放| 国产精品成人在线| 国产精品精品久久久久久| 欧美日韩性生活视频| 亚洲韩国日本中文字幕| 国产精品旅馆在线| 97久久国产精品| 国产欧美日韩高清| 日韩中文字幕不卡视频| 92看片淫黄大片看国产片| 久久精品视频中文字幕| 精品久久久精品| 爱福利视频一区| 日韩美女主播视频| 精品国内产的精品视频在线观看| 亚洲欧美在线第一页| 一本色道久久综合亚洲精品小说| 精品国产91久久久久久| 亚洲欧美在线一区二区| 欧美性生交大片免网| 久久久精品国产网站| 欧美成人精品在线播放| 亚洲欧美另类中文字幕| 色综合伊人色综合网站| 国产剧情日韩欧美| 亚洲欧美福利视频| 亚洲欧美一区二区激情| 中文字幕国产亚洲2019| 亚洲福利在线看| 一区二区三区回区在观看免费视频| 一区二区三区视频免费| 欧美高清在线观看| 久久久久久高潮国产精品视| 久久久精品中文字幕| 91久热免费在线视频| 亚洲国产91色在线| 久久手机精品视频| 日韩精品在线视频美女| 丝袜美腿亚洲一区二区| 欧美大片在线免费观看| 精品国产一区二区三区在线观看| 超碰日本道色综合久久综合| 日韩av成人在线| 黑丝美女久久久| 中文字幕亚洲欧美在线| 亚洲人高潮女人毛茸茸| 国产精品日韩在线播放| 精品久久久香蕉免费精品视频| 日韩中文在线中文网在线观看| 91精品久久久久久久久久久久久久| 91综合免费在线| 欧美日韩国产精品专区| 欧美国产日产韩国视频| 色偷偷888欧美精品久久久| 欧美成人午夜激情| 欧美性猛交xxxx富婆| 日韩一区二区三区在线播放| 国产精品中文字幕在线| 国产精品丝袜白浆摸在线| 欧美精品情趣视频| 日韩电影免费在线观看中文字幕| 国产区亚洲区欧美区| 黑人巨大精品欧美一区二区| 欧美激情在线观看视频| 国产成人在线一区| 欧美激情一级欧美精品| 欧美中文字幕精品| 成人av资源在线播放| 欧美色播在线播放| 精品国产视频在线| 亚洲级视频在线观看免费1级| 国产狼人综合免费视频| 国产精品v片在线观看不卡| 亚洲第一精品电影| 日韩av中文字幕在线播放| 国产成人免费av| 成人久久久久久| 成人免费福利视频| 成人黄色中文字幕| 欧美成人免费全部观看天天性色| 91在线观看免费高清| 在线中文字幕日韩| 在线不卡国产精品| 欧美日本在线视频中文字字幕| 亚洲偷欧美偷国内偷| 欧美成人午夜剧场免费观看| 久久99精品久久久久久青青91| 精品国产乱码久久久久酒店| 中文字幕不卡av| 久久午夜a级毛片| 中文字幕精品一区久久久久| 国模吧一区二区三区| 国产欧美一区二区三区视频| 亚洲国产另类久久精品| 欧美性猛交xxxxx水多| 亚洲欧美在线看| 自拍偷拍亚洲欧美| 午夜精品一区二区三区在线播放| 日本精品一区二区三区在线播放视频| 97在线观看视频| 久久久国产91| 91精品视频网站| 97成人精品视频在线观看| 欧美精品免费看| 麻豆国产精品va在线观看不卡| 7777kkkk成人观看| 懂色aⅴ精品一区二区三区蜜月| 亚洲欧美综合区自拍另类| 97人人爽人人喊人人模波多| 日韩视频在线观看免费| 久久精品国产久精国产一老狼| 在线观看国产精品淫| 亚洲xxxxx性| 日韩av中文字幕在线免费观看| 色综合久久天天综线观看| 日韩女优人人人人射在线视频| 69精品小视频| 91免费的视频在线播放| 亚洲欧洲高清在线| 精品呦交小u女在线| 亚洲色图35p| 国产精品久久久av| 91免费电影网站| 91欧美精品成人综合在线观看| 日韩美女中文字幕| 538国产精品一区二区在线| 久久男人资源视频| 日韩电影免费在线观看| 亚洲最新中文字幕| 国产精品麻豆va在线播放| 国产精品久久久久av免费| 岛国视频午夜一区免费在线观看| 亚洲最大成人免费视频| 久久久免费在线观看| 国产亚洲精品久久久久久牛牛| 国产精品久久久久aaaa九色| 欧美日韩亚洲一区二区| 中文字幕亚洲综合| 国产精品成人一区二区| 国产精品精品一区二区三区午夜版| 精品亚洲国产视频| 欧美精品免费播放| 国产成人一区二区三区电影| 欧美激情精品久久久久久免费印度| 欧美日韩黄色大片| 欧美性黄网官网| 国产精品91久久| 国产欧美日韩丝袜精品一区| 亚洲一区久久久| 久久久久久国产精品| 97香蕉超级碰碰久久免费的优势| 最近更新的2019中文字幕| 久久精品国产精品| 亚洲欧美制服综合另类| 国产三级精品网站| 欧美电影免费播放| 国产一区深夜福利| 福利视频一区二区| 日韩欧美在线免费观看| 国产亚洲a∨片在线观看| 久久香蕉国产线看观看网| 91色中文字幕| 国产精品高精视频免费|