ランダムCGRectを生成し、以前の配列の他の矩形と交差しているかどうかをチェックし、そうでない場合は新しい矩形を配列に追加するコードがあります。これは完璧に機能しますが、ランダムCGRectも画面中央の画像と重ならないようにしたいと考えています。私は余分なスペースを余分にして画像を輪郭を描く矩形を作成しましたが、ランダムなCGRectはまだ交差しませんが、時には中央のイメージrectと交差することがあります。追記としてCGRectIntersectsRectが一貫していない
CGRect aRandomFrame = CGRectMake((aRandomX - 50), (aRandomY - 50), 100, 100);
CGRect imageRect = CGRectMake((self.fixation.center.x - 50), (self.fixation.center.y - 50), 100, 100);
if (CGRectContainsRect(BOUNDARY, aRandomFrame)) {
BOOL isValidFrame = YES;
for (NSValue *aFrameValue in [self points]) {
CGRect aFrame = [aFrameValue CGRectValue];
if (CGRectIntersectsRect(aFrame, aRandomFrame) || CGRectIntersectsRect(imageRect, aRandomFrame)) {
isValidFrame = NO;
break;
}
}
if (isValidFrame) {
[[self points] addObject:[NSValue valueWithCGRect:aRandomFrame]];
}
}
、境界がランダムrectsのどれもが、あまりにも遠く中心部からではないことを確認する大きな矩形です。
申し訳ありませんが、この応答は非常に遅いです、他のものが私の注意を要求し、これはバックバーナーに置かれました。しかし、私はあなたが置いたものを実装したので、いくつかの問題のトラブルシューティングに役立ちました。ありがとうございます! – lunadiviner