2014-11-12 10 views
0

파이썬으로 많은 큐브를 플롯하는 방법을 알고 싶습니다. 각 큐브에 대해이 좌표 값 (Xmin, Xmax, Ymin, Ymax, Zmin, Zmax)과이 값에 따라 큐브를 그리는 값이 있습니다. 사실 복셀을 그려 내고 싶습니다.파이썬으로 색상 강도가있는 큐브를 그립니다.

저는 matplotlib, mayavi, OpenGL과 같은 라이브러리를 보았습니다. 그러나이 라이브러리 중 어떤 라이브러리를 사용하고 어떻게 사용할 것인지 잘 모릅니다. 나는 큐브가 쉬운 정규 그림이기 때문에 어렵지 않다고 생각하지만 해결책에 도달 할 수 없습니다.

많은 큐브를 그려야하므로 모든 큐브를 나타내는 것이 아니라 범위를 설정하는 것이 좋을 것입니다. 그리고 나는 mayavi가이 옵션을 가지고 있음을 알고 있습니다.

답변

0

mayavi에서 mlab.points3d으로 사전 정의 된 모양 목록에서 글리프 유형을 설정할 수 있습니다.

points = mlab.points3d(px, py, pz, mode='cube') 

이렇게하면 큐브의 중앙에있는 각 지점에 큐브가 그려집니다.

또한 상형 문자를 플롯 할 수 있습니다 다음 나중에 scale_factor 인수는 큐브의 크기를 변경할 수 있습니다

(또한 파이프 라인 메뉴에서이 작업을 수행 할 수 있습니다)

points.glyph.glyph_source.glyph_source = points.glyph.glyph_source.glyph_dict['cube_source'] 

과 소스 유형을 변경 .

이것은 복셀 데이터로 복셀을 그리는 데 불편한 방법이지만, 요청한대로 처리합니다.

+0

감사합니다. 나는이 해결책을 생각했지만, 큐브면이 인접 해 있었으면 좋겠다. 사이드 크기를 삽입 할 수 있다면 할 수 있지만 scale_factor 만 삽입 할 수 있습니다. – Pablo

+0

나는 mayavi에서 이것이 스케일 팩터에 대한 실험을 통해 "올바른"솔루션이라고 생각합니다. 특히 스케일을 변경하지 않아도되는 경우에 특히 그렇습니다. 또는 gylph의 크기를 직접 설정하는 일부 vtk 프로그래밍을 수행 할 수도 있습니다. 내가 생각할 수있는 mayavi의 다른 솔루션 (vtk가 아닌)은 매우 다루기 쉽고 느린 속도로 빠르게 처리 할 수있는 많은 수의 vtk 개체를 할당하는 작업을 포함합니다. – aestrivex

+0

points3D 글리프의 방향을 변경하는 방법에 대한 아이디어가 있으십니까? 예를 들어, 얼굴에 수직 인 단위 벡터 세트의 관점에서? – kevinkayaks