matlab scatter函数绘制实心点_MATLAB绘制立方体 | 初识灵魂画手Patch函数

1b8b7cafe1d5ad503befbee344d8fd8a.gif

先看一下Patch()函数能干啥,需要详细信息的输入doc patch就好了

86fe54d80d3ea3884a07fa194efde339.png
patch画作1
be8d0c9dcee4aa58a0b40af3b5b8a970.png
patch画作2
2ee0e719a305bd3b2f61870061909b6c.png
patch画作3

下面进入正题,转向三维

1 MATLAB绘制立方体

9f5b63244fa96bc1c3206b25d1eeee7b.png

2 绘制函数简介

2.1 参数说明

1%% 功能: 绘制CUBE
2% 无返回值!
3% 参数说明:   
4%   *1 EDGES : 三条边的长度,3维
5%   *2 ORIGIN: 起点,3维
6%   *3 ALPHA : 透明的,标量
7%             (from 0 to 1)
8%   *4 COLOR : RGB颜色(0~1)
9%

2.2 测试函数

1%% 测试示例:
2%   >> plotcube([5 5 5],[ 2  2  2],.8,[1 0 0]);
3%   >> plotcube([5 5 5],[10 10 10],.8,[0 1 0]);
4%   >> plotcube([5 5 5],[20 20 20],.8,[0 0 1]);

3. 完整.m文件

 1function plotcube(varargin)
2%% 功能: 绘制CUBE
3% 无返回值!
4% 参数说明:   
5%   *1 EDGES : 三条边的长度,3维
6%   *2 ORIGIN: 起点,3维
7%   *3 ALPHA : 透明的,标量
8%             (from 0 to 1)
9%   *4 COLOR : RGB颜色(0~1)
10%
11%% 测试示例:
12%   >> plotcube([5 5 5],[ 2  2  2],.8,[1 0 0]);
13%   >> plotcube([5 5 5],[10 10 10],.8,[0 1 0]);
14%   >> plotcube([5 5 5],[20 20 20],.8,[0 0 1]);
15
16%% 默认值
17inArgs = { ...
18  [10 56 100] , ... % Default edge sizes (x,y and z)
19  [10 10  10] , ... % Default coordinates of the origin point of the cube
20  .7          , ... % Default alpha value for the cube's faces
21  [255 199 53]/255 }; % Default Color for the cube 
22
23%% 函数主体
24inArgs(1:nargin) = varargin;
25
26[edges,origin,alpha,clr] = deal(inArgs{:});
27
28XYZ = { ...
29  [0 0 0 0]  [0 0 1 1]  [0 1 1 0] ; ...
30  [1 1 1 1]  [0 0 1 1]  [0 1 1 0] ; ...
31  [0 1 1 0]  [0 0 0 0]  [0 0 1 1] ; ...
32  [0 1 1 0]  [1 1 1 1]  [0 0 1 1] ; ...
33  [0 1 1 0]  [0 0 1 1]  [0 0 0 0] ; ...
34  [0 1 1 0]  [0 0 1 1]  [1 1 1 1]   ...
35  };
36
37XYZ = mat2cell(...
38  cellfun( @(x,y,z) x*y+z , ...
39    XYZ , ...
40    repmat(mat2cell(edges,1,[1 1 1]),6,1) , ...
41    repmat(mat2cell(origin,1,[1 1 1]),6,1) , ...
42    'UniformOutput',false), ...
43  6,[1 1 1]);
44
45cellfun(@patch,XYZ{1},XYZ{2},XYZ{3},...
46  repmat({clr},6,1),...
47  repmat({'FaceAlpha'},6,1),...
48  repmat({alpha},6,1)...
49  );
50view(3);

{"TIP":"第一次用node.js和md联合写推送,

如果ios用户发现代码区格式不对,欢迎后台反馈"}

1da0b76777d9ae717616ab86d6c95c31.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值