PLOTCUBE—在当前轴中显示一个3d立方体
PLOTCUBE(边、原点、ALPHA值、颜色)在当前轴中显示一个3d立方体
具有以下特性:
*边:定义立方体边长度的3元素向量
原点:定义立方体起始点的3个元素向量
* ALPHA:标量,定义立方体面的透明度(从0开始
1)
*颜色:定义立方体表面颜色的三元素向量
例子:
plotcube([5 5 5],[2 2 2],。8日(1 0 0));
plotcube([5 5 5],[10 10 10],。8,[0 1 0]);
plotcube([5 5 5],[20 20 20],。8日(0 0 1));
奥利维尔(2020)。PLOTCUBE(//www.tianjin-qmedu.com/matlabcentral/fileexchange/15161-plotcube), MATLAB中央文件交换。检索。
dralp(查看配置文件)
非常感谢,奥利维尔。它将正常工作。有可能在渐变中给一组立方体上色吗?
布鲁诺·斯特拉诺(查看配置文件)
香港易(查看配置文件)
摩根大通Schnyder(查看配置文件)
> > plotcube ([。5。5。5]、[。2 .2 .2],0.1,[0 0 1])
无法识别的函数或变量“plotcube”。
如何避免出现这个错误?我在Windows 10上使用Matlab R2019b。同样的问题也出现在Matlab Android应用程序中!
布拉德·阿特金斯(查看配置文件)
Housseyne Nadour(查看配置文件)
雅各布·斯蒂芬斯(查看配置文件)
奥古斯汀•加西亚冈萨雷斯(查看配置文件)
亚当Danz(查看配置文件)
简单和直观!我建议添加一个axis句柄输入,用num2cell替换mat2cell,并返回立方体每一边的对象句柄向量。它看起来是这样的。
函数h = PLOTCUBE(varargin)
inArgs ={…
[1056100],…%默认边缘大小(x、y和z)
[10],…多维数据集原点的默认坐标
7,…立方体面的默认alpha值
[1 0 0],…多维数据集的默认颜色
gca……%默认轴
};
用输入值替换默认输入参数
inArgs(1:输入参数个数)=变长度输入宗量;
创建所有变量
[边缘,起源,α,clr, axh] =交易(inArgs {:});
XYZ ={…
[0 0 0 0] [0 0 1 1] [0 1 1 0];…
[1 1 1 1] [0 0 1 1 1] [0 1 1 1 0];…
[0 1 1 0] [0 0 0 0 0] [0 0 1 1];…
[0 1 1 0] [1 1 1 1] [0 0 1 1];…
[0 1 1 0] [0 0 1 1 1] [0 0 0 0 0];…
[0 1 1 0][0 0 1 1 1][1 1 1 1 1]…
};
XYZ = mat2cell (…
cellfun(@(x,y,z) x*y+z,…
XYZ,……
repmat (num2cell(边缘)、6、1),…
repmat (num2cell(起源)、6、1),…
“UniformOutput”,假),…
6、(1 1 1));
h = cellfun (@patch repmat ({axh} 6 1),…
XYZ XYZ {1}, {2}, XYZ {3},……
repmat ({clr} 6 1),…
repmat ({‘FaceAlpha} 6 1),…
repmat({α}6 1)……
);
视图(3);
亚当Danz(查看配置文件)
优雅的李(查看配置文件)
Pouria Tajvar(查看配置文件)
被罩戈兰高地(查看配置文件)
艾米·劳(查看配置文件)
丹尼尔绿色(查看配置文件)
Calebe Nunes(查看配置文件)
安德斯·汉森(查看配置文件)
(Sunita萨哈(查看配置文件)
在绘制立方体之后,我要存储立方体顶点的坐标。怎么做呢?
莫先生(查看配置文件)
你知道怎么给这个功能添加图例吗?
莫先生(查看配置文件)
你知道如何给这个函数添加图例吗?
奥斯曼Akar(查看配置文件)
代码不错,但是有点慢
Stefan Schmohl(查看配置文件)
埃琳娜Syerko(查看配置文件)
谢谢你的代码Olivier。
我同意Mike关于优化大数据集代码的建议。
下面是一个应用于uint8图像三维可视化的例子(大数据变得很重):
图(1);colormap灰色
因为我= 1:Nx
j = 1:纽约
k = 1:新西兰
图(1);plotcube([1 1 1],[I -1 j-1 k-1],.8,I(I,j,k));抓住
结束
结束
结束
集(gca, DataAspectRatio, (100 100 100));
其中I是大小为(Nx,Ny,Nz)的三维图像。
迈克(查看配置文件)
你好奥利弗,
伟大的代码,谢谢:)
但是,有什么方法可以改变立方体的边缘透明度吗?
例如,在代码中添加“EdgeAlpha”,例如在当前行下面添加“FaceAlpha”:
repmat ({‘FaceAlpha} 6 1),…
还有,有没有什么方法可以为非常大的数据集优化这段代码?(例如几十万个街区!)
例如,以某种方式将数据类型更改为uint8或uint16 ?
(如果我试图输入uint8格式的数据,有一个错误'cellfun':
plotcube>@(x,y,z)x*y+z(第41行)中的错误
cellfun(@(x,y,z) x*y+z,…
欢呼了!
迈克
Kazawar(查看配置文件)
李(查看配置文件)
非常感谢
欣迪李(查看配置文件)
谢谢:)
Thouraya(查看配置文件)
谢谢
大学LAJHDAR(查看配置文件)
好
奥斯卡米兰达Dominguez(查看配置文件)
艾哈迈德(查看配置文件)
谢谢真的很有帮助
Panintorn(查看配置文件)
非常好
韦森特(查看配置文件)