본문 바로가기
STL/한눈에보기

numpy-stl mesh 데이터를 pyvista PolyData 로 바꾸기가 힘든 이유

by 만다린망고 2023. 12. 8.
반응형

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 찾아주어야 합니다. 불가능하진 않지만 상당한 계산량을 요구합니다. 

반응형

댓글