iPython Notebook を使用して、次のようなコードで地球儀を表示することができました。
from mayavi import mlab
from mayavi.sources.builtin_surface import BuiltinSurface
ocean_blue = (0.4, 0.5, 1.0)
r = 6371 # km
sphere = mlab.points3d(0, 0, 0, name='Globe',
scale_mode='none', scale_factor=r * 2.0,
color=ocean_blue, resolution=50)
sphere.actor.property.specular = 0.20
sphere.actor.property.specular_power = 10
continents_src = BuiltinSurface(source='earth', name='Continents')
continents_src.data_source.on_ratio = 1 # detail level
continents_src.data_source.radius = r
continents = mlab.pipeline.surface(continents_src, color=(0, 0, 0))
しかし、マウスを使用して結果の 3D ウィンドウを操作する場合、UI はマウスのドラッグをシーンを回転させる試みとして左または右に解釈するため、正しい向きを維持することは非常に困難です (またはカメラ?) 地球自体の軸ではなく、ウィンドウの現在の垂直軸の周り。
いくつかの Mayavi パラメータを設定することによって、軸が真上または下を向いているかどうかに関係なく、左または右のマウスドラッグがその軸を中心に地球を回転させるように、ユーザー対話コードを制約する方法はありますか?または、マウス ドラッグの UI イベント ハンドラーとして登録された Python コードを取得することでしょうか。