MATLAB绘制长方体

MATLAB绘制长方体[patch]

  • 1. 效果展示
  • 2. 代码汇总
  • 3. 函数调用
  • 4. patch函数
  • 5 多多点赞交流

1. 效果展示

例1. 绘制一个原点在(5,10,15),尺寸XYZ为(2,3,4)的长方体:
MATLAB绘制长方体_第1张图片
通过调整坐标轴,可以做出比例适当的图片,如下:
MATLAB绘制长方体_第2张图片

2. 代码汇总

function PlotCuboid(originPoint,cuboidSize)
%% 函数功能: 绘制长方体
% 输入:
%       originPoint:长方体的原点,行向量,如[0,0,0];
%       cuboidSize:长方体的长宽高,行向量,如[10,20,30];
% 输出:长方体图形

%% 根据原点和尺寸,计算长方体的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];
vertex=originPoint+vertexIndex.*cuboidSize;

%% 定义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=[1;2;3;4;5;6;7;8];

%% 绘制并展示图像
% patch 对图像进行绘制。
% view(3) 将图像放到三维空间中展示。
% 其余的是设置背景等等
patch('Vertices',vertex,'Faces',facet,'FaceVertexCData',color,'FaceColor','interp','FaceAlpha',0.5);
view(3);
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Cuboid');
fig=gcf;
fig.Color=[1 1 1];
fig.Name='cuboid';
fig.NumberTitle='off';

文件自行取用:PlotCuboid.m
提取码:24bg

前面的注释比较清楚,还需要讲一下patch函数。

3. 函数调用

调用方法很简单,第一个参数是长方体的原点,第二个参数是长宽高,输入命令:

PlotCuboid([5,10,15],[2,3,4])

回车运行即可得到例1中的结果。
在这里插入图片描述

4. patch函数

patch函数有多种调用形式,我们只谈用到的。

格式如下:

patch('Vertices',V,'Faces',F,Name,Value);

Vertices指示后面的参数是用到的顶点,即V中存储的是顶点。在本文中,V就是vertex,例1中的Vertex:
MATLAB绘制长方体_第3张图片
可以看到,对应空间中的8个顶点。

Faces指示后面的参数是需要绘制的面,面由顶点组成。在本文中,F就是facet,例1中的facet:
MATLAB绘制长方体_第4张图片
长方体一共是6个面,每个面由四个点组成,1-8即为8个顶点vertex的索引。

注意: 四个点可以形成两个面,实际上是绘制了两个三角面)

Name-Value对指定了一些特殊的属性:

FaceVertexCData:指定顶点的颜色
FaceColor:指定面的颜色(这里的interp是使用顶点颜色插值)
FaceAlpha:指定面的透明度

其余的可以去看官方文档继续了解。

5 多多点赞交流

你可能感兴趣的:(MATLAB代码,MATLAB,patch,长方体)