*백터
;크기와 방향을 갖는 물리량.
*스칼라
;크기만 갖는 물리량.
2차원 좌표상에 점을 표시할때 일반적으로 x, y 두 개의 좌표를 P(x, y)라고 지정.
벡터란 원점을 기준으로 한 점.
벡터 V(x, y)를 표시할때 (0, 0) 에서 (x, y)의 방향을 가르키는 발.
*단위벡터
;크기가 1인 벡터
두 벡터 V(1, 1)와 V(2, 2)가 있을때 두 벡터는 크기는 다르지만 방향은 같다.
두 벡터를 크기는 무시하고 오직 방향만 계산하고 싶을때 단위 벡터를 만든다.
어짜피 단위 벡터의 크기는 1이니까,
벡터 V(x, y)가 있을때 벡터의 크기는 sqrt(x*x, y*y) 이다.
v = sqrt(x*x, y*y);
vx /= v;
vy /= v;
이때 벡터의 크기는 v = 1이 나와야 한다.
*벡터의 내적
;두 벡터의 면적. 벡터 사이의 각도를 구할때 사용한다.
float v;
// 먼저 두 벡터를 단위 벡터로 만든다.
v = sqrt(Vector1.x*Vector1.x + Vector1.y*Vector1.y + Vector1.z*Vector1.z);
Vector1.x /= v;
Vector1.y /= v;
Vector1.z /= v;
v = sqrt(Vector2.x*Vector2.x + Vector2.y*Vector2.y + Vector2.z*Vector2.z);
Vector2.x /= v;
Vector2.y /= v;
Vector2.z /= v;
// 내적하기
float theta;
float degree;
theta = Vector1.x*Vector2.x + Vector1.y*Vector2.y + Vector1.z*Vector2.z;
theta = acos(theta);
degree = theta * (180 / 3.141592);
|
cs |
*벡터의 외적
;두 벡터의 직각으로 지나는 벡터. 외적은 3차원의 공간에만 존재한다.
float n_x, n_y, n_z;
n_x = Vector1.y * Vector2.z - Vector1.z * Vector2.y;
n_y = Vector1.z * Vector2.x - Vector1.x * Vector2.z;
n_z = Vector1.x * Vector2.y - Vector1.y * Vector2.x;
|
cs |
'::public > 수포자를 위한 게임 수학' 카테고리의 다른 글
역행렬 (0) | 2019.11.15 |
---|---|
행렬(matrix) (0) | 2019.11.15 |
백터의 내적(dot product) (0) | 2019.11.15 |
탄젠트(tangent) (0) | 2019.11.14 |
사인과 코사인(Cin & Cos) (0) | 2019.11.14 |