Basic Code

Curve Geometry 등분하기 (PoinAtSegmentLength / PointsAtEqualSegmentLength / PointAtParameter / PointsAtEqualChordLength)

작성자 정보

  • Manager 작성
  • 작성일

컨텐츠 정보

본문


다이나모에서 Curve를 등분하는 방법은 여러가지가 있습니다.

좌측 Dynamo Library에 가보면 
아래 이미지처럼 커브를 등분 할 수 있는 다양한 노드들이 있는데요.  

ee4d16dbeb5c423487d90a95e4cfc91c_1649476038_2503.png

이 중에서 자주쓰이는 

-Curve.PointAtSegmentLength
-Curve.PointsAtEqualSegmentLength
-Curve.PointAtParameter
-Curve.PointsAtEqualChordLength

4가지 노드에 대해서 알아보도록 하겠습니다.

ee4d16dbeb5c423487d90a95e4cfc91c_1649476508_2431.png
 
Curve.PointsAtSegmentLength
 이 노드는 전체 커브에서 SegmentLength에 입력된 값(길이)만큼 떨어진 위치에 포인트를 생성합니다.
위 이미지처럼 5000이라는 값을 segmentLength에 입력하면 커브의 시작점에서 길이가 5000만큼 떨어진 위치에 
포인트를 생성합니다.

잘 생성이 되었는지 확인하기 위해서 Split노드에 연결해서 확인해 보면 
첫 번째 커브[0]의 길이가 5000인 것을 확인 할 수 있습니다.


ee4d16dbeb5c423487d90a95e4cfc91c_1649477208_0932.png

Curve.PointsAtEqualSegmentLength
이 노드는 divisions에 입력된 개수만큼 커브를 등 간격으로 나눈 위치에 포인트를 생성합니다.
정말로 등 간격으로 나눈 것이 맞는지 확인하기 위해 위와 마찬가지로 Split해서 길이를 확인해 보면
3가지 커브의 길이가 모두 같은 것을 확인 할 수 있습니다.


ee4d16dbeb5c423487d90a95e4cfc91c_1649478169_1868.png

 만약 PointsAtSegmentLength 노드를 Curve.PointsAtEqualSegmentLength 노드처럼
사용하고 싶다면 간단한 코드블럭을 사용해서 위 이미지와 같이 구현할 수 있습니다.



 ee4d16dbeb5c423487d90a95e4cfc91c_1649478586_9299.png

Curve.PointsAtParameter
이 노드는 전체 커브를 0~1 사이의 도메인 값으로 치환하고
param에 입력된 도메인 값에 위치한 포인트를 생성합니다.
주의할 점은 0.5가 길이의 중심이 아닌 도메인의 중심이기 때문에 
Split으로 커브를 쪼개보면 생성된 커브의 길이가 다른 것을 확인할 수 있습니다.

(그라스호퍼의 Reparameterize 와 같다고 생각하시면 됩니다.)

ee4d16dbeb5c423487d90a95e4cfc91c_1649479041_4433.png

Curve.PointsAtEqualChordLength
이 노드는 시작점과 끝점에는 포인트를 생성하지 않고, 
divisions에 입력된 개수만큼의 커브의 내부에 포인트를 생성합니다.
Split 으로 커브를 쪼개서 확인해보면 길이가 다른 것을 알 수 있습니다.
그렇다면 포인트가 생성되는 기준은 뭘까요?
아래의 이미지를 보면

ee4d16dbeb5c423487d90a95e4cfc91c_1649479492_7508.png

먼저 커브의 시작점과 끝점을 추가하고 추가한 점을 
각각 Curve.PointsAtEqualChordLength 노드로 생성된 포인트에 연결해 Line을 생성합니다.
그리고 길이를 확인해보면 길이가 같은 것을 알 수 있습니다.

즉 이 노드에서 커브의 포인트를 생성하는 기준은 
 각 절점을 직선으로 이었을 때 길이가 같은 위치에 포인트를 생성합니다.


지금까지 커브 지오메트리를 다룰 때 자주 쓰이는 등분 방법에 대해 알아봤습니다.
이해가 안되면 다시 한번 천천히 읽어보시고 
궁금한점이 있으면 언제든 편하게 댓글혹은 질문남겨주세요~



02.다이나모입문.png

 

            

 

관련자료

댓글 3

jwpark님의 댓글

  • jwpark
  • 작성일
감사합니다.

paul님의 댓글

  • paul
  • 작성일
seams complicated but I will learn this in the future

Massde님의 댓글

  • Massde
  • 작성일
전체 18 / 1 페이지
RSS
알림 0