Rotation
Last updated
Last updated
3์ฐจ์ ํ์ ์ ๋ค๋ฃฐ ๋ ์ฌ์ฉ๋๋ ๋ํ์ ์ธ ๋ฐฉ๋ฒ๋ค๋ก Euler
,Quaternion
๊ฐ ์๋ค.
X, Y, Z ์ถ์ ๋ํด ์๋ก ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํ์ ์ ์ ์ํ๋ค.
Matrix transformations?
์ธ๊ฐ์ง ํ์ ์ถ(x, y, z)์ ํ๋์ฉ ์ฐ์ํด์ ๊ณ์ฐํ์ฌ ํํํ๋ ๋ฐฉ์ (๊ณ์ฐ ์์๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ๋ค.)
์ค์ผ๋ฌ ๊ฐ์ ์ค๋ธ์ ํธ์ ์ธ๊ฐ์ง ์ถ(X, Y, Z)์ ์ค์ฌ์ผ๋ก ํ ํ์ ์ ์ ์ํ๋ ์ธ ๊ฐ์ง ๊ฐ๋ ์งํฉ์ด๋ค.
์ฆ, ์ถ์์ ํ์ ํ ๋์ ๊ฐ๋๋ฅผ ์๋ฏธํ๋ค.
๋ฌผ๋ฆฌํ์์ธ ๋ ์ค๋๋ฅด๋ ์ค์ผ๋ฌ์ ์ด๋ฆ์ ๋ฐ์ ๋ช ๋ช ๋จ
๋ฐฉํฅ์ ์ค๋ช ํ๋ ์ธ๊ฐ์ ๊ฐ๋๋ง ์์ด ํ์ ๊ณ์ฐ์ด ์ง๊ด์ ์ด๊ณ ์ดํดํ๊ธฐ ์ฝ๋ค.
์ธ ๊ฐ์ง ๊ฐ๋๋ก๋ง ์์ง์ด๋ ๊ฒ์ ํ๊ณ์ ์ ์ฝ์ด ์๋ค.
X -> Y -> Z ์ถ ํ์ ์ด ์์๋๋ก ๊ณ์ฐ๋์ด ์ง๋ฒ๋ฝ
ํ์์ด ๋ฐ์ํ๋ค.
์ง๋ฒ๋ฝ(Gimbal lock) ํ์์ด๋? ํน์ ๋ฐฉํฅ์์ ๋๊ฐ์ ์ถ์ด ํฉ์ณ์ง๋ฉด์ ํ ์ถ์ ๋ํด ๊ณ์ฐ์ด ๋ถ๊ฐ๋ฅํด์ ธ ๊ฐ๋๊ฐ ์ด์ํ๊ฒ ๋์๊ฐ๋ ๋ฌธ์
์ค์ผ๋ฌ์ ๋ฌ๋ฆฌ 4๊ฐ์ ๊ฐ(ํ์ ์ถ + ๊ฐ๋)์ ์กฐํฉ์ผ๋ก 3D ๊ณต๊ฐ์ ๋ชจ๋ ํ์ ์ ๋ํ๋ผ ์ ์๋ ์ํ์ ๊ฐ๋
ํ์ ์ ์ถ์ ๊ฒฐ์ ํ๋ X, Y, Z ์ ๋ฒกํฐ์ ํ์ ์์ ๊ฒฐ์ ํ๋ W
X,Y,Z ์ถ์ ํ๋ฒ์ ๊ณ์ฐํ๊ธฐ ๋๋ฌธ์ ์ง๋ฒ๋ฝ ํ์์ด ์ผ์ด๋์ง ์๋๋ค.
ํ์ ๊ณ์ฐ์ด ๋ ๋น ๋ฅด๊ณ , ๋ ๋ถ๋๋ฌ์ด ํ์ ์ ์ ๊ณตํ๋ค.
180ยฐ ์ด์์ ํ์ ์ ํํํ์ง ๋ชปํ๋ค.180ยฐ๋ฅผ ๋์ด๊ฐ๋ฉด ๊ธฐ์ค์ ์์ ๊ฐ๊น์ด ๊ณณ์ผ๋ก ํ์ ํ๋ค.
SnapAngle์ด๋?
Tension(์ฅ๋ ฅ), Continuity(์ฐ์์ฑ), Bias(๋ฐ์ด์ด์ค)์ ์ฝ์
์ฟผํฐ๋์ธ์ ๋ ์์ ์ ์ด๊ณ ์ ํํ๊ฒ ๊ณ์ฐํ๋ ์ด์ ์ด ์๋ ๋ฐ๋ฉด ๋ณต์กํ๊ณ , ์ค์ผ๋ฌ๋ ๋จ์ํ๊ณ ๋ ์ง๊ด์ ์ด์ง๋ง ํ์ ์ ํํํ๋๋ฐ ์ ์ฝ์ด ์๋ค. ์์ ํ๋ ค๋ ๋ชฉ์ , ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์กฐํฉํ์ฌ ์ค์ผ๋ฌ โ ์ฟผํฐ๋์ธ, ์ฟผํฐ๋์ธ โ ์ค์ผ๋ฌ๋ก ๋ณํํ์ฌ ์์ ์ ์ํํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ด๋ค.
.Quaternion()
-> ์ฟผํฐ๋์ธ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์์ฑ์
.Euler()
-> ์ค์ผ๋ฌ ๊ฐ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์์ฏ์
.setFromQuaternion(quaternion)
-> ์ฟผํฐ๋์ธ์ ์ฌ์ฉํ์ฌ ์ค์ผ๋ฌ ๊ฐ์ ์ค์ ํ๋ ๋ฉ์๋
.setFromEuler(euler)
-> ์ค์ผ๋ฌ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผํฐ๋์ธ์ ๊ณ์ฐํ๋ ๋ฉ์๋
ํ์ ์ ๊ฐ๋๋ ์ฐ๋ฆฌ๊ฐ ํํ ์๊ฐํ๋ ๊ฐ๋(degree)๊ฐ ์๋ Radin๊ฐ์ ์ฌ์ฉํ๋ค.