이 실험에 대해
세 페이즈를 반복한다: assembling(흩어진 위치에서 제자리로 스프링 수렴), holding(완성 상태 유지), scattering(새 랜덤 좌표로 이동 후 텔레포트). 각 글자의 목표 좌표만 전환하면 되고, 실제 움직임은 스프링 물리가 자동으로 처리한다.
핵심 코드
// 페이즈에 따라 목표 좌표 전환
const target = phase === 'scattering'
? { x: c.scatterX, y: c.scatterY }
: { x: c.restX, y: c.restY }
// 스프링 수렴 (매 프레임)
c.vx += (target.x - c.x) * 0.10
c.vy += (target.y - c.y) * 0.10
c.vx *= 0.78 // 감쇠
c.x += c.vx