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

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

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

2020-05-23 14:18:31
字體:
供稿:網(wǎng)友

這篇文章主要介紹了C++判斷矩形相交的方法,涉及C++針對平面坐標(biāo)數(shù)學(xué)運算的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C++判斷矩形相交的方法。分享給大家供大家參考。具體如下:

已知2矩形原點和寬高,判斷2矩形相交,相交矩形

相交判斷原理:

假定矩形是用一對點表達的(minx, miny) (maxx, maxy),那么兩個矩形

rect1{(minx1, miny1)(maxx1, maxy1)}

rect2{(minx2, miny2)(maxx2, maxy2)}

相交的結(jié)果一定是個矩形,構(gòu)成這個相交矩形rect{(minx, miny) (maxx, maxy)}的點對坐標(biāo)是:

minx = max(minx1, minx2)

miny = max(miny1, miny2)

maxx = min(maxx1, maxx2)

maxy = min(maxy1, maxy2)

如果兩個矩形不相交,那么計算得到的點對坐標(biāo)必然滿足:

( minx > maxx ) 或者 ( miny > maxy )

判定是否相交,以及相交矩形是什么都可以用這個方法一體計算完成

設(shè)計3個類:

1. 點類:x,y

2. 矩形類:點,寬,高

3. 判斷相交類

程序?qū)崿F(xiàn):

 

 
  1. CPoint.h  
  2. #import <Foundation/Foundation.h> 
  3. @interface CPoint : NSObject  
  4. int x; //點坐標(biāo) 
  5. int y; 
  6. -(void) print; 
  7. -(void) setX: (int) vx; 
  8. -(void) setY: (int) vy; 
  9. -(void) setXY:(int) vx :(int) vy; 
  10. -(int) x; 
  11. -(int) y; 
  12. @end  
  13. CPoint.m 
  14. #import "CPoint.h" 
  15. @implementation CPoint 
  16. -(void) print 
  17. NSLog(@"the point is (%i, %i)",x,y); 
  18. -(void) setX: (int) vx 
  19. x = vx; 
  20. -(void) setY: (int) vy 
  21. y = vy; 
  22. -(void) setXY:(int)vx :(int)vy 
  23. x = vx; 
  24. y = vy; 
  25. -(int) x 
  26. return x; 
  27. -(int) y 
  28. return y; 
  29. @end 
  30. CRect.h 
  31. #import <Foundation/Foundation.h> 
  32. #import "CPoint.h" 
  33. @interface CRect : NSObject 
  34. int w; //矩形長 
  35. int h; //矩形高 
  36. -(void) print; 
  37. -(int) w; 
  38. -(int) h; 
  39. -(void) setW: (int) vw; 
  40. -(void) setH: (int) vh; 
  41. -(void) setWH: (int) vw :(int) vh; 
  42. -(CPoint *) origin; 
  43. -(void) setOrigin: (CPoint *) pt; 
  44. @end 
  45. CRect.m 
  46. #import "CRect.h" 
  47. @implementation CRect 
  48. CPoint *origin; //點 
  49. -(void) print 
  50. NSLog(@"the rect:(x:%i, y:%i, w:%i,h:%i)",origin.x, origin.y, w, h); 
  51. -(int) w 
  52. return w; 
  53. -(int) h 
  54. return h; 
  55. -(void) setW:(int)vw 
  56. w = vw; 
  57. -(void) setH:(int)vh 
  58. h = vh; 
  59. -(void) setWH:(int)vw :(int)vh 
  60. w = vw; 
  61. h = vh; 
  62. -(CPoint *) origin 
  63. return origin; 
  64. -(void) setOrigin:(CPoint *)pt 
  65. origin = pt; 
  66. @end 
  67. DoCRect.h 
  68. #import <Foundation/Foundation.h> 
  69. #import "CRect.h" 
  70. @interface DoCRect : NSObject 
  71. -(BOOL) isIntersect:(CRect *) rect1 :(CRect *) rect2; //矩形相交否 
  72. -(CRect *) intersectRect: (CRect *) rect1 :(CRect *) rect2; //相交矩形 
  73. @end 
  74. DoCRect.m 
  75. #import "DoCRect.h" 
  76. @implementation DoCRect 
  77. //矩形是否相交 
  78. -(BOOL) isIntersect:(CRect *)rect1 :(CRect *)rect2 
  79. int minx = MAX(rect1.origin.x, rect2.origin.x); 
  80. int miny = MAX(rect1.origin.y, rect2.origin.y); 
  81. int maxx = MIN(rect1.origin.x+rect1.w, rect2.origin.x+rect2.w); 
  82. int maxy = MIN(rect1.origin.y+rect1.h, rect2.origin.y+rect2.h); 
  83. if (minx>maxx || miny>maxy) 
  84. return NO; 
  85. return YES; 
  86. -(CRect *) intersectRect:(CRect *)rect1 :(CRect *)rect2 
  87. int minx = MAX(rect1.origin.x, rect2.origin.x); 
  88. int miny = MAX(rect1.origin.y, rect2.origin.y); 
  89. int maxx = MIN(rect1.origin.x+rect1.w, rect2.origin.x+rect2.w); 
  90. int maxy = MIN(rect1.origin.y+rect1.h, rect2.origin.y+rect2.h);  
  91. CRect * rect = [[CRect alloc] init]; 
  92. CPoint *p = [[CPoint alloc] init]; 
  93. if (NO == [self isIntersect:rect1 :rect2])//no isIntersect 
  94. [p setXY:minx :miny]; 
  95. [rect setOrigin:p]; 
  96. rect.w = 0; 
  97. rect.h = 0; 
  98. return rect; 
  99. [p setXY:minx :miny]; 
  100. [rect setOrigin:p]; 
  101. rect.w = ABS(maxx-minx); 
  102. rect.h = ABS(maxy - miny); 
  103. return rect;  
  104. @end 
  105. main.m 測試 
  106. #import <Foundation/Foundation.h> 
  107. #import "DoCRect.h" 
  108. int main(int argc, const char * argv[]) 
  109. @autoreleasepool 
  110. NSLog(@"Hello,判斷矩形相交,返回矩形的原點和長高"); 
  111. //初始化對象 
  112. CRect *myrect1 = [[CRect alloc] init]; 
  113. CRect *myrect2 = [[CRect alloc] init]; 
  114. CPoint *p1 = [[CPoint alloc] init]; 
  115. CPoint *p2 = [[CPoint alloc] init]; 
  116. DoCRect *dorect = [[DoCRect alloc] init]; 
  117. //原點變量 
  118. [p1 setXY:200 :420]; 
  119. [p2 setXY:400 :300]; 
  120. //設(shè)置矩形原點 
  121. [myrect1 setOrigin:p1]; 
  122. [myrect1 setWH:250 :75]; 
  123. [myrect1 print]; 
  124. [myrect2 setOrigin:p2]; 
  125. [myrect2 setWH:100 :180]; 
  126. [myrect2 print]; 
  127. //判斷2矩形是否相交 
  128. BOOL insersect = [dorect isIntersect:myrect1 :myrect1]; 
  129. NSLog(@" two rect is :%@",insersect?@"YES":@"NO"); 
  130. //返回相交矩形 
  131. //CRect *inserectRect = [[CRect alloc] init]; 
  132. CRect *inserectRect = [dorect intersectRect:myrect1 :myrect2]; 
  133. [inserectRect print]; 
  134. return 0; 

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产人妻大战黑人20p| 欧美日韩在线看| 和岳每晚弄的高潮嗷嗷叫视频| 无码中文字幕色专区| 亚洲美女av网站| 综合欧美视频一区二区三区| 精品日本美女福利在线观看| 久色婷婷小香蕉久久| 色欧美88888久久久久久影院| 久久狠狠一本精品综合网| 成人精品在线看| 欧美亚洲国产视频| 韩国av免费在线| 美国黄色特级片| 午夜激情电影在线播放| 99xxxx成人网| 成人中文字幕+乱码+中文字幕| 亚洲aⅴ怡春院| 欧美a一区二区| 欧美日韩一级黄色片| 黄页大全在线免费观看| 国产亲近乱来精品视频| 亚洲熟妇无码av在线播放| www.超碰在线.com| 国产视频一区二区三区四区| 最近中文字幕在线6| 美女黄色免费看| 91电影在线观看| 天天想你在线观看完整版电影免费| 亚洲私人影院在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| fc2ppv素人在线| 日本sm极度另类视频| 宅男噜噜噜66国产免费观看| 99久re热视频这里只有精品6| 亚洲日本护士毛茸茸| 国产欧美日韩精品丝袜高跟鞋| 女同互添互慰av毛片观看| 亚洲一区二区三区四区中文| 一本在线免费视频| 国产又大又长又粗| 亚洲专区第一页| 国产盗摄在线观看| 麻豆亚洲精品| 午夜精品久久久久久久91蜜桃| 亚洲男女自偷自拍图片另类| 亚洲精品一区二区久| 偷窥自拍欧美色图| 中国毛片在线观看| 99精品国产高清在线观看| 精品久久久久av影院| 国产精品va在线观看无码| 欧美在线不卡一区| 9999精品免费视频| 一边摸一边做爽的视频17国产| 成人av在线天堂| 成人亲热视频网站| 中文字幕在线免费看线人| 欧美人成在线观看ccc36| 国产精品电影久久久久电影网| 中文字幕一区二区三区人妻不卡| 久久99国产精一区二区三区| 美女主播精品视频一二三四| 精品在线播放视频| 日韩一区二区三区在线免费观看| 超污视频在线播放| 欧美日韩大陆一区二区| 99re国产在线| 欧洲性视频在线播放| 特一级黄色大片| 无码一区二区精品| 视频一区二区在线播放| 成人在线黄色| 国产日产精品一区二区三区四区| 色悠久久久久综合先锋影音下载| 亚洲成av人综合在线观看| 精品少妇一区二区三区视频免付费| 在线免费日韩片| 在线一区二区三区四区| 国产精品99久| 国产精品免费区二区三区观看| 亚洲视频一区在线播放| 亚洲欧洲一区二区| 欧美一级大片在线免费观看| 91日韩欧美| 亚洲一区二区三区观看| 欧洲伦理片一区 二区 三区| 亚洲一区二区在线视频| 国产亚洲精品网站| 久久免费看毛片| 国产在线精品二区| 色哟哟精品视频| 性感少妇一区| 黄污视频在线看| 我看黄色一级片| 久久99精品国产91久久来源| 在线 丝袜 欧美 日韩 制服| 欧美日韩免费网站| www.四虎精品| 无码人妻丰满熟妇区毛片18| 精品免费视频一区二区| www.成人精品| 日韩亚洲欧美一区二区| 国产在线高潮| 欧美va亚洲va国产综合| 岛国视频一区免费观看| 久色视频在线观看| 国产精品69一区二区三区| 免费欧美激情| 国产不卡一区二区在线播放| 老司机午夜在线视频| 毛片在线视频播放| 男人天堂综合| 有码av在线| 免费看黄资源大全高清| 亚洲成年人在线观看| 亚洲一区精品视频在线观看| 狠狠操图片视频| 日韩在线视频精品| 一区二区91| 好吊妞国产欧美日韩免费观看网站| www.一区二区三区.com| 国产一级片av| 日本不卡一区在线| 日本免费中文字幕在线| 国产无码精品一区二区| av首页在线| 亚洲专区中文字幕| 伊人久久大香线蕉无限次| 国产精品7m视频| 久久精品人人做人人综合| 中文字幕色av一区二区三区| 丰满大乳少妇在线观看网站| 国产欧美精品一区二区三区四区| 国产69精品久久久久777| 日韩欧美另类中文字幕| 国产精品久久久久久av下载红粉| 亚洲va中文字幕| 精品亚洲aⅴ无码一区二区三区| 亚洲毛片欧洲毛片国产一品色| 色哟哟入口国产精品| 亚洲精品一二三四| 91精品国产高清自在线看超| 中文字幕高清视频| 欧美日韩三级电影在线| 欧美激情精品久久久六区热门| 青青草视频在线免费观看| 日韩av电影免费观看高清完整版| 亚洲一区二区三区777| 国产在线观看高清视频| 久久99国产精品尤物| 伊人影院在线观看视频| 亚洲黄色三级| 小舞被吸乳羞羞网站视频| 午夜电影亚洲| 久久精品欧美一区| 欧美大秀在线观看| 欧美日韩国产一区中文午夜| 日韩精品一区二区三区不卡| 一级网站免费观看| 亚洲福利在线播放| 国产ts人妖一区二区三区| 欧美日韩国产综合视频| 亚洲天堂av线| 在线欧美日韩精品| 91在线观看视频| 成人嫩草影院| 国产高清一区日本| 国产亚洲精品久久飘花| 精品在线免费观看| 无码av免费精品一区二区三区| 久久综合av免费| 日本福利片免费看| 亚洲欧洲国产精品| ㊣最新国产の精品bt伙计久久| 欧美亚洲国产激情| 久久夜夜操妹子| 精品一区二区三区久久久| 蜜桃特黄a∨片免费观看| 免费精品99久久国产综合精品| 国产熟妇搡bbbb搡bbbb| 免费在线观看h片| 国产精品jizz在线观看老狼| a国产在线视频| 国内精品视频一区二区三区| 日本不卡一区二区在线观看| 亚洲av无码精品一区二区| 三级网站在线免费观看| 国产1区2区| av黄色免费在线观看| 久久亚洲中文字幕无码| 三级不卡在线观看| 久久久久国产精品嫩草影院| 日韩久久视频| 亚洲精品国产一区二区三区| 日韩激情视频一区二区| 亚洲成av人片在线观看香蕉| 天天做天天干天天操| 亚洲国产精品无码av| 热国产热中文视频二区| 黄色av网站在线观看| av在线免费电影| 亚洲伊人一本大道中文字幕| 日本亚洲欧洲精品| 欧美日韩蜜桃| 欧美中日韩一区二区三区| 午夜视频国产| 青青草视频在线免费观看| 日韩欧美三级| 国产在线视频99| 男人天堂综合| 日韩视频在线免费播放| 欧美色大人视频| 极品av少妇一区二区| 国产日韩欧美一二三区| 九色在线观看视频| 中文字幕成人精品久久不卡| 欧美美女bb生活片| 成人软件在线观看| 久久亚洲二区| 国产午夜精品久久久久免费视| 国产精品久久久久99| 1024成人网色www| 国产一区二区三区四区二区| 99久久久精品免费观看国产| 欧洲一区二区三区免费视频| 日本韩国精品在线| 蜜桃传媒在线| 日韩精品一区二区免费| 黄色免费在线观看| 欧美一区2区视频在线观看| 中文在线资源观看视频网站免费不卡| 国内在线免费视频| 中文字幕在线不卡一区| 成人一二三区| 色视频在线免费观看| 自拍日韩亚洲一区在线| 国产精品嫩草99a| 神马久久久久| 亚洲永久字幕| 欧美色黄视频| 涩涩漫画在线观看| aaa在线观看| 99riav视频一区二区| 亚洲成av人片一区二区密柚| 成人黄色av网站在线| 日韩欧美一区电影| 日本精品久久久| 国产欧美日韩电影| 狠狠综合久久av一区二区老牛| 99热这里只有精品9| 亚洲欧美文学| 亚洲少妇在线| 国产黄视频在线| 中文字幕亚洲不卡| 国产在线播放一区二区| 国产午夜在线观看| 91www成人久久| 上原亚衣加勒比在线播放| 国产在线不卡一卡二卡三卡四卡| 日韩一区二区免费高清| 久久精品aaaaaa毛片| 91网站免费视频| 91aaa在线观看| 四虎地址8848jia| 天天激情综合| 久久久久久久久久久免费| 国产喷水福利在线视频| 日韩午夜在线观看视频| 国产真实乱子伦精品视频| 四虎影视最新网址| 成a人v在线播放| 欧美日韩国产一区中文午夜| 自拍亚洲欧美老师丝袜| 醉酒壮男gay强迫野外xx| 久久精品女人毛片国产| 91亚洲精品乱码久久久久久蜜桃| 91亚洲午夜精品久久久久久| 欧美一级片网址| 日韩电影中文字幕一区| 亚洲精品一区二区在线播放∴| 成人福利av| 伊人久久中文字幕| 美女被人操网站| 美女网站视频久久| 亚洲成人精品电影在线观看| 免费av不卡| 伊甸园精品99久久久久久| www.日韩欧美| 成人网在线播放| 秋霞无码一区二区| 国产视频一区二区三区四区五区| 国产无遮挡又黄又爽免费软件| 久久一级大片| 影音先锋中文字幕影院| 北条麻妃在线一区二区| 成人激情电影一区二区| 中文字幕免费观看| 老汉色影院首页| 国产精品第一页在线观看| 相泽南亚洲一区二区在线播放| 视频在线国产| xx欧美xxx| 国产福利一区在线观看| 欧美日韩国产成人在线| 污污视频网站在线| 国产青草视频在线观看视频| 美女看a上一区| 欧美精品一区视频| 你懂的视频在线免费| 国产精品日本一区二区不卡视频| 亚洲一区日韩| 米奇精品一区二区三区| 久久野战av| 亚洲视频香蕉人妖| 三级在线观看免费大全| 性欧美18+| 日韩视频中文字幕在线观看| 九九在线观看免费视频| 天堂在线观看| 人妻夜夜爽天天爽| 国语自产精品视频在线看一大j8| 国产清纯白嫩初高生在线观看91| 又黄又爽在线免费观看| 欧美人成在线观看ccc36| 日韩免费在线免费观看| 日本色护士高潮视频在线观看| 免费国产羞羞网站视频|