와이어를 당기는 상자는 와이어에 장력을가합니다. 장력은 뉴턴 단위로 측정되는 힘입니다. 와이어와 환경 사이에 마찰이없는 간단한 가정을하면 와이어의 모든 지점에서 장력이 동일합니다.
예를 정적이라고 생각하면 와이어의 장력은 상자의 무게입니다.
T = m * g
여기서 m은 상자의 질량이고 g는 중력으로 인한 가속입니다 (즉, 9.8m / s ^ 2). 이것은 정적 경우에만 유효합니다. 동적 경우에서 계산하는 방법에 대한 설명은 아래를 참조하십시오.
와이어의 각 굽힘에서의 힘은 장력을 관련 방향으로 투영하는 것입니다. 예를 들어 스프링 물체의 끝 부분의 힘은 접촉 법선을 따르는 힘입니다.
F = T * cos(angle between wire and contact normal)
이 경우 접촉 법선 방향은 와이어 세그먼트 사이의 각도의 이등분입니다. 환경에서 두 번째로 표시된 지점의 힘은 긴장이나 다른 것에 영향을 미치지 않기 때문에 관련이 없습니다.
이제 동적 인 경우 장력은 단순히 와이어에 부착 된 상태로 유지하기 위해 상자에 적용하는 구속력입니다. 물리 엔진이 임펄스 기반이라면 장력은 다음과 같습니다.
T = impulse / timestep
이것은 전선을 환경에 감싸는 일반적인 알고리즘으로 이어집니다. 중요한 특성은 와이어의 총 길이입니다. 마지막 세그먼트 만 시뮬레이션하면됩니다. 모든 이전 세그먼트는 고정 된 것으로 간주 될 수 있습니다. 따라서 마지막 세그먼트의 길이를 알고 있으므로 전체 길이에서 이전 세그먼트의 길이를 빼십시오. 그런 다음 마지막 세그먼트는 간단한 스프링 제약 조건이 될 수 있습니다. 그런 다음 환경과 교차 할 때마다 세그먼트를 분할하고 굽힘이 펴질 때 분할을 제거하십시오.