La caja que tira del cable aplica una tensión al cable. La tensión es una fuerza, medida en Newtons. Si hacemos algunos supuestos simplificadores (sin fricción entre el cable y el entorno), entonces la tensión es la misma en todos los puntos a lo largo del cable.
Si consideramos que su ejemplo es estático, la tensión en el cable es solo el peso de la caja:
T = m * g
donde m es la masa de la caja yg es la aceleración debida a la gravedad (es decir, 9.8 m / s ^ 2). Tenga en cuenta que esto solo es válido en el caso estático, consulte a continuación para obtener una explicación de cómo calcularlo en el caso dinámico.
La fuerza en cada curva en el cable es entonces solo la proyección de la tensión en la dirección correspondiente. Por ejemplo, la fuerza en la punta del objeto de resorte es una fuerza a lo largo del contacto normal, de magnitud:
F = T * cos(angle between wire and contact normal)
En este caso, la dirección normal del contacto sería la bisección del ángulo entre los segmentos del cable. La fuerza en su segundo punto marcado sobre el medio ambiente es irrelevante, ya que no tiene impacto en la tensión ni en ninguna otra cosa.
Ahora, en el caso dinámico, la tensión es simplemente la fuerza de restricción que aplica a la caja para mantenerla unida al cable. Entonces, si el motor de física está basado en impulsos, la tensión es solo:
T = impulse / timestep
Esto lleva al algoritmo general para envolver el cable alrededor del entorno también. La propiedad importante es la longitud total del cable. Solo el último segmento necesita ser simulado, todos los segmentos anteriores pueden considerarse fijos. Por lo tanto, se conoce la longitud del último segmento, solo resta las longitudes de los segmentos anteriores de la longitud total. Entonces el último segmento puede ser una simple restricción de resorte. Luego, simplemente divida un segmento cada vez que se cruza con el entorno y elimine la división cuando la curva se endereza.