๋ผ๋์(radian)
- ์ผ์์ ์ผ๋ก ์ฌ์ฉํ๋ 60๋ถ๋ฒ(๋จ์ degree)์ด ์๋, ํธ๋๋ฒ(ํธ์ ๊ธธ์ด๋ก ๊ฐ๋๋ฅผ ํํ)์ด๋ผ๋ ๊ฐ๋ ํํ ๋ฐฉ๋ฒ์ ๋จ์
- ์? ์ค์๋ก ๋ง๋ค์ด ์ฌ์ฉํ๊ธฐ ์ํด์.
- 1 ๋ผ๋์ : ํธ์ ๊ธธ์ด๊ฐ ๋ฐ์ง๋ฆ๊ณผ ๊ฐ์์ง๋ ๊ฐ(์ฝ 57.2958º)
- ๋ผ๋์ ๊ฐ = ํธ์ ๊ธธ์ด / ๋ฐ์ง๋ฆ์ ๊ธธ์ด
- ์ํค๋ฐฑ๊ณผ์์ ๋งํ๋ '์ด๋ค ๊ฐ์ ๋ผ๋์ ๊ฐ์ ๊ฐ์ ํฌ๊ธฐ์ ๋จ์์ ์ค์ฌ๊ฐ์ด ๋ํ๋ ํธ์ ๊ธธ์ด์ ๊ฐ๋ค. '์ ์๋ฏธ๋..
์์ ํฌ๊ธฐ๋ฅผ ๋ฐ์ง๋ฆ์ด 1์ธ ์(๋จ์์)์ผ๋ก ์ค์ธ ๋ค์, ๊ทธ ํธ์ ๊ธธ์ด๋ฅผ ์ฌ๋ฉด ๋ผ๋์ ๊ฐ์ด ๋๋ค๋ ๋ง์ด๋ค.
- degree๊ฐ º ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ฏ ๋ผ๋์์ rad ๋๋ c ๊ธฐํธ๋ฅผ ์ฌ์ฉ(ํ๋, ๋ผ๋์ ๊ฐ ์์ฒด๊ฐ ํธ์ ๋ฐ์ง๋ฆ์ ๋น์จ ๊ฐ์ด๋ฏ๋ก ๊ธฐํธ๊ฐ ์๋ต๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.)
- π = ์์ ๋๋ / ์ง๋ฆ → π = (์์ ๋๋ / 2) / (์ง๋ฆ / 2) → π = ๋ฐ์์ ๋๋ / ๋ฐ์ง๋ฆ ์ด๋ฏ๋ก, ๋ผ๋์์์ π๋ 180º ์๋ฏธํ๊ฒ ๋๋ค.
- degree๋ฅผ radian์ผ๋ก : 180º = π → 1º = π / 180º → ์ฝ 0.0175(Mathf.Deg2Rad)๋ฅผ degree ๊ฐ์ ๊ณฑํด์ฃผ๊ธฐ
- radian์ degree๋ก : 180º = π → 1 rad = 180º / π → ์ฝ 0.0175(Mathf.Rad2Deg)๋ฅผ radian ๊ฐ์ ๊ณฑํด์ฃผ๊ธฐ
์ฌ์ธ, ์ฝ์ฌ์ธ
์ฌ์ธ(Sine, Sin)
- Sin θ = ๋์ด(y)/๋น๋ณ(r)
- 0๋ถํฐ ์์ → x ๊ตฌํ๊ธฐ
- θ์ ๊ฐ์ ๋ฐ๋ฅธ sin θ → 0(0º) = 0, π/2(90º) = 1, π(180º) = 0, 3π/2(270º), 2π(360º) = -1
์ฝ์ฌ์ธ(Cosine, Cos)
- Cos θ = ๋ฐ๋ณ(x)/๋น๋ณ(r)
- 1๋ถํฐ ์์ → y ๊ตฌํ๊ธฐ
- θ์ ๊ฐ์ ๋ฐ๋ฅธ cos θ → 0(0º) = 1, π/2(90º) = 0, π(180º) = -1, 3π/2(270º), 2π(360º) = 0
r๋ถ์ y~ ์ฌ~์ธ ํจ์~
r๋ถ์ x ์ฝ์ฌ์ธ ํจ์~
x๋ถ์ y~ ํ์ ํธ ํจ์~
์ฌ์ธ๊ณผ ์ฝ์ฌ์ธ์ ์ด์ฉํ๋ฉด ์์ ๊ทธ๋ฆด ์ ์๋ค.
timer += Time.deltaTime;
float rotatingDegree = (timer * rotatingSpeed) % 360;
float rotatingRadian = rotatingDegree * Mathf.Deg2Rad; //์ด ๊ฐ์ -๋ฅผ ๋ถ์ด๋ฉด ์์ด ๋ฐ๋๋ก ํ์ ํ๋ค.
float xPos = Mathf.Cos(rotatingRadian) * radius;
float yPos = Mathf.Sin(rotatingRadian) * radius;
//Debug.Log($"rotatingDegree : {rotatingDegree}, rotatingRadian : {rotatingRadian}, xPos : {xPos}, yPos : {yPos}");
RotatingObject.transform.position = new Vector3(xPos, yPos);
์ํฌํ์ ํธ(Arctan, Atan, Atan2)
- ํ์ ํธ์ ์ญํจ์
- ํ์ ํธ : tan θ = ๋์ด(y)/๋ฐ๋ณ(x)
- ๊ทธ๋์ ์ญํจ์์ธ ์ํฌํ์ ํธ๋ก ๊ฐ์ ๊ตฌํ ์ ์๋ค : atan y/x = θ
- ์ฃผ๋ก ๋ฐ๋ผ๋ณด๋ ๋ฐฉํฅ์ด๋ ๋ฒกํฐ๋ก ๊ฐ์ ๊ตฌํ ๋ ์ฌ์ฉ
- Atan( _ ) ํจ์๋ ํ๋ผ๋ฏธํฐ๋ก y / x ๊ฐ ํ๋๋ง ๋ฃ์ด์ฃผ๊ณ , -π/2 ~ π/2๋ก ๊ฐ์ ๋ฐํํด์ค๋ค.
- Atan2( _, _ )๋ y, x ๊ฐ์ ๊ฐ๊ฐ ๋ฃ์ด์ฃผ๊ณ , -π ~ π๋ก ๊ฐ์ ๋ฐํํด์ค๋ค.
-> Atan ํจ์์์ 0์ผ๋ก ๋๋ ์ ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๊ณ , ์์์ธ ๋ฐํ ๊ฐ๋ ๋ฐ์ ์ ์์ด์ ์ ๋ฆฌํจ
'Unity' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฝ๋ฃจํด ์คํ ์ค์ธ์ง ์ฒดํฌํ๊ธฐ (0) | 2022.12.31 |
---|---|
๋ฉ์๋ ์ ์ ์ ๊ณ ๋ คํ ์ (0) | 2022.12.28 |
๋ฌดํ ์คํฌ๋กค๋ง ๋ฐฐ๊ฒฝ ๋ฒ์ด์ง๋ ๋ฌธ์ (0) | 2022.12.04 |
PlayerPrefs (0) | 2022.10.30 |
AnchoredPosition vs. LocalPosition, Pivot (0) | 2022.10.19 |
๋๊ธ