개인공부/게임수학(5)
-
7-3 내적을 활용한 벡터의 투영
1 2 3 4 5 6 // 투영된 위치와 거리 계산 Vector2 projectedV = (lineEnd - lineStart).GetNormalize(); Vector2 projectingV = point - lineStart; Vector2 projectV = projectedV * (projectedV.Dot(projectingV)); Vector2 projectedPoint = lineStart + projectV; float distance = (projectedPoint - point).Size(); cs 위의 식 결과로 투영할 벡터의 크기가 1이면 단순하게 정리가 되므로 Nomalize값을 받는다.
2023.06.07 -
7-1 내적을 활용한 목표물 감지
코드 플레이어의 시야벡터와 playerToTarget을 각각 단위벡터로 만들고 둘을 내적한 결과값이 시야 범위 안에 있는지 계산하고 플레이어 탐지 범위안에 있으면 목표물을 감지한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // 플레이어 이동 Vector2 inputVector = Vector2(input.GetAxis(InputAxis::XAxis), input.GetAxis(InputAxis::YAxis)).GetNormalize(); Vector2 deltaPosition = inputVector * mov..
2023.06.07 -
6.4 선 그리기 알고리즘
브레젠험 알고리즘을 구현하는 함수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 void WindowsRSI::DrawLine(const Vector2& InStartPos, const Vector2& InEndPos, const LinearColor& InColor) { Vector2 cl..
2023.06.06 -
6-1 행렬 곱셈으로 이동 구현하기
아핀 변환행렬을 사용하여 크기,회전, 이동을 구현하였다.
2023.06.05 -
5-2 역행렬을 사용해 원래 형태로 되돌리기
코드 합성행렬의 경우에는 크기,회전,전단변환 순서대로 변환을 적용하였고 역행렬의 합성행렬은 역순으로 곱해주어야 올바른 결과가 나온다 ( 행렬의 곱셈에서는 순서를 바꾸면 안됨)
2023.06.03