Puede modelar esto mediante un conjunto de rectángulos "libres", empezando por uno solo con coordenadas de 0,0, tamaño (x, y). Cada vez que necesite agregar un rectángulo más, elija uno de los rectángulos "libres" restantes, genere un nuevo rectángulo (con una coordenada superior y un tamaño tal que quede totalmente contenido), y divida ese rectángulo, así como cualquier otra superposición " "rectángulo libre", de modo que los niños expresen el espacio libre restante. Esto dará como resultado de 0 a 4 nuevos rectángulos (0 si el rectángulo nuevo es exactamente del tamaño del antiguo rectángulo libre, 4 si está en el medio y así sucesivamente). Con el tiempo, obtendrás cada vez más áreas libres más pequeñas y más pequeñas, por lo que los rectángulos que crees también serán más pequeños.
Ok, no es una explicación muy elaborada, es más fácil de mostrar en la pizarra. Pero el modelo es uno que utilicé para encontrar la ubicación inicial para los componentes de interfaz gráfica de usuario recién cortados; es fácil hacer un seguimiento de los trozos de pantalla disponibles y elegir (por ejemplo) el área superior izquierda o superior.
http://gamedev.stackexchange.com/questions/6730/how-to-randomly-place-rectangle-inside-a-larger-bounding-rectangle-without-inter –