반응형
numpy-stl 의 mesh 모듈에서 stl 을 생성하는 방식을 먼저 알아보겠습니다. mesh 모듈에서는 하나의 face 를 구성하는 점의 좌표만을 이용하여 face 를 정의합니다. 어떤 face1 을 구성하는 점의 좌표가 p1,p2,p2 라고 한다면 아래와 같이 정의되는 것입니다.
face1=[p1,p2,p3]
p1,p2,p3는 각각 크기가 3인 벡터입니다.
반면! pyvista 는 사용할 점들을 모아놓은 배열을 정의하고, 배열의 인덱스를 가져다가 face 를 정의합니다. 예를들어 face1 을 구성하는 점이, 점들을 모아놓은 배열에서 각각 2,8,4 번째라면 face1 은 아래와 같이 정의됩니다.
face1=[2,8,4]
자, 이제 numpy-mesh 로 정의된 stl 을 pyvista 로 변환해야하는 상황을 생각해봅시다. 먼저 face 를 구성하고 있는 모든 점들을 한데 모아놓고 unique 한 것들만 추려내서 하나의 배열 A에 모아줍니다. 이제 face 를 구성하는 각 점들을 배열 A의 각 원소와 비교해가며 일치하는 점의 index 를 찾아주어야 합니다. 불가능하진 않지만 상당한 계산량을 요구합니다.
반응형
'STL > 한눈에보기' 카테고리의 다른 글
파이썬 STL 시각화 패키지 numpy-stl 글 하나로 끝내기 (0) | 2023.12.08 |
---|---|
파이썬 STL 시각화 패키지 pyvista 글 하나로 끝내기 (0) | 2023.12.08 |
댓글