MATLAB 如何在同一图中绘制3D图的多个视图(视角)?

我有一个 3D 图形,包含若干绘图对象。我想从几个不同的角度显示此图形,将每个视图作为子图,展示在同一图形中。如何实现?

 採用された回答

MathWorks Support Team
MathWorks Support Team 2021 年 9 月 12 日
編集済み: MathWorks Support Team 2021 年 12 月 30 日

0 投票

首先,可以使用“subplot”创建具有三个坐标轴的图形。然后,将每个对象绘制到第一个轴上,同时确保使用函数句柄保存每个绘图对象。
接下来,使用“copyobj”,参考:
https://www.mathworks.com/help/matlab/creating_plots/copy-and-delete-graphics-objects.html#bt51tv3
将多个绘图对象复制到一个新的父对象(例如第二个轴的图形),然后对第三个轴重复此步骤。最后,使用“view”函数更改每个轴上的摄像机角度,参考:
https://www.mathworks.com/help/matlab/ref/view.html
这里给出一个完整的例子:
%% Create figure with 3 subplots
f = figure('Units','normalized','OuterPosition',[0 .5 1 .5]);
ax1 = subplot(1,3,1);
ax2 = subplot(1,3,2);
ax3 = subplot(1,3,3);
%% Plot some surfaces on 1st subplot
[X,Y,Z] = peaks;
s = surf(ax1,X,Y,Z); hold(ax1,'on');
p = surf(ax1,X,Y,zeros(size(X))); hold(ax1,'off');
plotObjs = [s,p];
%% Copy plot objects to other 2 subplots
copyobj(plotObjs,ax2);
copyobj(plotObjs,ax3);
%% Set different viewing angle for each subplot
view(ax1,0,90); title(ax1,'view(0,90)');
view(ax2,90,0); title(ax2,'view(90,0)');
view(ax3,0,0); title(ax3,'view(0,0)');

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange二维图和三维图 についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!