1 クラスソリューション: 2 DEF checkOverlap(自己、半径:INT、x_center:INT、y_center:INT、X1:INT、Y1:INT、X2:INT、Y2:INT) - > BOOL: 3 4 位中心のCOORDSを取得します長方形の 5 C1 =(X2 + X1)/ 2 6 C2 =(Y2 + Y1)/ 2 7 8 #xの円と長方形の中心間の距離を取得、Y方向 9つの #3クワッドにおける円のと仮定する中心のためのABSと第1クワッド矩形の 10 - V1 = ABS(x_center C1) 11 V2 = ABS(y_center - C2) 12 13 #幅と矩形のな長さの取得半分 14 H1 =(X2 - X1)/ 2 15 H2 =(Y2 - Y1)/ 2 16 17 #矩形の辺の(I)の半分との間の距離の差(H1、H2)( ⅱ)の円と長方形の間の距離 18 位それは例えばについて陰性であることができます。円は長方形に完全にある場合。したがって、ゼロと最大を取って 19 -最大U1 =(0、V1 H1) 20 -最大U2 =(0、V2 H2) 21 22 #さて、この最後のステップのために自分自身を考えてみる 23 #ヒントが斜辺です! 24 リターン(U1 * U1 + U2 * U2 <=半径* 半径) 25 26 #希望あなたはそれを得る:)
アルゴリズムのタイプ:ジオメトリの計算。