본문 바로가기

수학4

선형보간법(Linear Interpolation) 선형보간법이란 1차원에 두 지점 사이의 특정 지점을 계산하기 위해 직선 거리에 따라 선형적으로 계산하는 방법을 말한다. 게임에는 맵이 존재한다. 마우스 클릭으로 자유롭게 움직이는 경우도 있지만 2D에선 타일맵 기반의 게임일 경우에는 타일과 타일 사이를 이동하는 방법이 존재하여야 한다. 이때 현재 있는 타일을 p1이라고 하고, 목표인 타일이 p2라고 할 때, 선형보간법을 통해 직선상의 움직임을 구현할 수 있다. 수식이 어렵지만 이를 코드로 변환하면 그리 어려운 코드는 아니다. 두 지점 p1과 p2 사이의 p를 구하기 위해 선형보간법을 이용해보자. 매개변수로 넘겨줘야 하는 d1은 두 지점의 거리를 1이라고 가정했을 때 그 비율을 의미한다. 때문에 d1 + d2 = 1인 것이다. float lerp(float.. 2023. 4. 2.
벡터(Vector) 벡터, 사전적 정의는 다음과 같다. 벡터는 수학, 물리학, 공학에서 크기와 방향을 갖춘 양을 일컫는다. 막연한 말이다. 대체 무엇을 의미하는 걸까? 또, 벡터를 검색하면 자동으로 스칼라라는 개념도 나온다. 대체 이 둘은 무엇이길래 우리를 이렇게 어지럽게 만드는 걸까? 감수성만 충만한 문과생의 입장에서 프로그래밍의 벡터를 정리하기란 어려웠지만 열심히 찾고 또 찾아 도전해보았다. 벡터는 컴퓨터 그래픽스에서 뗄 수 없는 개념이다. 컴퓨터는 공간을 좌표로 계산한다. 특정 좌표에서 다른 좌표로 이동할 경우, 이 이동에는 방향성과 속력 즉, 힘이 들어간다. 이는 그림으로 표현하면 다음과 같다. 한 정점에서 다른 정점으로 이동하는 방향과 힘을 가진 것, 이것이 기하학적 벡터(Euclidean Vector)이다. 위 .. 2022. 12. 16.
행렬 행렬이란 무엇일까? 행렬은 간단하게 이야기하자면 표를 간략화 한 것이다. 행렬의 성분 ( i, j ) 성분을 각각 행과 열로 대응시켜 정의를 하는 것을 의미한다. 수학을 공부하지만 수학을 게임에 적용하여 사용할 것이기 때문에 자세한 내용은 생략하고 몇 가지 개념만을 집고 넘어갈 생각이다. 정방행렬 - 행과 열의 수가 동일한 정사각형의 행렬을 의미한다. 이 가운데 행과 열의 지표가 같은 원소( i = j )를 대각성분이라고 한다. 전치행렬 - 행렬의 행과 열을 맞바꾼 행렬을 의미한다. 가령 3 * 2의 행렬 A가 있다면 원소는 그대로 두고 2 * 3으로 바꾼 행렬 A^T가 바로 전치행렬이 된다. 단위행렬(uint matrix) - 항등행렬(identity matrix)라고도 하며 주대각선의 원소가 모두 1.. 2022. 12. 14.
삼각함수 & 삼각비 삼각함수란? 각의 크기를 삼각비로 나타내는 함수를 의미한다. 피타고라스의 정의를 따르면 삼각형의 각 변의 길이는 서로에 영향을 준다. 이와 마찬가지로 삼각형의 세 내각은 합이 180º로 일정하기 때문에 서로에 영향을 받는다. 이를 간단히 그림으로 나타내면 다음과 같다. 이 부분만으로는 어느 각이 싸인이고 어느 각이 코싸인인지 분간하기 어렵다. 그래서 그것을 확실하게 하기 위해 다음 그림을 준비했다. 위 그림을 통해 어느 각을 구하는 공식인지 확인이 가능하다. 특정 내각의 크기를 구하기 위해서 공식을 적용하여 값을 구했다면 여기에 라디안을 이용해야 삼각함수는 좌표상 두 정점 사이의 거리를 이용해서 두 정점의 각도를 구할 수 있다. 이를 이용해 회전을 표현할 수 있는 것이다. 중점을 설정하고 LineTo 함.. 2022. 12. 7.