โ 6์ฅ ์ฐ์ต๋ฌธ์
1. ๊ท์น์ ์ธ ๊ณก๋ฉด์ผ์๋ก ํ๋ฉด์ ํํํ๋ ๋ฐ ๋์ฑ ๋ง์ ์์ ๋ค๊ฐํ์ด ์ฌ์ฉ๋๋ค. (True/False)
2. 3์ฐจ์ ๊ณต๊ฐ์์ ์์์ ๋ค ์ ์ ์ฐ๊ฒฐํ ๋ค๊ฐํ์ ํญ์ ํ๋ฉด์ด๋ค. (True/False)
→ 3 ์ ์ ์ฐ๊ฒฐํ ๋ค๊ฐํ์ด ํญ์ ํ๋ฉด์ด๊ณ , ๋น ๊ณ์ฐ๋ฑ์ ํ ๋ ธ๋ฉ ๋ฒกํฐ๊ฐ ํ๋ฉด์์ ์ ํํ ๋์ค๊ธฐ ๋๋ฌธ์ ์ผ๊ฐํ๋ชจ์์ ๋ง์ด ์ด๋ค.
3. ์ค๋ฅธ์ ์ขํ๊ณ์ ์ผ์ ์ขํ๊ณ์ z์ถ ๋ฐฉํ์ ํญ์ ์๋ก ๋ฐ๋์ด๋ค. (True/False)
4. ๋ฒกํฐ A,B,C๊ฐ ์์ ๋ C= 5A+B/3์ผ๋ก ํ์๋๋ค๋ฉด C๋ A,B์ ์ ํ๋ ๋ฆฝ์ด๋ค. (True/False)
→ ์ ํ๋ ๋ฆฝ์ ๋์ผ๋ก ๋ณผ๋ ์ง๊ตํ๋ ๊ฒ ๊ฐ์ ๊ฑธ๋ก, ์ ๋ ๊ฒ ํํ ๋์ง ์๋๋ค.
5. ๋๊ฐ์ ์์๊ฐ 1,2,1,1์ธ ํฌ๊ธฐ ์กฐ์ ํ๋ ฌ์ ๊ท ๋ฑ ํฌ๊ธฐ ์กฐ์ ์ ํด๋นํ๋ค. (True/False)
→ ๊ท ๋ฑ ํฌ๊ธฐ ์กฐ์ ์ ์ค์ผ์ผ ๊ฐ์ด ๊ท ๋ฑํ ๋ค์ด๊ฐ์ผ๋๋๋ฐ y ๋ง ์ค์ผ์ผ ๊ฐ์ด 2์ด๋ค.
6. 3์ฐจ์ ํ์ ํ๋ ฌ์ ์ผ๋ฐ์ ์ผ๋ก (x,y,z) ์ถ์ ๊ธฐ์ค์ผ๋ก ์ ์๋๋ค. (True/False)
→ 3์ฐจ์ ํ์ ํ๋ ฌ์ x,y,z ์ถ ๊ธฐ์ค ๊ทธ ์ ์ ํฅํ ๋ฒกํฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์๋๋ค.
7. ๊ฐ์ฒด ๋ณํ์ ์ ์ฌ ๋ณํ์ ํฌํจํ๋ค. (True/False)
→ ์ ์ฌ๋ณํ์ด ๊ฐ์ฒด ๋ณํ์ ํฌํจ
8. ๋ชจ๋ธ ์ขํ๋ก ํํ๋ ๋ฌผ์ฒด ์ ์ ์ ์ง์์ ๋ชจ๋ธ ๋ทฐ ํ๋ ฌ์ ๊ณฑํ๋ฉด ์์ ์ขํ๋ก ๋ฐ๋๋ค. (True/False)
9. ์ง์์ ๋ช ๋ น์ด ์์๋ ๋ชจ๋ธ ์ขํ๊ณ๋ฅผ ๋ณํํ๋ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑ๋๋ค. (True/False)
→ ๋ณํํ๋ ๋ฐ๋์ ์์๋ก ์ง์ ๋ช ๋ น์ด ์์๊ฐ ์ง์ ๋๋ค. ์์ ๊ธฐ์ค์ด๋ผ๋ ๋ง์ด ์ ๋งคํ๋ค. ๊ทธ๋๋ ํด์ค์ ๋ง๋ถ์ด์๋ฉด ๋ง์ฝ ๋ชจ๋ธ ์ขํ๊ณ์์, 1) x์ถ์ผ๋ก 2 ์ด๋, 2) z์ถ 45๋ ์ด๋ ์ด๋ ๊ฒ๋ผ๋ฉด gl ๋ช ๋ น์ด๋ก๋ rotate → translate ์ด๋ค.
10. glPushMatrix( ) ํจ์๋ฅผ ํธ์ถํ๋ฉด ํ์ฌ CTM ์์ ๋ณต์ฌ๋ CTM์ด ์ฝ์ ๋๋ค. (True/False)
11. ๊ณ์ธต ๊ตฌ์กฐ์ ์๋๋ก ๋ด๋ ค์ค๋ฉด์ ํธ์ถ๋๋ ํจ์๋ glPopMatrix( )ํจ์๋ค. (True/False)
→push๋ค.
12. ์ญ๋ฐฉํฅ ํค๋ค๋งํฑ์ค์์๋ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ด๋ ค์ค๋ฉด์ ๋ชจ๋ ๊ด์ ์ ๊ฐ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํด์ผํ๋ค. (True/False)
→ ์๋ฐฉํฅ ํค๋ค๋งํฑ์ค๊ฐ ๊ฐ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ๊ฑฐ๊ณ , ์ญ๋ฐฉํฅ์ ์ปดํจํฐ๊ฐ ์์์ ๊ณ์ฐํ๋ค.
13. ๋ฒกํฐ์ ์์น ์ ๋ณด๋ฅผ ํฌํจ์ํจ ๊ฒ์ (์ดํ์ธ)๊ณต๊ฐ์ด๋ค.
→๋ฒกํฐ์ ๊ฐ๋ ์ ์ ์ ๊ฐ๋ ์ ๋ํ ๊ฒ.
14. ๋ ์ A,B๋ฅผ ์๋ ์ ๋ถ V๋ฅผ ๋ฒกํฐ๋ก ํํํ๋ฉด ((1-t)A + tB (0 <= t <=1) )๊ฐ ๋๋ค.
→์ ์ ๊ฐ๋ ์ด ๋์ค๊ณ ์ ๋ถ์ ๋ฒกํฐ๋ก ํํํด์ ์ ๊ณผ ์ ์ ๋นผ๊ธฐ ํํ๋ก ํํํ ์ ์๋ค.
15. ๋์ฐจ ์ขํ(4,1,2,4)๋ 3์ฐจ์ ๊ณต๊ฐ ์ขํ (1,1/4,1/2,1)์ ํด๋นํ๋ค.
16. 3์ฐจ์ ๊ณต๊ฐ ์ขํ(5,3,2)๋ ๋์ฐจ์ขํ(5,3,2,1)์ ํด๋นํ๋ค.
17. ์ P๋ฅผ(x,y,z) ์ถ ๋ฐฉํฅ์ผ๋ก (2,1,5)๋งํผ ์ด๋ํ๊ธฐ ์ํ 4x4๋ณํ ํ๋ ฌ์(
)์ด๋ค.
18. 2์ฐจ์ ์ P๋ฅผ ์์ ์ค์ฌ์ผ๋ก 30๋ ๋งํผ ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก ํ์ ํ๊ธฐ ์ํ 3*3 ๋ณํ ํ๋ ฌ์ (
)์ด๋ค.
19. 2์ฐจ์ ๊ณต๊ฐ์์ ํ ์ ์ x ์ถ์ผ๋ก 2, y ์ถ์ผ๋ก 3๋งํผ ์ด๋ํ ํ, ์ด๋๋ ์ ์ ์์ ๊ธฐ์ค์ผ๋ก x์ถ์ผ๋ก 1/2๋ฐฐ, y์ถ์ผ๋ก 2๋ฐฐ ํฌ๊ธฐ ์กฐ์ ํ๋ ์์ ์ ๋์ฐจ ์ขํ๊ณ์์์ 3*3 ๋ณตํฉ ํ๋ ฌ(
)๋ก ํํ๋๋ค.
20. 2์ฐจ์ ๊ณต๊ฐ์์ ํ ์ ์ ์์ ๊ธฐ์ค์ผ๋ก x์ถ์ผ๋ก 1/2๋ฐฐ, y์ถ์ผ๋ก 2๋ฐฐ ํฌ๊ธฐ ์กฐ์ ํ ํ, ์ด๋ฅผ x์ถ์ผ๋ก 2, ์ถ์ผ๋ก 3๋งํผ ์ด๋ํ๊ธฐ ์ํ ๋ณตํฉ ํ๋ ฌ์(
)์ด๋ค.
21. 2์ฐจ์ ๊ณต๊ฐ์์ ๋ณํ์ ๋์ฐจ ์ขํ๊ณ์์ 3*3 ํ๋ ฌ๋ก ํ์ํ ์ ์๋ค. ์ขํ(4,6)์ ์ค์ฌ์ ์ ๋ ์ฌ๊ฐํ์ด ํ๋ ์๋ค๊ณ ๊ฐ์ ํ๊ณ , ์ด ์ฌ๊ฐํ์ ์ค์ฌ์ ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์๊ณ ๋ฐฉํฅ์ผ๋ก 90๋ ํ์ ์ํค๊ธฐ ์ํ ๋ณตํฉ ํ๋ ฌ์(
)์ด๋ค.
22. ๋ณตํฉ ๋ณํ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ํ๋์ ํ๋ ฌ์ (๋ณตํฉํ๋ ฌ)์ด๋ผ ํ๋ค.
23. ๋ฌผ์ฒด ๋ด๋ถ๋ ์ธ๋ถ๋ , ํ์ ์ ์ค์ฌ์ด ๋๋ ์ ์(ํผ๋ด)์ด๋ผ ํ๋ค.
24. ๋ฌผ์ฒด ์ ์ ์ ์ด๋(T),ํฌ๊ธฐ์กฐ์ (S),ํ์ (R) ์ ์์ฐจ์ ์ผ๋ก ๊ฐํ์ ๋ ๊ฒฐ๊ณผ์ ์ธ ๋ณตํฉ ํ๋ ฌ์ C = (RST)๋ก ํ์๋๋ค.
25. ์นด๋ฉ๋ผ ๋๋ ์์ ์ด ๋ฐ๋ผ๋ณด๋ ๊ณณ์ (ํฌ์ปค์ค)๋ผ๊ณ ํ๋ค.
26. ์์ ์ขํ๊ณ์ z ์ถ์ ๊ธฐ์ค์ผ๋ก ์นด๋ฉ๋ผ๊ฐ ๋๋ ๊ฒ์(๋กค๋ง)์ด๋ผ ํ๋ค.
27. gluLookAt() ํจ์์ ํ๋ผ๋ฏธํฐ eyex, atx, upx๋ ๊ฐ๊ฐ(์์ x),(์ด์ x),(์นด๋ฉ๋ผ ์ํฅ๋ฒกํฐx)์ ์๋ฏธํ๋ค.
28. ๋ทฐ ํ๋ ฌ์ V, ๋ชจ๋ธ ํ๋ ฌ์ M, ์ ์ ์P๋ผ ํ๋ฉด ์ง์์์ ์์ ์ขํ P' = (VM)P ์ด๋ค.
29. ์ธํฐ๋ท์์ Nate Robins์ ์คํ์ง์ ์ฌ์ดํธ๋ฅผ ๊ฒ์ํ์ฌ ์ง์์ ๋ชจ๋ธ ๋ณํ๊ณผ ์์ ๋ณํ ๋ฐ๋ชจ ํ๋ก๊ทธ๋จ์ ๊ตฌํด ์์ฐํด ๋ณด๋ผ. https://user.xmission.com/~nate/tutors.html
→ ๊ณต๋ถ๋ฅผ ํ๋ฉฐ ํน์๋ผ๋ ๊ท์ฐฎ๋ค๊ณ ๋์ด๊ฐ์ง ๋ง๊ณ ๊ฐ์ zip ํ์ผ ๋ค์ด๋ฐ์์ ์คํํ์ผ ๋ฐ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค. ์ฌ๋ฌ ์ซ์ ๋ณ์๋ค๋ ์์ง ๊ฐ์ด ์ค์ง ์์ผ๋ ์ฝ๊ฒ ์กฐ์ ํ๋ฉด์ ์ด๋ฐ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋๊ตฌ๋~ ํ๋ฉด์ ๊ณต๋ถํ๋ฉด์ ๊ณ์ ์ฐธ๊ณ ํ ์ ์์ ๊ฒ ๊ฐ๋ค.
30. ๋ณธ๋ฌธ์ ์ํ ์ฝ๋๋ฅผ ๋ณํํ์ฌ ์๋ก์ด ๊ทธ๋ฆผ์ ๊ทธ๋ฆฐ ๋ค์, ๊ทธ์ ๊ดํด ์ค๋ช ํด ๋ณด๋ผ.
31. glLoadIdentity() ๋ช ๋ น์ ํธ์ถํ ํ, ๋ฌผ์ฒด์ S,R๋ณํ์ ์์ฐจ์ ์ผ๋ก ๊ฐํ ๊ฒฐ๊ณผ CTM์ ๋ด์ฉ์ ์ด๋ป๊ฒ ํ์๋๋์ง ์ค๋ช ํด ๋ณด๋ผ.
CTM = I
CTM= CTMS =IS
CTM=CTMR=ISR
32. ๋ค์ ๋ฌธ์ ํด๊ฒฐ์ ์ํด์๋ glPopMatrix(),glRotatef( , , , ),glTranslatef( , , , ), glScalef( , , , ), glLoadIdentity(),glPushMatrix(),glutSolidSphere()๋ฑ์ ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋ชจ๋ธ ๋ทฐ ํ๋ ฌ ๊ฐ์ ์ค์ ํ๊ธฐ ์ํด์๋ glMatrixMode(GL_MODELVIEW) ๋ช ๋ น์ ์ฌ์ฉํ ์ ์๋ค. ๋จ, glutSolidSphere() ๋ช ๋ น์ ํ๋ผ๋ฏธํฐ๋ ์๋ตํด๋ ๋ฌด๋ฐฉํ๋ค.
32-1) ํ์ฌ ์ ์ญ ์ขํ๊ณ๊ฐ ๋ก๋ด ๋ชธ์ฒด ์ค์์ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์ฌ๊ธฐ์ ๋ชธ์ฒด ์๊ตฌ๋ฅผ ๊ทธ๋ฆฌ๋ ๋ช ๋ น์ด๋ฅผ ์ธ ์ค๋ก ์จ๋ณด๋ผ.
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glSolidSphere(5);
32-2) ํ์ฌ ๋ชธ์ฒด ์ค์ฌ ์ขํ๊ณ๋ฅผ ์คํ์ ์ ์ฅํ ํ, y์ถ ๋ฐฉํฅ์ผ๋ก 10๋งํผ ์ด๋ํ์ฌ ๋จธ๋ฆฌ ์๊ตฌ๋ฅผ ๊ทธ๋ฆฌ๋ ๋ช ๋ น์ ์ธ ์ค๋ก ์จ๋ณด๋ผ.
glPushMatrix();
glTranlatef(0,10,0);
glSolidSphere(2);
32-3) ํ์ฌ ๋จธ๋ฆฌ ์ค์ฌ ์ขํ๊ณ๋ฅผ ์ ์ฅํ ํ, ๋จธ๋ฆฌ ์ค์ฌ์ผ๋ก ๋ถํฐ y์ถ์ผ๋ก -4๋งํผ ์ด๋ํ๊ณ , ๋ค์ z ์ถ์ ๊ธฐ์ค์ผ๋ก x ์ถ์ ์๊ณ ๋ฐฉํฅ์ผ๋ก 4๋ ํ์ ์ํจ ๋ค์ ์ฌ๊ธฐ์ ์๊ตฌ๋ฅผ ๊ทธ๋ฆฌ๋ ๋ช ๋ น์ 4์ค๋ก ์์ฑํด ๋ณด๋ผ.
glPushMatrix();
glRotatef(4,0,0,1);
glTranlstef(0,-4,0);
glutSolidSphere(1);
โ 6์ฅ ๋ด์ฉ์ ๋ฆฌ
01. ์ขํ๊ณ
02. ๊ธฐํ ๋ณํ
03. ์ง์์ ๋ชจ๋ธ ๋ณํ
04. ์ง์์ ์์ ๋ณํ
์ ๋ฆฌํ์ผ
๋๊ธ