实用技巧 | MATLAB绘制长方体(附MATLAB代码)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实用技巧 | MATLAB绘制长方体(附MATLAB代码)相关的知识,希望对你有一定的参考价值。


最近在工作中遇到这样一个实际问题,如何用MATLAB绘制出长方体


为了解决这一问题,在网上查阅许多资料后,尝试将相关代码进行调整修改,最终成功解决这一问题。为了让各位后续遇到这一问题时不必再查阅大量资料,在这里将MATLAB源代码分享给各位。



实际效果


起点坐标为(1,1,1),终点坐标为(5,6,7)的长方体如下图所示:

实用技巧


如果设置起点坐标为(1,1,1),终点坐标为(1,6,7),则应显示长方形,如下图所示:

实用技巧


MATLAB源代码


%% 根据三维空间中起点坐标和终点坐标绘制长方体
%输入start_point: 起点坐标,如[1,1,1];
%输入final_point: 终点坐标,如[5,6,7];
%输出: 长方体
function plot_cuboid(start_point,final_point)
%% 根据起点和终点,计算长方体的8个的顶点
vertexIndex=[0 0 0;0 0 1;0 1 0;0 1 1;1 0 0;1 0 1;1 1 0;1 1 1];
cuboidSize=final_point-start_point; %方向向量
vertex=repmat(start_point,8,1)+vertexIndex.*repmat(cuboidSize,8,1);
%% 定义6个平面分别对应的顶点
facet=[1 2 4 3;1 2 6 5;1 3 7 5;2 4 8 6;3 4 8 7;5 6 8 7];
%% 定义8个顶点的颜色,绘制的平面颜色根据顶点的颜色进行插补
color=[0;0;0;0;1;1;1;1];
%% 绘制并展示图像
patch(Vertices,vertex,Faces,facet,FaceVertexCData,color,FaceColor,interp,FaceAlpha,0.5);
view([1,1,1]);
xlabel(X);
ylabel(Y);
zlabel(Z);
grid on
%% 设置xyz显示范围
xmin=min(vertex(:,1))-1;
xmax=max(vertex(:,1))+1;
ymin=min(vertex(:,2))-1;
ymax=max(vertex(:,2))+1;
zmin=min(vertex(:,3))-1;
zmax=max(vertex(:,3))+1;
axis([xmin xmax ymin ymax zmin zmax])
end


使用方式


只需要在脚本函数中输入长方体的两个顶点坐标,即可绘制长方体,实例如下:

clear
clc
plot_cuboid([1,1,1],[5,6,7]);


留言板

▎参考


https://ww2.mathworks.cn/help/matlab/ref/patch.html


OK,老规矩,在公众号“优化算法交流地”里回复关键词【代码】,就能获取一整套高质量智能优化算法的MATLAB代码。


以上是关于实用技巧 | MATLAB绘制长方体(附MATLAB代码)的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB 3D玫瑰花绘制(内附旋转版本)

高级绘图MATLAB应用实战系列(八十)-圣诞前夜,想表白女神?教你如何用MATLAB绘制圣诞树动态图(附MATLAB代码)

高级绘图MATLAB应用实战系列(八十)-圣诞前夜,想表白女神?教你如何用MATLAB绘制圣诞树动态图(附MATLAB代码)

怎样用WPF绘制简单的三维曲线?

序列的离散傅里叶变换(DFT)的来龙去脉并附利用MATLA的函数FFT()求序列的DFT的示例

Python绘制高斯分布(正态分布)图像,附python绘图技巧