Comme entrée nous n'avons un ensemble de segments, voici un exemple:algorithme pour obtenir toutes les différentes zones d'une figure
[AB] = [(0, 0), (0, 4)] ; [BC] = [(0, 4), (2, 6)]
[CD] = [(2, 6), (4, 0)] ; [DA] = [(4, 0), (0, 0)]
[CE] = [(2, 6), (5, 6)] ; [EF] = [(5, 6), (5, 3)]
[FG] = [(5, 3), (3, 3)] ; [HI] = [(2, 1), (4, 5)]
[JK] = [(1, 3), (2, 3)] ; [KL] = [(2, 3), (1, 1)]
[LJ] = [(1, 1), (1, 3)]
(désolé je fait de mon mieux, mais mes images sont un peu floue)
J'ai besoin de trouver toutes les zones individuelles. De la figure ci-dessus j'aurais 3 zones différentes, JKL, CEFG et {ABCD, JKL}:
Notez que les segments qui ne font pas de zone sont ignorés (tels que [HI]), et une zone ne peut pas être divisé par un segment, par exemple:
je pouvais le faire facilement avec un code spaghetti qui serait tout à fait unefficient, mais avant de le faire, avez-vous une idée de un algorithme sur lequel je peux commencer à travailler? Je cherche quelque chose d'aussi efficace que possible ...
Est-il possible que les lignes se croisent, disent par exemple si H était en dessous de AD et donc GH intersecte AD? – m69
Trouver tout le graphe connexe –
Que voulez-vous dire par "ne peut être divisé par un segment"? – Surt