1일 1깡의 - Vector Addition

Vector Addition


개요 및 목적

이번 챕터에서는 Vector구성요소, 방향(direction)과 길이(length) 혹은 크기magnitude)을 컨트롤 하는 방법으로 Vector Addition과 Subtract을 소개합니다. 오브젝트나 포인트 사이의 거리나 넓이를 계산하거나 벨로서티의 방향을 같은 힘의 크기로 바꾸거나 변형을 주어야 할때 유용할 것입니다. 

What is Vector?

Vector는 방향(direction)과 길이(length or Magnitude) 를 가지고 있습니다.

Vector = Direction * Magnitude 로 분리할수 있습니다.  

이것은 후디니에서 Velocity를 컨트롤 할때 좋은 힌트가 됩니다. 방향설정후힘을 자신이 원하는 값으로 언제든지 변화를 줄수 있습니다.  Velocity(속도) vector를 Houdini wrangle node 에서 다음과 같이 정의 할 수 있을것입니다. 

vector Direction = normalize(@v);  
float Magnitude = length(@v);
@v =  Direction * Magnitude;


이와 같이 후디니의 펑션을 이용하면 간단하게 결과를 얻을수 있다. 펑션이 담고 있는 수학적인 내용은 다음과 같다.

Vector의 방향을 구하는 방법(Normalize)


Normalize는 벡터의 길이는 1의 단위로 만드는 것입니다. 이렇게 함으로서 수학적으로 계산이 간단해지고 데이터 활용에 많은 가능성이 열리게 됩니다.


Houdini Wrangle

vector Direction = normalize(@v);



길이를 구하는 공식(Magnitude, length formula)
길이를 구하는 방법으로 피타고라스 정리를 사용해보겠습니다.

* 피타고라스 정리 : 직각 삼각형의 두 직각변 를 각각 한 변으로 하는 정사각형 면적의 합은 빗변를 한 변으로 하는 정사각형의 면적과 같다


c2 = a2 + b2  

c =a2 + b2   


Houdini Wrangle

float a = 5; float b = 3; @c = (a*a)+(b*b); @c = sqrt(@c); float norm_a = a/@c; float norm_b = b/@c v@nnvA = set(norm_a,norm_b,0); @c_norm = (norm_a*norm_a)+(norm_b*norm_b); @c_norm = sqrt(@c_norm); @result2 = length(@P); v@nnv = normalize(@P);


Vector Addition

Vector Introduction https://mathinsight.org/vector_introduction


Reference

수학기호  https://librewiki.net/wiki/%EC%88%98%ED%95%99_%EA%B8%B0%ED%98%B8

Vector Introduction https://mathinsight.org/vector_introduction

궁금한게 있으세요~~ 이곳에서 함께 나눌수 있어요.


댓글

이 블로그의 인기 게시물

1일1깡의(짧은 Houdini tip) - Velocity

1일 1깡의 - Vex 나만의 라이브러리 만들기