본문 바로가기

벡터

C++ 커스텀 벡터 클래스 (Custom Vector3 Class For D3D) #include using namespace std; class Vector3 { public: float x; float y; float z; Vector3() { x = 0; y = 0; z = 0; } Vector3(float _x, float _y, float _z) { x = _x; y = _y; z = _z; } #ifndef 연산자 오버로딩 friend Vector3 operator+(const Vector3& a, const Vector3& b) // 벡터 덧셈 { float Vx = a.x + b.x; float Vy = a.y + b.y; float Vz = a.z + b.z; return Vector3(Vx, Vy, Vz); } friend Vector3 operator-(const .. 더보기
3D 프로그래밍을 위한 행렬 행렬 곱셈 곱 BA는 정의되지 않음 B의 열 수와 A 행 수가 같지 않기 떄문이다. 즉 AB≠BA 교환법칙이 성립되지 않음 열수 = 행수 행*열 위 식은 선형결합(일차 결합)이라 한다. 즉, 어떤 1 x N 행벡터 u와 어떤 N x M 행렬 A에 대해, 곱 uA는 A의 행 벡터들과 u의 스칼라 계수들의 선형결합이다. A(B+C) = AB +AC (A+B)C = AC + BC / (AB)C = A(BC) 결합 법칙 전치행렬 – 행렬의 행들과 열들을 맞바꾼 것 단위행렬 – 주대각 성분들만 1이고 나머지는 모두 0인 정방행렬*정방행렬: 열 수와 행 수가 같은 정사각형의 행렬*주대각: 정방행렬에서 좌상에서 우하로의 주된 대각선이 있는 성분들 단위행렬은 곱셈의 항등원 역할을 한다. 즉, A가 M x N 행렬이고 .. 더보기
3D 프로그래밍을 위한 벡터 스칼라 곱셈 / 벡터의 덧셈과 스칼라의 곱셈으로 정의된 벡터의 뺄셈 길이가 1인 벡터를 단위벡터(unit vector) 임의의 백터를 단위 벡터로 만드는 것을 정규화(normalization) 내적(inner product)은 스칼라값을 내는 벡터의 곱셈이다.u와 v는 단위벡터이면 두 벡터 사이의 각도의 코사인이다. u와 v의 내각 구하기 벡터v와 단위 벡터n이 주어졌을 때 p를 내적을 이용해서 v와 n으로 표현 공식 외적 – 스칼라인 내적과는 달리 외적의 결과는 벡터이다. 외적은 오직 3차원 벡터 외적으로 구한 값은 두 벡터 u와 v에게 직교이다. 직교화: 벡터 집합을 정규직교벡터 집합으로 만드는 것을 직교화(orthogonalization)라고 부른다. 벡터 집합 { v0, v1, v2} 을 이용해서.. 더보기