이 실험에 대해
layoutWithLines() + measureText()로 각 글자의 초기 위치를 계산한 뒤, 물리 엔진을 적용한다. 매 프레임마다 중력을 누적하고, 바닥 충돌 시 반발 계수(0.24)와 마찰(0.76)을 적용해 자연스럽게 쌓인다. 캔버스를 좌우로 드래그하면 마우스 속도가 모든 글자에 힘으로 전달된다.
핵심 코드
// 매 프레임: 중력 누적 + 충돌
c.vy += GRAVITY // 중력 가속
if (c.y >= floor) {
c.y = floor
c.vy *= -BOUNCE // 바닥 반발
c.vx *= FRICTION // 마찰
}
// 드래그 → 흔들기
const shakeVX = mouseX - prevMouseX
c.vx += shakeVX * 0.35
c.vy -= Math.abs(shakeVX) * 0.06 // 위로 살짝 튀어오름