Коробка, що тягне за дріт, натягує на дріт. Напруга - це сила, вимірювана в ньютонах. Якщо ми зробимо кілька спрощених припущень (немає тертя між дротом і навколишнім середовищем), то напруга однакова у всіх точках вздовж дроту.
Якщо ми вважаємо ваш приклад статичним, то напруга на дроті - це лише вага коробки:
T = m * g
де m - маса коробки, а g - прискорення за рахунок сили тяжіння (тобто 9,8 м / с ^ 2). Зауважте, що це справедливо лише в статичному випадку, див. Нижче для пояснення, як обчислити його в динамічному випадку.
Сила на кожен вигин в дроті - це лише проекція напруги на відповідний напрямок. Наприклад, сила на кінчик пружинного об'єкта - це сила вздовж нормального контакту, величини:
F = T * cos(angle between wire and contact normal)
У цьому випадку нормальним напрямком контакту буде бісекція кута між дротяними сегментами. Сила у вашій другій позначеній точці навколишнього середовища не має значення, оскільки вона не впливає на напругу чи щось інше.
Тепер у динамічному випадку напруга - це просто обмежувальна сила, яку ви застосовуєте до коробки, щоб вона була прикріплена до дроту. Отже, якщо фізичний двигун базується на імпульсі, напруга якраз:
T = impulse / timestep
Це призводить до загального алгоритму обертання дроту навколо навколишнього середовища. Важливою властивістю є загальна довжина дроту. Потрібно моделювати лише останній сегмент, усі попередні сегменти можна вважати виправленими. Тож довжина останнього відрізка відома, просто віднімайте довжини попередніх відрізків від загальної довжини. Тоді останній відрізок може бути простим весняним обмеженням. Потім просто розділіть сегмент кожного разу, коли він перетинається з навколишнім середовищем, і видаліть розщеплення, коли вигин випрямляється.