함수
f(x) = y 같이 한 변수의 값에 따라 다른 한 변수의 값이 정해진다고 하는 논리적 개념
역함수
f(x) = y같이 x를 넣었을때 y값이 나오는 함수와는 반대로 y의 값을 넣었을때 x값이 나오는 함수를 f(x)=y의 역함수라 한다.
f(x) = y ⇔ f−1(y) = x
역삼각함수



마찬가지로 삼각함수에도 역함수가 존재하며 역삼각함수라고 부른다.
Sin, Cos, Tan에 대응하는 ArcSin, ArcCos, ArcTan이 있다.
역삼각함수는 하나의 변수값에도 여러 개의 결과값이 나오기때문에
결과값의 범위를 ArcSin, ArcTan는 -π/2 ~ π/2로 ArcCos은 0 ~ π로 제한한다.

instigator의 forward vector의 y값이 a, -a로 달라도
Acos값은 범위를 제한했기 때문에 동일한 값이 나온다.
Atan, Atan2 차이
tanθ는 기울기와 같으며 y = b/a * x함수에서 θ = Arctan( b/a )이다.
c언어에는 Atan이 있고 Atan2가 있는데 크게차이는 Atan은 받는 변수의 값이 1개 Atan2는 2개이다.
왜 이렇게 나누었는지 알아보자

Atan에 1사분면인 a지점(x,y)을 넣으면 Atan(y/x)가 되고 둘다 양수 이기에 양수가 나온다.
4사분면인 b지점도 마찬가지로 x는양수, y는 음수 이기에 음수가 나온다.
하지만 2사분면인 d지점은 x가 음수, y가 양수라서 음수가 나온다. 이것은 4사분면의 값과 동일하다.
마찬가지로 c지점의 값도 1사분면의 값과 동일하다. 이렇게 Atan은 1,4사분면의 값만 나오기 때문에
이걸 더 정확하게 나누기 위해 Atan2라는 방법이 생겼고 x,y값을 둘다 변수로 넣어주기에
x,y의 음양을 구분하여 몇사분면인지를 정확하게 알아낼수 있다.
Atan을 사용할때 불기둥이 180도만 적용되는 이유가 이것 때문이다.
내적 ( Dot )
두 벡터 사이의 각을 알아낼때 사용, 두벡터가 얼마나 일치하는냐라고도 표현하기도 한다.
n차원에서 사용가능
u벡터 (a,b,c) 와 v벡터 (x,y,z)가 있다고 하면 ax+by+cz의 합이 결과값
u와v의 내적 = |u| |v| cosθ
결과값이 양수이면 전방, 음수이면 후방임을 알수있다.
외적 ( Cross )
두 벡터의 곱, 3차원에서 사용가능
두 벡터로 이루어지는 평면이 있다고 가정하고 그 두벡터에 수직인 법선벡터를 알아낼 수 있다.
u * v = ( ( bz - cy ) , - ( cx - az ) , ( ay - bx ) )
내적과 달리 u * v 와 v * u 의 결과값이 달라지기에 교환법칙이 성립하지않으며 반대로 하면 값도 반대의 벡터가 나온다.
u * v = - ( v * u )
언리얼에서는 x,y의 축이 반대이기에 외적값도 반대로 나온다.
'언리얼 BluePrint 정리' 카테고리의 다른 글
| 06/29 학습 정리 ( FireBall 스킬 구현) (0) | 2023.06.29 |
|---|---|
| 06/28 학습 정리 ( Trace, LineTraceForObjects, GetComponent, Mesh Space Rotation Blend, Projectile) (0) | 2023.06.29 |
| 06/23 학습 정리( 다단 히트 구현, Set Timer ) (0) | 2023.06.26 |
| 06/22 학습 정리( FireStorm 구현 ) (0) | 2023.06.23 |
| 06/21 학습 정리 ( Particle, Lag ) (0) | 2023.06.22 |