あなたはUIImageView
s内の画像は、常に円(またはUIImageView
sは常に、正方形になる)になることを確信している場合、あなたは
CGRect frame1 = image1.frame;
CGRect frame2 = image2.frame;
CGPoint center1 = CGPointMake(CGRectGetMidX(frame1), CGRectGetMidY(frame1));
CGPoint center2 = CGPointMake(CGRectGetMidX(frame2), CGRectGetMidY(frame2));
CGFloat dx = center1.x - center2.x;
CGFloat dy = center2.x - center2.y;
float squaredDistance = dx * dx + dy * dy;
CGFloat radius1 = frame1.size.width/2;
CGFloat radius2 = frame2.size.width/2;
CGFloat minDistance = radius1 + radius2;
if (squaredDistance <= minDistance * minDistance) {
//Intersect
} else {
//Do not intersect
}
ような何かを行うことができ、私はすべてがパラメトリック作ってみましたが、もちろん、UIImageView
のフレームが固定されている場合は、たとえば#define
ディレクティブを使用して、より簡単なコードを書くことができます。例えば
、あなたは最初の画像は50×50であり、第二は、あなたが
#define RADIUS1 25
#define RADIUS2 30
のようなものを書いて、あなたのコードを簡素化することができ60x60であることを知っている場合。
各円はUIImageView
のフレームに刻印されているものとします。そうでない場合は、半径を正確に測定する正確な比率を知る必要があります。 (フレームにサークルが刻まれている方がずっと簡単です)