私はMATLABを使用して3Dデータを表示しています。私は、GUIを使用して、ビューアングル、ズーム、パンに変更します。このビューを保存し、後でそれを他の図に適用するにはどうすればよいですか(多かれ少なかれ同じデータを含む)? view
は私に行列を与えますが、これを他の人物にどのように適用できますか?MATLAB 3Dビューポートを保存
ありがとうございます!
私はMATLABを使用して3Dデータを表示しています。私は、GUIを使用して、ビューアングル、ズーム、パンに変更します。このビューを保存し、後でそれを他の図に適用するにはどうすればよいですか(多かれ少なかれ同じデータを含む)? view
は私に行列を与えますが、これを他の人物にどのように適用できますか?MATLAB 3Dビューポートを保存
ありがとうございます!
別の図に、現在の画角を使用するには、あなたができる:
% call when the source axes is the current axes
[az, el] = view;
% call when the target axes is the current axes
view (az, el);
それとも、あなたはview
財産のget
とset
を使用して同じことを行うことができます。 >Generate m-file
- file
に行く、あなたは3Dを持っているとき、あなたがそれを望むように把握 -
しかし、あなたが一緒に言及したすべてのビューのプロパティを適用するために、MATLABの組み込みオプション「m個のファイルを生成する」を使用する方が簡単です3Dデータを入力として取得し、設定を適用するmファイルが作成されます。 (ターゲット軸と仮定すると、現在のものです)
plot3(sin(t),cos(t),t);
pba = get(gca, 'PlotBoxAspectRatio');
dar = get(gca, 'DataAspectRatio');
cva = get(gca, 'CameraViewAngle');
cuv = get(gca, 'CameraUpVector');
ct = get(gca, 'CameraTarget');
cp = get(gca, 'CameraPosition');
し、現在の軸にそれを適用するには:
別のオプションは、これらの関連する設定を自分で(ちょうど生成されたMファイルを検査)保存することです。
set(gca, 'PlotBoxAspectRatio',pba);
set(gca, 'DataAspectRatio',dar);
set(gca, 'CameraViewAngle',cva);
set(gca, 'CameraUpVector',cuv);
set(gca, 'CameraTarget',ct);
set(gca, 'CameraPosition',cp);
ビューを保存して適用するには、Itamar's answerを参照してください。
ズームとパンでは、軸の制限を保存するだけで済みます。 get/setでxlim、ylim、zlimまたは対応する軸プロパティ(XLimなど)を使用します。限界値を格納するための現在の軸の
:
xl = xlim;
yl = ylim;
zl = zlim;
またはAxesの特性を有する:
xl = get(gca,'XLim');
別の図形に軸に適用する:
xlim(new_axes_handle,xl) % you can skip new_axes_handle for current axes
ylim(new_axes_handle,yl)
zlim(new_axes_handle,zl)
または
set(new_axes_handle,'XLim',xl,'YLim',yl','ZLim',zl)
ところで
、Itamarの答えに加えて、あなたはすべての構造に一度のAxesプロパティを取得することができます:あなたは新しい軸に適用したくないフィールドを削除
ax_properties = get(gca);
、 SETを使用してください:
set(new_axes_handle,ax_properties)
構造にUserDataも含まれているので注意してください。このフィールドを最初に削除します。
rmfield(ax_properties,'UserData')
OMG、手動調整とMファイル生成オプションは私のヒーローです。私が最初からわかっていたのは、これだけでした。
axes1 = axes('Parent',Plot_ele,'PlotBoxAspectRatio',[1 1.70454545454545 1.7],...
'DataAspectRatio',[1 1 1],...
'CameraViewAngle',7.48227189414101,...
'CameraUpVector',[-0.0256575066196788 0.989185543639328 -0.144407938178721],...
'CameraTarget',[255.013054349713 397.874703616223 449.003273637903],...
'CameraPosition',[1445.8877301745 1407.25270740567 7151.59363497921]);
% xlim(axes1,[0 528]); % uncomment to preserve axes x-limits
% zlim(axes1,[0 897.6]); % uncomment to preserve axes z-limits
hold(axes1,'all');