Joy of Vex

Joy of Vex [Day07]

후디니하는 돌 2023. 2. 7. 17:05

point function

point ( 1, "P", 2 )

두번째 input포인트 넘버 2번포지션값(@P)

 

박스의 5번 점은 {1,1,0}이라 노란색으로 나타남

최종적으로 checkinfo라는 어트리뷰트는 TWA라는 입력값을 나타냄

 

visualizer

attribute에 원하는 어트리뷰트를 넣어주면 씬뷰에서 그 어트리뷰트를 시각화해줌

attribute randomize로 num이라는 어트리븃 생성 

global scale이 1이고, dimension이 1일 때 0 과 1 사이의 랜덤한 float값이 num이라는 하나의 어트리븃으로 생성됨

소수점을 없애기 위해서 attribwrangle을 활용해 100을 곱해주고 floor로 소수점을 없애줌

@ptnum으로 포인트넘버를 가져오면 정보가 그대로 가져와짐

 

minpos & nearpoint

한 점에서 가장 가까운 위치

minpos 의 결과는 vector 값, nearpoint의 결과는 int 값(포인트 넘버가 반환됨)

한 geometry가 있다면 minpos는 점,선,면에서 가장 가까운 위치의 벡터값을 나타내주고,

nearpoint는 그 geometry 표면의 점 중에서 가장 가까운 점을 나타내준다.   

 

minpos(1,@P)

모든 포인트에서(run over가 points일 때) 두번째 인풋에 들어온 정보와 가장 가까운 위치 포지션 벡터값

 

minpos로 grid에서 가장 가까운 러버토이 위의 위치 벡터값이 나타난다.

d = length(@P) 였을 땐 원점으로부터의 거리를 구했었고, 원형의 형태로 파형이 생성되었음

minpos를 활용하면 러버토이의 형태로 파형이 생겨남

(attribute wrangle에 input 2에는 레퍼런스가 되는 점을 넣음)

 

addpoint할 때 addpoint(1,a)라고 해도 같은 결과가 나온다. 1으로 해야하는건가?

러버토이의 점 2개와, 새로운 점 2개를 생성하기 위해서는 첫번째 attribute에 모든 내용을 적어도 되지만,

그렇게 하면 각각 점을 선으로 이을 수 없다.

add 에서 by group, add를 by attribute로 하고 이름을 ID로 설정해주면 같은 ID끼리 연결된다.

 

nearpoint(1,@P)

모든 포인트에서(run over가 points일 때) 두번째 인풋에 들어온 정보와 가장 가까운 위치의 점 포인트 넘버

nearpoint로 circle에서 가장 가까운 grid의 포인트넘버 값이 나타난다.

가장 가까운 포인트 넘버를 색으로 표현하기

스캐터에서 흩뿌린 7개의 점: 

왼쪽은 grid에서 scatter로 랜덤하게 7개를 뿌려주고, attribute randomize로 의 색상을 랜덤하게 만들어준 상태

int pt = nearpoint(1,@P); 로 그리드의 점들에서 가장 가까운 7개의 의 포인트 넘버를 구해준다.

그리드의 각각 포인트에 0,1,2,3,4,5,6 숫자들이 입력되고

@Cd = point(1,"Cd",pt); 로 각각 그리드의 점들에 색상을 넣어줌

들의 색 정보를 그리드에 불러온 것

 

@P.y = d라고 하면 이 있는 부분이 아래로 내려간 형태로 만들어짐

 

 


난이도가 올라간 게 확 체감이 되는 날이었다.. 

포인트 펑션 자체는 완전히 이해했다고 생각했지만 이걸 활용하는 부분에서 또 헷갈리는 부분이 있어서 완전히 이해한 게 아니었구나를 느꼈다..!