Какое есть решение для такой задачи. Что прочесть. (надеюсь спецы по квантмеху,
теории струн, и теорий возмущения подскажут)
Задача. Какой оптимальный математический алгоритм можно придумать для функции расчета
- Есть физический движок.2d(или 3d)
- Есть куча 2d полигонов которые соединяются друг с другом, с каким-то коэффициентом жёсткости и прочности. Допустим из них составили Дерево.
- (Возможно соединение непосредственное (друг за другом с прямым соединением), так и без прямого соединения, допустим через нить или балку, как-то 2 веточки на разных ветках соединили)
- Теперь начинаем двигать, крутить дерево, ветки начинаются трястись. Сталкиваться. отваливаться.
Вопрос, какой есть алгоритм обхода менее чем O(n) сложности, где n-число полигонов. (Кажется что можно не по самим частям проходить)
Есть решение, считать по каждому прямоугольнику. И от точки, начинать пересчитывать вектора импульсов, сил, соотносить с коэф-ом жёсткости, и угол в точки соединения изменять. Получается качание.
Первое что приходит в голову, объединять соседние части в одну(допустим при сильной прочности или при нахождение в одной плоскости(2 квадрата в один прямоугольник), И можно в 2-n раз уменьшать.
А есть ли более быстрое решение. С помощью криволинейных интегралов. Ведь можно вместо частей, представить векторное поле . И получить какую-то одну функцию... Короче в этом и вопрос, но до конца не понимаю.
Но что-то должно быть. К примеру, когда вы качаете дерево. То Огромное число полигонов Коррелируют. Их изменение ориентации скооперировано(допустим уберем столкновение).
А при слабом моменте угла поворота. При сильной прочности большие ветки, и ближе корневые ветки, не будут колыхаться. Отсюда вывод, что можно точно придумать быстрее O(n) алгоритм.
Можно еще для 1 мерного пространства представить, как последовательно соединённые точки.