2016-06-15 4 views
0

구형에 데이터를 매핑하려고하지만 azimuthal angle phi = 2 * pi에서 랩핑하는 솔기를 제거 할 수 없습니다. Mayavi 그것은 메쉬가 주기적 것을 알고하지 않기 때문에, 그 점에서 GL 정점 법선을 계산 할 수없는 것처럼Mayavi에서 주기적으로 렌더링 된 메쉬의 이음새

from mayavi import mlab 
import numpy as np 
from import_field_map import import_field_map 

data = np.empty([24, 25]) 
for ldx, line in enumerate(data): 
    for cdx, col in enumerate(line): 
     data[ldx, cdx] = ldx 

phi_range = np.linspace(0.0, 2 * np.pi, 25) 
theta_range = np.linspace(-np.pi/2, np.pi/2, 24) 
phis, thetas = np.meshgrid(phi_range, theta_range) 

x = np.cos(thetas) * np.cos(phis) 
y = np.cos(thetas) * np.sin(phis) 
z = np.sin(thetas) 

mlab.figure(1, bgcolor=(1, 1, 1), fgcolor=(0, 0, 0), size=(400, 300)) 
mlab.clf() 
mlab.mesh(x, y, z, scalars=data, colormap='jet') 
mlab.view() 
mlab.show() 

enter image description here

것 같습니다 : 나는 문제를 보여주기 위해 간단한 예제를 썼다.

답변

0

방금 ​​문제의 근원을 해결하지 못하는 해결책을 찾았습니다 (문제가 아니고 Mayavi를 잘못 사용하지 않는 한).

scipy.ndimage.zoom을 사용하면 데이터 배열을 업 샘플링하여 렌더링 된면의 수를 늘릴 수 있습니다. 그러면면 법선과 정점 법선의 차이가 너무 작아서 이음새가 더 이상 눈에 띄지 않게됩니다.