Подскажите, получится это реализовать ограничением xt и yt диапазоном между минимальным и максимальным значением в xArray и yArray?
То есть распределяем 100 точек по нужным координатам, соединяем их и получаем нужную кривую.
но общая картина остаётся невернойВ смысле - не верной? Она верная. Такая полиномиальная кривая обязательно на бесконечности x уйдет в бесконечность по y. Полиномы Лагранжа лишь гарантируют, что кривая пройдет через ключевые точки. А дальше она может идти как угодно.
xt делать a. При вычислении p надо домножать на yArray[i], а не x. Все p в цикле по i надо будет просуммировать - это и будет значение yt.
Чтобы генерировать структуры, надо сначала сгенерировать ландшафт. Возможно несколько соседних чанков тоже (по размеру структуры). Потом среди них посмотреть, в каких точках структура может теоретически быть (перепад высот, биом и т.д). Потом надо какой-то другой шум взять в качестве случайной величины и с заданной вероятностью решить, в каких точках структуры генерируются. Потом остается только аккуратно их впендюрить.
В качестве случайной величины можно, например, взять какой-то шум. С резкими перепадами высот, чтобы структуры рядом не спавнились. Надо считать, что стурктура ставится там, где этот шум имеет достаточно большое значение (если все условия для возможности спавна выполняются).
Трюк генерации в следующем: научитесь генерировать какбы всю карту целиком, без разбития на чанки. Эта генерация будет в несколько проходов. Сгенерили высоту, биом, разлили воду, растительность, структуры. И вот когда вам надо разбить генерацию на чанки, чтобы сгенерировать вот этот вот чанк на этапе N, вам надо его и все соседние сгенерировать до этапа N-1. Причем эти соседние чанки могут быть за границей видимости и не требовать генерации по всем этапам. Тут надо все лениво генерировать и кешировать.
Чем больше у вас структуры, тем больше чанков надо генерировать вокруг локации.