'프로그래밍/게임수학'에 해당되는 글 2건

  1. 2018.01.08 2.Matrix (행렬)
  2. 2018.01.03 1. Vector (벡터)

★행렬(matrix)이란?


m개의 행(row) 과 n개의 열(column)으로 이루어진것입니다.

행렬을 m by n matrix라 읽습니다


이미지 출처 : 위키백과

이미지 검색결과


★상등행렬

행렬의 같은 꼴 : 행의 개수와 열의 개수가 각각 같은 행렬

행렬의 상등 : 같은 꼴이면서 대응하는 각 성분이 서로 같은 것


★정방행렬

행의 수 == 열의 수 인 것을 정방 행렬이라고 합니다.

n개의 행과 n개의 열을 가진 정방 행렬은 차수가 n이라고 하고

n 정방 행렬 (n by n Matrix) 라고 합니다.


★단위행렬(항등행렬,Identity Matrix)

이미지출처 : http://mp3119.tistory.com/entry/%ED%96%89%EB%A0%AC


단위 행렬은 어떤 행렬을 곱해도 같은 값이 나오는 행렬입니다.



★전치행렬

n by n 의 원소에 대칭되게 전치를 시켜준 행렬입니다.


★벡터과 행렬

벡터는 하나의 행 or 하나의 열로 표현할 수 있습니다.


행과 열로 표현한 행렬식



★행렬 연산




행렬의 곱





(벡터의 내적을 모아놓은것과 행렬의 곱셈은 같습니다)



★행렬의 성질



★행렬식(Determinant)



행렬식 구하는 법 - 소행렬식


그외 다른 방법들: http://twlab.tistory.com/41



★역행렬

( 이 역행렬을 배우기 위해 앞에 있던 것을 배웠다 해도 과언이 아닙니다. 그만큼 중요합니다)




 




★역행렬의 성질


'프로그래밍 > 게임수학' 카테고리의 다른 글

1. Vector (벡터)  (0) 2018.01.03
Posted by Dongkey
,

벡터는 방향+크기로 이루어져 있습니다.

게임에서 방향은 매우 소중합니다. 기본적으로 캐릭터가 이동을 하기 위해선 방향이 필요하기 때문이죠. 방향을 알기 위해 벡터를 알아보겠습니다.



★Vector 의 정의

Vector (벡터)  : 크기 + 방향에 의해 결정되는 양

Scalar (스칼라) : 벡터의 크기에 의해서만 결정되는 양


시점 (P) : 벡터가 시작되는 화살표의 꼬리

종점 (Q) : 벡터가 마지막 부분인 화살표의 머리

크기(P와 Q사이의 거리) : 방향과 상관없는 화살표의 길이


★Vector 의 크기

이미지 출처 : https://www.slideshare.net/QuentinKang/1-52920181

3차원 벡터의 크기
v = (vx, vy, vz)
||v|| = v2
x + v2
y + v2
z
vy
l1
l
l1
vx
vz
vy
(vx, vy, vz)
l2
1 = v2
x + v2
z
l2
= l2
1 + v2
...


벡터의 크기는 |V| 로 표기하며

V = (x,y,z)라 하면 피타고라스의 증명에 의하여

|V| = √x^2 + y^2  + z^2 이 됩니다



★Unit Vector (단위 벡터)

단위 벡터 : 벡터의 크기가 1인 벡터

벡터의 크기를 1로 만드는 행위를 Normalize(정규화) 라고 합니다.

 Uv = V / |V| 입니다.



★Vector 의 사칙 연산

덧셈 : 각각의 성분을 더해주면 됩니다. 

스칼라곱 : 각각의 성분에 스칼라를 곱하면  됩니다.

뺄셈 :  각각 성분을 빼주시면 됩니다.




★Vector 의 내적 (Dot)

내적(Dot product,Inner product,Scalar product)라고 합니다.

A ● B = A.x * B.x + A.y * B.y + A.z * B.z = |A||B|cosθ 입니다.


(증명은 생략하겠습니다.)


Vector에서 내적은 두 벡터의 사이각을 구할수 있기 때문에 매우 중요합니다. ★★★★★★★★★

A.x * B.x + A.y * B.y + A.z * B.z / |A||B| = cosθ 로

벡터 A와 B가 단위 벡터라면

A.x * B.x + A.y * B.y + A.z * B.z = cosθ 로 빠르게 각도를 구할 수 있습니다.

그래서 게임에서 캐릭터클래스가 방향을 가지고 있다면 주로 단위벡터로 방향만을 가지고 있습니다.


이미지 출처 : http://blog.naver.com/PostView.nhn?blogId=push1104&logNo=220863257036&parentCategoryNo=&categoryNo=20&viewDate=&isShowPopularPosts=false&from=postView


cos그래프에 대한 이미지 검색결과

A ● B > 0 이면 예각

A ● B = 0 이면 직각

A ● B < 0 이면 둔각 이라는 것을 알수 있습니다.


또한 내적으로 빛의 계산을 할 수 있으며 ( 이번 파트에는 다루지 않고 넘어 가겠습니다.)

투영 벡터를 구할 수 있습니다.



★벡터의 외적 (Cross)

벡터의 외적 : 두 벡터 모두에 수직인 벡터


벡터의 외적으로 법선 벡터를 구하여 평면의 앞과 뒤를 구분할 수 있습니다.


'프로그래밍 > 게임수학' 카테고리의 다른 글

2.Matrix (행렬)  (0) 2018.01.08
Posted by Dongkey
,