Joy of Vex [Day07]
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일 때) 두번째 인풋에 들어온 정보와 가장 가까운 위치 포지션 벡터값
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일 때) 두번째 인풋에 들어온 정보와 가장 가까운 위치의 점 포인트 넘버
가장 가까운 포인트 넘버를 색으로 표현하기
스캐터에서 흩뿌린 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라고 하면 점이 있는 부분이 아래로 내려간 형태로 만들어짐
난이도가 올라간 게 확 체감이 되는 날이었다..
포인트 펑션 자체는 완전히 이해했다고 생각했지만 이걸 활용하는 부분에서 또 헷갈리는 부분이 있어서 완전히 이해한 게 아니었구나를 느꼈다..!