Я надеюсь, что здесь все ясно, я постараюсь добавить изображения, чтобы помочь людям понять мою проблему. У меня есть очень простой генератор озера шума Перлина:
, который выводит озеро в виде массива точек:
[
{x: 0, y: 0},
...
]
Использование простого трассировщика для генерациимногоугольник из этих точек. Это работает очень хорошо, и я был доволен этим, пока не подумал о проблеме, которая может произойти, а затем обнаружил, что проблема действительно произошла. Когда у вас есть два отдельных озера в одном куске (как это)
, трассировщик многоугольника не может создать действительный многоугольник. Я полагаю, что решение состоит в том, чтобы пойти заранее и разделить точки на группы точек, я посмотрел, как это сделать, но все, что я нашел, это алгоритм, который должен был знать, сколько должно быть групп, прежде чем он сможет работать (что я и делаюне знаю). Я полностью озадачен и хотел бы получить несколько советов о том, с чего начать. Мне не нужен полный код ответа (я могу реализовать его сам), но концепция была бы хороша.
Я все еще буду осматриваться и пробовать что-то, пока жду ответов, хотя сомневаюсь в своих знанияхчто я смогу найти что-нибудь полезное. Да, и мой полигон трассировщик использует марширующие квадраты, если это важно.