๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ์ด๋ ๊ฒํ๋ค
float radius = 11;
float HarfCircumference = Mathf.PI * radius;
float ๊ฑธ๋ฆฐ์๊ฐ = 180f / m_Speed;
float ํ์ ์๋ = HarfCircumference / ๊ฑธ๋ฆฐ์๊ฐ;
float ๊ณฑํด์ผํ๋์๋ = m_Speed / ํ์ ์๋;
Sphere1.transform.RotateAround(์ค์ฌ์ , Vector3.up, m_fSpeed * ๊ณฑํด์ผํ๋์๋);
Sphere3.transform.Translate(Vector3.right * m_fSpeed, Space.Self);
Sphere1.transform.RotateAround(์ค์ฌ์ , Vector3.up, m_fSpeed);
Sphere3.transform.Translate(Vector3.right * m_fSpeed, Space.Self);
์ฒ์์ ์ด๋ ๊ฒ ํ๋๋ฐ ์ด๊ฒ ์๋๊ฐ ๋ค๋ฅด๋๋ผ
C++์์ ๊ณต์ ์ํฌ๋๋ ๋ด๊ฐ ๋ฐ์ง๋ฆ ์ ํด์ฃผ๊ณ ๋๋ ธ๋๋ฐ
RotateAround ์ด๋์ ํจ์ ์คํ์์ ์์ ์ค์ฌ์ ๊ณผ ๊ฐ์ฒด์ ๊ฑฐ๋ฆฌ๋ฅผย ์๋์ผ๋ก ๋ฐ์ง๋ฆ์ผ๋กย ์ ํด๋ฒ๋ฆฌ๋๋ผ?
์๋ฌดํผ ์ผ๋จ ์ ํํ ํ์ ์๋๋ฅผ ์์๋ด๊ธฐ ์ํด
0๋๋ถํฐ 180๋ ๊น์ง ๊ฑฐ์์๋ฅผ ์ฐพ์๋ดค๋คย
Sphere1.transform.RotateAround(์ค์ฌ์ , Vector3.up, m_fSpeed) ์ด๋ ๊ฒํ๊ณ ์คํํ๋ค
m_fSpeed = 10 ๊ธฐ์ค์ผ๋ก 180๋ ๋ฑ๋์๋ ๋ฉ์ถ๊ฒํ๋๊น ์ฝย 18์ด๊ฐ ๊ฑธ๋ฆฌ๋๋ผ
๋ฐ์์ฃผ = ๋ฐ์ง๋ฆ * ํ์ด ๋๊น
11 * ํ์ด = ๊ฑฐ๋ฆฌย
์๋ ฅ = ๊ฑฐ๋ฆฌ / ์๊ฐ
์์ ์์ด๋ํจ์์ ๋์์ ์ง์ ์ด๋ ํจ์๋ฅผ ๋๋ ธ๋ค
Sphere3.transform.Translate(Vector3.right * m_fSpeed, Space.Self);
์ด๊ฑธ๋ก x = 0 ๋ถํฐ ์์ํด์ย ์ง์ ์ด๋ ์ํค๋๊น ์์ด๋์ด 180๋ ๋์ ๋ฉ์ถ๋ย
m_fSpeed = 10 ๊ธฐ์ค์ผ๋ก ๊ฑฐ์ x =180.f ์ผ๋ ๋ฉ์ถ๋๋ผ ์ด๋น 10.f =ย m_fSpeedย ๋ผ๋๊ฑฐ์ง
๋น๊ต๋ฅผ ํ์๋
180 = 18์ด * 10fย
11 * ํ์ด = 18์ด * ์๋ ฅ
๊ณ์ฐ๊ธฐ ๋๋ฆฌ๋ฉด ์๋ ฅ์ด ์ฝ 1.9์ ๋ ๋์ค๊ธธ๋
์ด ์๋ ฅ(1.9f)๋ฅผ 10์ฒ๋ผ ๋ง๋ค๊ณ ์ถ์๊ฑฐ๋๊น
m_fSpeed / radius * ํ์ด /ย 180f / m_Speed =ย (10ย /ย 11 * ํ์ด / 18์ด)
Sphere1.transform.RotateAround(์ค์ฌ์ , Vector3.up, m_fSpeed * (10ย /ย 11 * ํ์ด / 18์ด);ย
์ค๋ช
ํ๋ต์๊ณ ์ผ๋๋ฐ ์จ๋๊ณ ๋ณด๋ ์ ๋ง ๋ณ์ ๊ฐ๋ค ์ฝ๋๋ง๋ด๋ผ
์ด๋ฌ๋ฉด ๋๋ณด๋ค ๋๋ํ ๋์ด ๋ ์ข์๋ฐฉ๋ฒ ์๋ ค์ฃผ๊ฒ ์ง
๋๊ธ 0