[英]How to draw a cube (3D box) around a point in MATLAB?
如何在 Matlab 中圍繞 3D 點繪制 3D 邊界框? 例如,圍繞 3D 點 (20,3,10) 繪制立方體 (15x15x15); 該點應位於立方體的內部和中心。
你想讓盒子的六個面是半透明的嗎? 如果是這樣,您可以使用以下內容:
% 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.