2013-10-07 3 views
0

아무런 성공없이 mayavi 문서에서 몇 가지 힌트를 찾으려고합니다.mayavi에서 iso_surface의 일부를 제거하십시오.

복잡한 데이터의 시각화에서 계산 된 iso_surface의 일부를 제거하고 싶습니다. 예, 나는 내가 명시 적으로

field.filter.model_bounds = array([-1., 1., -1., 1., -1., 1.]) 

하지만 내가 할 수있는 같은 것을 수행하여 내 데이터가 X, Y 또는 z에 따라 제한된다는 설명하여이 iso_surface의 일부를 제거 할 수 있습니다

field = mlab.pipeline.gaussian_splatter(data) 
iso = mlab.pipeline.iso_surface(field, contours=[0.07]) 

같은 코드가 있습니다 임의의 지시 비행기에 대해 이것을 설명 할 방법을 찾지 못한다. 예를 들어, (1,1,1) 방향으로 데이터를 제한하고 싶습니다.

이 방법이 있습니까?

답변

0

원하는 표면을 표시하는 데 문제가있는 경우에 당신은 당신이 당신이 원하는 것을 얻을해야 표시 한하고자하는 표면 주변에 충분한 그들을 꽉 만들 수 있다면, contours의 인수와 함께 주위를 연주 해 봅니다 ..

당신이 {비,} 작업 예를 좀 더를 게시 할 수 있다면

난 당신이 데이터를 클립하는 data_set_clipper 을 사용할 수 있습니다

1

을 도울 수 있습니다. 클리퍼는 대화 형 또는 대화 형이 아닙니다. '비 대화 형 버전을 선보일 예정 :

fld = mlab.pipeline.scalar_field(data) 
clip = mlab.pipeline.data_set_clipper(fld) 
clip.widget.widget_mode='ImplicitPlane' 
clip.widget.widget.enabled=0 
clip.widget.widget.normal=(1,1,1) 
clip.widget.widget.origin=(20,20,20) #(0,0,0) is not the centre but the corner 
iso = mlab.pipeline.iso_surface(clip, contours=[0.07]) 

더 자주 다른 data_set_clippe로 잘린 데이터를 입력해야 클립하려면 : 그러나

clip2=mlab.pipeline.data_set_clipper(clip) 

, 나는 완벽하게 만족하지 않다 내 접근 방식은 많은 자원을 사용하기 때문에. 누군가가 더 나은 해결책을 가지고 있다면 나는 그것을 보게되어 기쁠 것입니다.