64일차(4-04) 벡터 재정리
쥬신게임개발학원/3. DirectX SDK의 기초 : DirectX SDK벡터 정리(코딩 기준)
벡터: 힘(화살표의 길이)과 방향을 가지고 있는 데이터(방향 벡터)
최소2개 최대 4개
2개: X,Y 축 선상의 힘과 방향
4개: 3차원(x,y,z) + 위치인지 방향인지(w)
힘과 방향: 원점(0,0)부터 시작
화살표가 어디에 있든 길이와 방향이 같으면 모두 같은 벡터
위치벡터: 단순히 객체의 위치를 표현하기 위한 2,3차원 상에서 사용하기 위해서 사용함
벡터의 길이: 피타고라스의 정의 루트(x 밑변 제곱 + y 높이 제곱 + z 깊이 제곱)
단위 벡터: 벡터의 길이가 1인 벡터
Normalize(단위 벡터 화): 벡터의 각 요소 xyz를 벡터의 길이로 나눔
->방향을 유지한채 길이를 1로 만듦
->초기화(0, NULL)이 아님!->단순한 위치 벡터가 됨
벡터의 덧셈: 객체의 위치가 점으로 표현되 있으면 이 위치에다 이동하고 싶은 방향 벡터를 더함 + 이동할 거리
->해당 방향으로 움직임
벡터의 뺄셈: 방향 벡터
A-B(B가 A를 바라봄) B-A(A가 B를 바라봄)
단위 벡터화 한 후 상수를 곱하면 방향은 유지한 채 한 틱당 해당 상수만큼 움직인다
-> 상대방을 따라가게 하기 위해 사용
벡터의 내적: 2개의 방향 벡터 A벡터 ‘ B벡터
위치 벡터가 아님!
결과: 하나의 벡터 A를 또 다른 벡터위에 수직으로 투영시킨 벡터 A`의 길이와 투영받은 벡터 B의 길이를 곱함
= ||A`|| * ||B|| = ||A|| * 코사인세타 * ||B|| -> 단위 벡터화 해서 A와 B의 길이는 1이 됨
-> == 1 * 1 * 코사인세타 == 각 원소끼리 곱하고 더한 것
코사인 세타 : 밑변/빗변 ||A|| / ||A`||
||A`|| = ||A|| * 코사인세타
응용: 두 벡터 사이의 각도를 구할 때
면접 질문:
인성(대학 때 생활..)
기술(이터레이터로 stl로 이레이즈할때 주의해야 할 사항)
벡터의 외적 : A벡터 x B벡터
두 벡터에 모두 수직인 벡터를 구한다
3D가서 회전축을 기준으로 할 때(비행 슈팅게임)
포폴
얼마나 게임답게 만들었는가?
이 게임의 시작과 끝을 정확하게 맺었는가?
-> 단순한 테스트 프로젝트가 아닌
컨테츠의 양
'쥬신게임개발학원 > 3. DirectX SDK의 기초 : DirectX SDK' 카테고리의 다른 글
메모리 릭 찾기 (0) | 2017.10.16 |
---|---|
여러분들의 성원에 힘입어 비공개로 전환합니다 (1) | 2017.08.04 |
63일차(4-03) 벡터의 외적 (1) | 2017.08.03 |
62일차(4-02) 벡터 (1) | 2017.08.02 |