用matlab判断两个球是否相交,判断两个矩阵相交
判斷兩個矩陣相交
最近在回顧hihocoder上自己做過的題,看到清理海報這道題目,http://hihocoder.com/problemset/problem/1273?sid=707390當初比賽做的時候感覺挺難的,今天看到難度才是lv2的時候小小震驚了一下,再仔細讀一下題,才發現能撕掉海報的條件是四個角中至少有一個沒有被覆蓋,而不是有部分未被覆蓋。以后要在桌子上寫上“認真讀題“四個大字了。
言歸正傳,這題目沒什么難的,但是有一個小問題還是挺有意思的,就是如何判斷兩個矩陣相交?其中兩個矩陣的邊都是與坐標軸平行的。
首先來看一下如何判斷兩個區間相交。假設這兩個線段區間分別為(x1,y1),(x2,y2),如果這兩個區間有交集,那么交集部分應該是(x,y),其中x=max(x1,x2),y=min(y1,y2),換言之,如果max(x1,x2) < min(y1,y2),那么這兩個區間有交集。
再來看一下如何判斷兩個矩陣相交。兩個矩陣相交實際上就是兩個矩陣有公共的面積,也就是說兩個矩陣在x軸上的投影有交集,并且在y上的投影也有交集。投影是否有交集實際上就是區間是否有交集,這就是剛剛闡述的問題。這個問題就迎刃而解了。 用數學化的表達來說,如果矩陣用其左下角和右上角的點的坐標來表示。存在兩個矩陣 A((x11,y11),(x21,y21)),B((x12,y12),(x22,y22)), 兩個矩陣在x軸上的投影分別為 (x11,x21)和(x12,x22) 那么兩個矩陣在x軸上的投影有交集的條件就是 max(x11,x12) < min(x21,x22) 同理,在y軸上的投影有交集的條件就是 max(y11,y12) < min(y21,y22) 那么兩個矩陣有交集的條件就是 max(x11,x12) < min(x21,x22) && max(y11,y12) < min(y21,y22)
總結
以上是生活随笔為你收集整理的用matlab判断两个球是否相交,判断两个矩阵相交的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: React学习笔记(二) | 受控组件
 - 下一篇: html5实现短信验证修改密码,thin