C语言 有两个矩形 求重叠面积,计算两个矩形重叠面积的简单方法
實驗需要,需要計算兩個矩形重疊面積
想來想去覺得挺復雜,搜了下,看見一個超給力的方法
這里分享下:
function D = DecideOberlap(Reframe,GTframe)
x1 = Reframe(1);
y1 = Reframe(2);
width1 = Reframe(3);
height1 = Reframe(4);
x2 = GTframe(1);
y2 = GTframe(2);
width2 = GTframe(3);
height2 = GTframe(4);
endx = max(x1+width1,x2+width2);
startx = min(x1,x2);
width = width1+width2-(endx-startx);
endy = max(y1+height1,y2+height2);
starty = min(y1,y2);
height = height1+height2-(endy-starty);
if width<=0||height<=0
D = 0;
else
Area = width*height;
Area1 = width1*height1;
Area2 = width2*height2;
ratio = Area/(Area1+Area2-Area);
if ratio>=0.5
D = 1;
else
D = 0;
end
endratio就是計算出來的重疊率
函數中的兩個參數分別是兩個矩形的左上角點的坐標和矩形長,寬。
代碼效率很高,寫成c也很容易
總結
以上是生活随笔為你收集整理的C语言 有两个矩形 求重叠面积,计算两个矩形重叠面积的简单方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uni-app 188修复弹框问题
- 下一篇: 南京市城乡地籍信息一体化管理的几点思考