Я збираюся йти проти зерна тут і пропоную, замість того, щоб попередньо генерувати свої криві, просто обробляти його за кадром, використовуючи (наприклад) ту саму логіку, яку ви використовували для створення настанови -прийняття .
Це буде набагато простіше і, мабуть, реалістичніше, оскільки вам не потрібні спеціальні випадки, коли між двома точками є стіни - ви просто обробляєте виявлення зіткнень, як зазвичай.
Мінус - рух буде виглядати неоптимально. Об'єкт завжди пройде найбільш прямий шлях від однієї точки до іншої, тобто, на відміну від сплайну, він не почне повертатись у напрямку 3, поки він вже не пройшов шлях 2. Залежно від вашої ситуації, це може бути, а може і не бути виправленим, налаштовуючи свої точкові точки (якщо це навіть проблема).