* 진동
어떤 물체가 중심값을 기준으로 좌우 또는 위아래로 반복적으로 움직이는 현상을 의미한다
[유니티에서 진동은 언제 쓰일까?]
오브젝트 좌우로 흔들기
ㄴ x = base + sin(theta)
위아래로 둥둥 뜨게 하기
ㄴ y = base + sin(theta)
크기나 색 등을 부드럽게 바꾸기
ㄴ scale = 1 + sin(theta) * 0.2f
* delta(델타)
변화량
수학, 물리, 프로그래밍에서 델타는 값이 얼마나 변했는지(차이)를 뜻한다
변화된 값 또는 이전 값과의 차이를 의미하는 접두어로 많이 사용한다
[예]
deltaTime
시간의 변화량, 한 프레임 동안 흐른 시간(초)
deltaPosition
위치의 변화량
deltaAngle
회전각의 변화량
* 왜 삼각함수가 진동과 연관이 있을까?
sin, cos는 삼각형에서 시작했지만, 원 위에서 점이 움직이는 패턴이다
시간에 따라
sin(θ) → 아래에서 시작 → 올라갔다 내려가고를 반복
cos(θ) → 위에서 시작 → 내려갔다가 올라가고를 반복
[그럼 탄젠트는!?]
tan(θ) = sin(θ) / cos(θ)
기울기(= 기울어진 정도)를 나타내며, 진동 표현에는 일반적으로 사용되지 않는다
회전각, 시야 각도 계산, 카메라 시선 처리 등에 더 많이 쓰인다
(+) tan(θ)는 π/2와 같은 특정 각도에서 값이 무한대로 발산하기 때문에, 진동 표현에는 부적합하다
* 탄젠트와 사인과 코사인의 차이는 명확한데 사인과 코사인은 헷갈린다! 😢
둘 다 주기 함수고 -1 ~ 1 사이의 값을 주기적으로 반복한다
둘 다 진동 구현에 똑같이 쓸 수 있다
[차이점은 위상 차이다(phase difference)]
사인은 0에서 시작해서 위로 올라가고
코사인은 1에서 시작해서 내려간다
| θ | sin(θ) | cos(θ) |
| 0 | 0 | 1 |
| π/2 | 1 | 0 |
| π | 0 | -1 |
| 3π/2 | -1 | 0 |
| 2π | 0 | 1 |
[따라서]
사인과 코사인은 본질적으로 동일한 형태의 함수이며, 단지 시작 시점(위상)이 다르다
크게 다르다라고 느껴질 상황은 거의 없고 동일한 진동 기능을 수행할 수 있다
[그래도 굳이 실전에서 차이를 느끼고 싶다면......?]
(1) 움직임의 시작 위치를 명확하게 연출할 때
등장하자마자 위에서부터 떨어져야 한다면 → 코사인
중앙에서 부드럽게 시작해야 한다면 → 사인
이럴 때는 시각적으로 차이가 느껴질 수 있다
(2) 두 개의 파형(시간에 따라 값이 변화하는 모양)을 조합해서 움직임을 만들 때
사인과 코사인을 함께 쓸 때는 위상 차이가 움직임에 영향을 준다
하지만 단독으로 진동만 구현할 때는 거의 차이가 없다
'IT공부' 카테고리의 다른 글
| [Unity] 벡터의 내적(Dot Product) (0) | 2025.07.03 |
|---|---|
| [Unity] 수학과 Unity 관점에서 벡터와 스칼라 정리 (0) | 2025.06.28 |
| [C#] .NET 가비지 컬렉션(GC, Garbage collection) 둘러보기 (0) | 2025.06.25 |
| [C#] .NET 9 Random 클래스 살펴보기 (0) | 2025.06.18 |
| [C#] .NET 9 decimal 구조체 톺아보기 (0) | 2025.06.16 |