[TypeScript] 제스처로 대화하기. #11 - 플릭(with. 변위) 편
Table of contents
이번 편은 이전 편으로부터 이어집니다.
지난 편에서는 간단히 플릭에 대한 초기 속도를 계산해 봤습니다. 그렇다면 이것을 어떻게 활용할 수 있을까요? 여러분의 관심사는 결국 얼마나 이동해야 하는지일 것입니다. 이를 위해서는 시간에 따른 속도를 알 필요가 있습니다.
등가속도 운동에서의 속도는 \(v = v_0 + at\) 입니다. 각각 \(v_0\) = 초기 속도, \(a\) = 가속도, \(t\) = 시간입니다. 속도는 점차 감속해야 하므로 가속도는 속도와 반대 방향을 가져야 합니다. 또 적절한 수치가 필요한데 여기서는 0.0025로 하겠습니다. 이는 판단에 따라 조절할 수 있습니다.
const acceleration = -Math.sign(velocity) * 0.0025;
변위는 속도를 시간에 대해 적분한 것과 같습니다. 따라서 \(s = v_0t + \frac{1}{2}at^2\) 가 됩니다.
function findDisplacementOverTime(
initialVelocity: number,
acceleration: number,
time: number
): number {
return initialVelocity * time + (acceleration / 2) * time ** 2;
}
플릭을 통한 운동 방향은 반전될 수 없으므로 속도가 0이 되면 멈춰야 합니다. 이 시점은 다음과 같이 계산할 수 있습니다.
$$\begin{aligned} & v = 0 = v_0 + at \\ & at = -v_0 \\ & t = -\frac{v_0}{a} \end{aligned}$$
function findDuration(
initialVelocity: number,
acceleration: number
): number {
return acceleration !== 0 ? -initialVelocity / acceleration : Infinity;
}
내용은 다음 편에서 이어집니다. 읽어주셔서 감사합니다!
묻고 답하기
개인적인 판단에 의해 적절하다고 여겨지는 경우, 모두가 볼 수 있도록 이곳에 문답이 추가됩니다. 그렇지 않더라도 질문에 대한 답변은 별도로 이루어집니다.
Subscribe to my newsletter
Read articles from 고라니드로 directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by