Procédé pour combiner des carrés de tuiles définis comme des points dans des vecteurs
La solution
La première chose que je peux penser est (probablement pas la façon la plus efficace):
1) Obtenir la zone de délimitation de votre carrelage ensemble - qui est min (x), min (y) max (x), max (y) pour tous les x et y de vos tuiles
2) Pour chaque ligne, commencez par STATE == VIDES, itérer sur chaque colonne: Les changements d'état à PLEINE lorsque vous appuyez sur un carré et videz lorsque vous trouvez un trou. Chaque État le temps passe de vide à plein, enregistrez le segment de droite à gauche de cette place et chaque fois ÉTAT va de plein à VIDER, sauf le droit segment de ligne de main de cette place.
3) Répéter ci-dessus dans l'axe Y
Maintenant, vous avez un ensemble contenant uniquement les segments de plus à l'extérieur, vous pouvez combiner ceux qui sont colinéaires etc et obtenir la forme générale.
Cela fonctionne pour les formes non-convexes et aussi si vous avez des trous dans votre carrelage.