Здравствуйте. Пишу симуляцию пружины при помощи ODE и Panda3D для визуализации. С простым движением всё просто: прикладывается сила пропоционально расстоянию, вычитается сила пропоционально скорости и тело плавно возвращается в заданную точку. Если пропорционально скорости не вычитывать, тело совершает гармонические колебания в окрестностях заданной точки. С вращением и моментом полный ахтунг. Ни матрицы вращения, ни их производные, ни их арккосинусы и арксинусы не дают результата. В лучшем случае тело раскручивается вокруг 0Z, в худшем совершает рандомные вращения и улетает в космос. Держаться заданного угла не хочет ни в какую.
Самая успешная реализация вращения у меня пока учитывает вращение только по 0X и 0Y. У тела получаем кватернион и прикладываем момент пропорционально X или Y. Само собой любое отклонение вокруг оси Z влечёт раскручивание и полёт в космос. Если тело вокру Z не вращается, тело успешно держит заданный угол даже при прикладывании внешних сил.
Перечитал тонну литературы, сломал себе мозг ещё больше. Помогите ламеру сделать так, чтобы пружина работала с произвольным углом наклона.