В моем разговоре о силовых макетах есть пример ограничивающего прямоугольника . Интеграция позиции Verlet позволяет определять геометрические ограничения (такие как ограничивающие поля и обнаружение столкновения ) внутри прослушивателя событий «tick»; просто переместите узлы в соответствии с ограничением, и симуляция будет соответствующим образом адаптирована.
Тем не менее, гравитация определенно является более гибким способом решения этой проблемы, поскольку она позволяет пользователям перетаскивать график за пределы ограничивающего поле временно, а затем график восстановится. В зависимости от размера графика и размера отображаемой области вы должны поэкспериментировать с различными относительными сильными сторонами силы тяжести и заряда (отталкивания), чтобы получить график.