私はmayaviのtriangular_mesh
メソッドを使用して3Dメッシュをプロットしています。このデータは、3D空間にフェイスダウンで配置された人間のシルエットを表しています(cmap
はカメラからの距離を示すために使用できます)。ここでMayavi:y軸を中心に回転
は、プロット(面と頂点が外部のオブジェクトから来て、ここに示すことがあまりにも多くがある)を生成するために使用されるコードです:カメラを動かすことなく
from mayavi import mlab
import math
import numpy as np
import sys
import os
fig = mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1), size=(1920, 980))
a = np.array(this_mesh.vertices - refC.conj().transpose()) # this_mesh is an object created from external data files
this_mesh.faces = this_mesh.faces.astype(int) -1 # mesh data is generated by matlab, which is 1-indexed
m = mlab.triangular_mesh(x, y, z, this_mesh.faces, opacity=0.75)
mlab.axes(extent=[-1100, 1100, -1100, 1100, -1100, 1100])
を、シルエットが顔を産みます-ダウン。モデルを正面から見るために、カメラの方位角と仰角を変更して、グラフをトップダウンで見るようにしています。これは意図したシルエットを示しています。
mlab.view(azimuth=0, elevation=180)
mlab.show()
私の次の課題は、プロットの周りにカメラのパンは、右を向いシルエットで始まり、それが左に向けて仕上げた一連の画像を作成することです。
深度情報のカラーマップを取得するために、私は既にビューの方位角と仰角を移動しています(上記のコードを参照)。 Mayaviにはmatplotlibよりもカメラを移動するオプションがありますが、Y軸を中心に回転する方法はないようですので、方位角と仰角で複雑な計算を行う必要があります同じ結果ですが、どこから始めたらいいか分かりません(私は3D空間で作業するのが初めてですし、私の脳はまだそのようには思えません)。
誰でも正しい方向に向けることができますか?
ありがとう、これは役に立ちます。私は月曜日にそれを試して、それがどのように機能するか見る。 – MassivePenguin
うーん、そこにはない(間違った軸で回転している)。私はまったく異なるアプローチを試みなければならないかもしれません... – MassivePenguin