본문 바로가기

Nature of Code

Nature of Code 2강. 힘.

code137.5 (creative coding lab)

한태재

 

Nature of Code 2강 - 힘 ( force )

힘(force)은 질량 있는 객체가 가속도를 갖게 하는 벡터.

 

뉴턴의 운동 법칙

뉴턴의 운동 1법칙 (관성)

- 가만히 있는 물체는 계속 가만히 있고, 움직이는 물체는 계속 움직인다.
- 다른 힘의 영향을 받지 않는다면 가만히 있는 물체는 계속 가만히 있고, 움직이는 물체는 같은 속도와 방향으로 계속 움직인다.

 

뉴턴의 운동 3법칙 (작용 반작용)

- 어떤 물체에 힘을 주면 반대 방향으로도 같은 힘이 일어난다.
- 힘은 언제나 쌍으로 발생한다. 두 힘은 크기는 같지만 방향은 반대이다.

 

뉴턴의 운동 2법칙!!

- 힘은 질량과 가속도를 곱한 값이다
- F = M * A;
- A = F / M;

 


질량

- 질량 : 어떤 물체가 가지고 있는 물질의 양. (ex : kg)
- 무게 : 중력이 해당 물체에 얼마나 큰 힘을 작용하는가. (단위 N(뉴턴)) (무게 = 질량 * 중력)
- 밀도 : 특정한 부피에서의 질량을 의미 (ex : kg/m*m)

- 질량을 물질의 양을 나타내는 값이므로 방향이 없다.(벡터가 아니라 스칼라)

위치, 속도, 가속도, 힘, 질량

1. 오브젝트의 '위치'를 매 프레임마다 그려준다.
2. '위치'는 '속도'벡터로 매 프레임마다 변화시킨다.
3. '속도'는 '가속도'로 매 프레임마다 변화시킨다.
4. '힘'을 계산하여 '가속도'에 더해준다. 
    A = F / M 이지만 질량은 무시(1로 계산)
5. '가속도'를 매 프레임마다 초기화시킨다.

 

 

See the Pen pos_vel_acc by TaejaeHan (@TaejaeHan) on CodePen.

 

마찰력

- 마찰력은 '흩어지는 힘'으로 물체가 움직일 때 전체 에너지를 감소시키는 힘

- ' 마찰력 = -1 * 속도단위벡터 * 뮤(마찰계수) * 수직력 '
- 마찰력은 속도벡터의 크기(속력)에 영향을 받지 않으므로 속도단위벡터로 계산
- 마찰력은 속도의 반대방향이므로 '-1 * 속도단위벡터'
- 마찰계수와 수직력이 클 수록 마찰력이 높아짐
- 얼음표면은 나무표면보다 마찰계수가 적음
- 수직력은 움직이는 방향과 수직되는 힘. 움직이는 물체가 중력으로 바닥을 누르면 바닥도 물체를 민다(뉴턴의 운동 3법칙)
- 경사진 곳에서 이동하는 경우는 수직력이 중력과 다르다
(삼각법을 이용하여 계산해야함. 3장에서...)

 

저항력

 

- 기체 또는 액체를 지나는 경우에도 마찰력이 발생하는데 점성력, 저항력, 유체 저항이라고 부름

- 저항력 = -1/2 * 속도단위벡터 * 액(기)체의밀도 * (물체의)속력*(물체의)속력 * 액(기)체와 닿는 면적 * 저항계수
- 프로세싱에는 -1(반대방향)이 중요하고 상수 1/2은 중요하지 않으므로 -1로 변경
- 프로세싱에서 밀도와 닿는면적은 제외시켜서 단순화 (1로 계산)
- ' 저항력 = -1 * 속도단위벡터 * (물체의)속력*(물체의)속력 * 저항계수 '
- 저항력은 속도의 반대방향이므로 '-1 * 속도단위벡터'
- 저항계수와 속력의제곱이 클수록 저항력이 높아짐

 

중력

- 질량을 가지고 있는 모든 물체가 서로 잡아당기는 힘(인력)
- 중력이라는 힘은 물체의 질량이 클수록 강하게 작용.

- 중력 = ( (중력상수 * 물체1질량 * 물체2질량) / ((물체 사의의) 거리 * (물체 사의의) 거리) ) 
* (물체1에서 물체2 방향의)단위벡터

- 프로세싱에서 중력상수는 무시 (1로 계산)
- ' 중력 = ( (질량1*질량2) / 거리*거리 ) * 단위벡터 '
- 질량이 클수록 거리가 가까울수록 중력이 강해짐

 

 


code137.5 (creative coding lab)

한태재

10년차 크리에이티브 디벨로퍼 / 웹 그래픽 엔지니어 / 프론트엔드 개발자

로서 가장 좋아하는 작업은 (HTML5)에서 2D/3D Canvas 그래픽스를 다루는 프로젝트입니다

'Nature of Code' 카테고리의 다른 글

Nature of Code 3강. 진동.  (0) 2024.06.11
벡터 힘,질량,중력  (0) 2024.06.09
벡터 기본 방향과 크기  (0) 2024.06.03
Nature of Code 1강. 벡터.  (1) 2024.05.07