1 분 소요

벡터와 포인트

포인트(Point) : 위치 O (방향 X, 크기 X)
벡터(Vector) : 방향 O, 크기 O (위치 X)

그래픽스 수학의 용어 표현

P,Q,R : 포인트 (point,위치)
u,v,w : 벡터(vector)
a,b,y : 스칼라(scalar) (그리스 알파벳)
a : 벡터를 행렬로 표기하는 경우 (소문자 알파벳)
M : 행렬

포인트와 위치 벡터의 구분

‘남산타워’를 예로 들자면,
‘실제 남산타워의 위치’가 ‘포인트’
각각의 관측자가 보는 방향과 거리로 ‘남산타워’를 표현한 경우를 ‘위치 벡터’

‘포인트’는 관측자와 상관없이 특정한 고유 위치를 다룰 때 사용하는 개념이며
‘위치 벡터’는 관측자(특정 좌표계)를 기준으로 위치를 정의할때 사용한다

(대부분의 API에서 포인트와 벡터를 구분해서 구현하지는 않으니 개념적 이해를 할 것)

포인트 - 벡터 연산

포인트 - 포인트 = 벡터

  • ‘위치 - 위치’ 이므로
    하나의 위치에서 다른 위치를 가리키는 벡터가 결과로 나온다
    포인트 +- 벡터 = 포인트
  • ‘위치’에서 다른 방향과 그 거리(크기)를 나타낸 것이므로
    ‘다른 위치’ 값이 나온다
    벡터 - 벡터 = 벡터
  • 하나의 벡터 u = (P - Q)와
    다른 벡터 v = (Q -R)이 존재할 때,
    u + v = P - Q + Q - R = P - R 이 되므로
    새로운 벡터로 표현이 가능하다

포인트,벡터 연산에 의한 ‘직선’과 선분의 표현

직선(Line) P(a)는
특정한 포인트 P와
직선의 방향을 나타내는 ad 를 통하여 표현 가능
P(a) = P + ad

  • 직선은 ‘완전, 무한한 선’이며
    선분은 ‘직선의 일부분’으로 이해하자

선분(Line Segment) P(a)는
(단, 여기서 a는 0~1 사이의 값)
P(a) = P + a(Q - P)
= P + ad
= (1-a)P + aQ
로 표현 (Q는 직선의 끝점)
(P와 Q 사이의 선형 변환과도 비슷하다)

이러한 point들 앞에 각각 scalar를 곱해 더해주는 것을
Affine Combination(Affine Sum)이라고 한다
(선형 변환과 비슷하지만 선형 변환에 ‘이동’을 추가한 것이
애파인 변환)

  • 그래픽스와 관련된 기하학에서 ‘애파인 변환’은
    점, 직선, 평면을 ‘변환’하였을 때, 계속 점, 직선, 평면으로 유지되는 것을 의미
    (ex : 3차원 공간의 직선에 애파인 변환을 적용하면 여전히 직선)
    (+ 점(길이가 0인 직선)으로 변환될 수도 있음)
    (raytrace에서 3차원 평면이 2차원 공간으로 투영되는 변환이 애파인 변환)

행렬 벡터

프로그래밍(ex : dx)에서 많이 사용하는 방식
u = (1,2,3)
이런 방식으로 표현

‘세로 표현식’도 존재
이것을 가로로 표현할땐 반드시 Transpose 했다 표시

벡터와 포인트를 행렬로 표현할때
마지막이 0이라면 ‘벡터’
마지막이 1이라면 ‘포인트’로 구분한다

댓글남기기