首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MATLAB中绘制点周围的立方体(3D盒)?

如何在MATLAB中绘制点周围的立方体(3D盒)?
EN

Stack Overflow用户
提问于 2016-05-26 05:09:09
回答 1查看 2.1K关注 0票数 0

在Matlab中,如何在3D点周围绘制三维包围框?例如,在3D点(20、3、10)周围绘制立方体(15x15x15);该点应位于立方体的内部和中心。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-26 06:11:21

你想要盒子的六面是半透明的吗?如果是这样的话,您可以使用以下内容:

代码语言:javascript
复制
% Center point is at coordinate [ax ay az].
ax = 20;  ay = 3;  az = 10;

% Full-width of each side of cube.
w = 15;

% For readability.
h = w/2;

patch_args = { 'FaceColor', 'b', 'FaceAlpha', 0.3 };

% Side #1 of 6.
patch( 'XData', ax+[-h -h  h  h], 'YData', ay+[-h  h  h -h], 'ZData', az+[-h -h -h -h], patch_args{:} )
daspect( [1 1 1] )  % 1:1:1 aspect ratio.
hold on
% Side #2 of 6.
patch( 'XData', ax+[-h -h  h  h], 'YData', ay+[-h  h  h -h], 'ZData', az+[ h  h  h  h], patch_args{:} )
% Side #3 of 6.
patch( 'XData', ax+[-h -h  h  h], 'YData', ay+[ h  h  h  h], 'ZData', az+[-h  h  h -h], patch_args{:} )
% Side #4 of 6.
patch( 'XData', ax+[-h -h  h  h], 'YData', ay+[-h -h -h -h], 'ZData', az+[-h  h  h -h], patch_args{:} )
% Side #5 of 6.
patch( 'XData', ax+[ h  h  h  h], 'YData', ay+[-h -h  h  h], 'ZData', az+[-h  h  h -h], patch_args{:} )
% Side #6 of 6.
patch( 'XData', ax+[-h -h -h -h], 'YData', ay+[-h -h  h  h], 'ZData', az+[-h  h  h -h], patch_args{:} )

% Red dot in middle.
scatter3( ax, ay, az, 'or', 'filled', 'SizeData', 150 )

hold off

如果您希望六方完全透明,则可以重复上面的代码,但将FaceAlpha设置为0.0而不是0.3

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37452053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档