Ich habe Code, der eine zufällige CGRect generiert, überprüft, ob es andere Rectures in einem vorherigen Array schneidet, und wenn es nicht tut, fügt es das neue Rect zum Array hinzu. Das funktioniert ganz gut, aber ich möchte auch sicherstellen, dass das zufällige CGRect nicht ein Bild in der Mitte des Bildschirms überlappt. Ich habe ein Rect erstellt, das das Bild mit viel zusätzlichem Platz an den Seiten umrahmt, aber während sich die zufälligen CGRects immer noch nicht schneiden, schneiden sie manchmal das mittlere Bild rect.CGRectIntersectsRect arbeitet inkonsistent
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]];
}
}
Als Nebenbei bemerkt, ist GRENZ eine größere rect, um sicherzustellen, dass keiner des Zufalls Rects ist zu weit vom Zentrum entfernt.
Sorry diese Antwort ist so spät, andere Dinge forderten meine Aufmerksamkeit und dies wurde auf den Abstellgleis gesetzt. Aber ich habe implementiert, was du geschrieben hast, und es hat mir geholfen, einige Probleme zu beheben, also danke! – lunadiviner