を使用して、時間とともに変化する 3D メッシュをアニメーション化しようとしていtrimesh
ます。反復ごとにメッシュを描画します。いくつかの繰り返しで、カメラの位置の向きなども変更します。ただし、プロット後にカメラがリセットされます。今後の反復でカメラの位置を固定したままにしたいと思います。どうやってやるの?
1 に答える
1
clf
またはどこでも実行すると、軸のプロパティcla
もクリアされます。camera*
それらを保存し、反復ごとに再設定する必要があります。
g = [];
while ~done
clf;
... %# generate mesh and other elements
%# set previous Camera* properties
if ~isempty(g)
set(gca, g); end
%# possibly adjust them for the current frame
...
%# save all Camera* properties
g.CameraPosition = get(gca, 'CameraPosition');
g.CameraTarget = get(gca, 'CameraTarget');
g.CameraUpVector = get(gca, 'CameraUpVector');
g.CameraUpVectorMode = get(gca, 'CameraUpVectorMode');
g.CameraViewAngle = get(gca, 'CameraViewAngle');
%# Grab the current frame
...
end
または、作成したすべてのオブジェクトのハンドルを保存し、反復ごとに削除することもできます。私の知る限り、これは軸のプロパティを保持します:
while ~done
h(1) = trimesh(...)
h(2) = patch(...)
...
%# grab the frame
...
%# delete all plot elements instead of clf/cla
delete(h)
end
ただし、この最後のものはテストしていないので、最初にそれを試してみることをお勧めします。
于 2012-09-22T08:45:32.397 に答える