힘이란?
힘은 질량을 가지고 있는 물체를 빨라지거나 느려지게 한다. 즉, "힘을 받은 물체는 가속한다"라는 것이다.
가속도란?
속도를 점점 빠르게 또는 느리게 한다. 가속은 가속과 감속을 포함하는 의미이다.
F = ma ?
Force = Mass * Acceleration -> 힘 = 질량 * 속도의 변화(가속도)
속도 : 시간당 얼마나 이동했는가? -> m/s
가속도 : 속도의 변화 -> 시간당 얼마나 속도가 변했는가? -> 속도를 시간으로 나눠준다. -> ( m/s ) / s -> m/s2 (s의 제곱)
F = m*a 에 의해 F가 일정한 값이라면 m과 a의 관계는 다음과 같다.
m이 커지면 a는 작아지고, m이 작아지면 a는 커진다.
중력 (g) = -9.8 m/s2
물체의 무게(힘) = m(질량) * g(중력)
위 그림과 같이 물체 두개가 있고, m2는 m1 보다 질량이 크다. [ m1 < m2 ]
이 둘은 동일한 중력 g를 받는 다고 가정하면 이 두 물체의 무게를 비교해보면 [ m1g < m2g ]이다.
이 두 물체에 대한 낙하시의 저항력이 없다고 가정한다면, 속도는 동일하다. [ v1 = v2 ]
속도는 질량과는 무관하고, 가속도의 값에 따라 달라진다. 위의 예에서는 동일한 가속도를 받고 있다.
그러므로 물체 m1과 m2의 속도는 같다. -> 자유낙하 운동의 법칙
위와 같이 질량이 다른 물체 m1, m2가 있다. [ m1 < m2 ]
이 물체에 동일한 힘 F가 주어진다면, 이 물체의 속도는 [ v1 > v2 ] 이다.
m1에 받는 가속도 값이 더 크기 때문이다.
F = m1a1 = m2a2 이고, m1 < m2 이므로 a1 > a2 이다.
그런데 가속도 a도 두 물체에 동일하게 작용한다면? ( a1 = a2 ) ==> [v1 = v2]
v1과 v2는 동일하다.
충격력과 충격량
두 물체가 충돌할 때, 물체가 찌그러졌다가 다시 펴지면서 반대 방향으로 튕겨져나가는 것을 볼 수 있다.
이를 그래프로 표현한다면 아래와 같다.
시간 s1에서 힘(충격력)은 f1이고, 시간 s2에서의 힘(충격력)은 s2이다.
이러한 충격력의 모든 합이 충격량이다.
Unity에서 AddForce를 호출할때, Force, Impulse 속성을 사용하는데,
충격력 - Force : 질량 * 거리 / 시간2 (시간의 제곱)
충격량 - Impulse : 질량 * 거리 / 시간
보통 짧은 시간안에 큰 힘을 주고 싶을 떄 주로 Impulse를 사용한다.
AddForce는 내부적으로 충격량과 충격력에 의해서 동작한다.
'프로그래밍 이야기 > GameDev' 카테고리의 다른 글
[게임이론] 등가속도 운동, 포물선 운동 (0) | 2021.01.17 |
---|---|
[게임이론] 힘과 가속도의 활용 (0) | 2021.01.14 |
[게임이론] 행렬 (0) | 2021.01.02 |
[게임이론] 벡터-외적의 활용 (0) | 2020.12.31 |
[게임이론]벡터의 외적 (0) | 2020.12.28 |