공부 7

게임에서의 내적과 외적의 활용

플레이어와 몬스터가 있을 때, 몬스터가 플레이어의 어느 방향에 있는지 어떻게 체크 할까? 1. 내적길이가 1인 벡터끼리의 내적은 -1 ~ 1 사이의 값을 반환합니다. 방향이 정 반대인 경우는 -1방향이 완전 같은 경우는 1을 반환합니다.이러한 내적의 성질을 이용하여 몬스터의 방향을 유추할 수 있습니다. 1.1 방향 벡터 구하기몬스터의 위치에 플레이어의 위치를 뺀 vector의 길이를 1로 만들면 몬스터로의 방향 벡터를 구할 수 있게됩니다 1.2 내적하기몬스터의 방향 벡터와 플레이어의 forward 벡터를 내적한 값이 0.7보다 크다면 정면에 있다고 유추 할 수 있고,-0.7보다 작다면 뒤에 있다고 유추할 수 있겠습니다. 2. 외적정면과 뒷면은 forward 벡터의 내적을 통해서 구할 수 있다면 왼쪽 오른..

공부/수학 2025.03.04

변환 행렬 (SRT)

SRT는 Scale, Rotation, Translation의 약자로 DX에서의 SRT는 크기와, 회전, 이동을 뜻함 - Translation (x, y, z)의 좌표가 있을때 이 좌표를 x축으로 1만큼 이동하고 싶다 라고 할때는 너무나 당연하게도 x+1을 해주면 됨 이게 바로 Translation 변환 행렬의 개념이라고 볼 수 있음 (x,y,z)를 넣어서 (x+1,y,z)가 나오게 하려면 간단하다! 행렬의 곱이 어떤식으로 동작하는지만 생각해 보면 되는데 w라는 가상의 원소를 넣어두고 (x,y,z,w) 벡터에 더해주고 싶은 값을 abc에 넣어준다면 Translation 변환 행렬 완성 - Scale scale은 그냥 곱해주면 되는거기 때문에 translation보다 쉬움! scale이 2배 더 커지게 하..

공부/수학 2022.12.01

좌표계 변환 행렬

A좌표계의 P벡터를 B좌표계의 좌표로 변환 시키는 행렬 좌표계 변환 행렬 - 벡터의 변환 A좌표계에서 P의 위치는 x * (X축 단위벡터) + y * (Y축 단위벡터) 그렇다면 너무나 당연하게도 B좌표계에서 P의 위치는 x * (A좌표계의 X축 단위벡터를 상대적으로 표현한 단위벡터) + y * (A좌표계의 Y축 단위벡터를 상대적으로 표현한 단위벡터) 즉 B좌표계에서의 X,Y축 단위벡터를 이용하면 간단하게 변환이 된다는것을 알 수 있음 이것을 3차원으로 일반화 하면 - 점의 변환 점에 대한 좌표 변경은 벡터와 아주 약간 다름 A 좌표계의 점 P는 위 처럼 표현할 수 있는데 여기서 Q는 A의 원점을 뜻함 즉 벡터의 변환과 달리 점의 좌표계 변환은 좌표계의 원점을 추가로 더해줘야 함 그렇다면 B 좌표계의 점 ..

공부/수학 2022.12.01

투영 벡터 구하기

두 벡터가 A = (3, 2), B = (4, 1) 일때 벡터 B에 대한 벡터 A의 투영 벡터를 구해보자!! A의 투영벡터는 A'임 즉 A'를 구하면 됨 우선 A'의 길이는 cosθ = A'(밑변) / A(빗변) 이기 때문에 A'의 길이는 = cosθ * A의 길이 라는걸 알 수 있음 그렇다면 A' 의 벡터는 어떻게 구하면 될까!!? 간단함! A의 길이 * cosθ * [B의 단위벡터] 를 곱하면 됨 1. A의 길이 킹타고라스의 정리를 이용하면 됨 √(3² + 2²) = √13 이 A의 길이가 됨 2. B의 단위벡터 단위벡터는 킹타고라스의 정의로 B의 길이를 구한 후 벡터B에 나눠주면됨 즉 B의 단위벡터 = ( 4/√17, 1/√17 ) 지금 까지 계산해서 나온 값들을 바탕으로 다시 식을 써보자면 A'의..

공부/수학 2022.08.26

벡터의 내적

벡터의 내적은 그 결과가 벡터가 아닌 스칼라가 되는 벡터의 곱셈임내적 | 內積 | inner product적은 '곱한다'는 뜻이다. 벡터의 곱하기는 두 가지 정의가 있는데, 내적은 벡터를 마치 수처럼 곱하는 개념이다.벡터에는 방향이 있으므로, 방향이 일치하는 만큼만 곱한다. 예를 들어 두 벡터의 방향이 같으면, 두 벡터의 크기를 그냥 곱한다. 두 벡터가 이루는 각이 90도일 땐, 일치하는 정도가 전혀 없기 때문에 내적의 값은 0이다. 내적은 한 벡터를 다른 벡터로 정사영 시켜서, 그 벡터의 크기를 곱한다. --- https://wikidocs.net/22384 내적 계산법- 선분 OA 를 선분 a, OB를 선분 b라고 정의할때 벡터의 내적은 a • b가 됨!참고로 곱하기 표현은 외적의 경우 X로 내적은 ..

공부/수학 2022.08.23