我想在matlab中创建和显示一个三维外壳(例如,一个有100个元素的桶),并且我有一个厚度矢量( 100 *1),其中包含100个外壳元素的厚度。所以我有一个数组,它包含shell节点和元素的坐标,还有一个向量,它包含shell元素的厚度。
现在,我如何显示这个三维外壳,每个元素,取决于它的厚度是不同的颜色(灰色)?
或者,如何将坐标阵列和厚度矢量结合起来,或将厚度矢量映射到三维壳体的形状上,并显示一个灰色的三维壳体?
编辑:这个问题是关于拓扑优化的。最后,我必须有一个像附件一样的数字。
我有一个大小为100*1的向量,例如1 0 0 1 0.这个向量的名称是厚度向量。“1”表示固体,“0”表示厚度矢量中的空隙。
我有一个数组(XYZ)来绘制三维外壳形状。我把这个三维外壳划分成100个矩形元素。因此,对应于三维壳中的每个元素,我在厚度向量中有一个数字(0或1)。
现在,我如何在输出颜色的3D外壳图上显示每个元素的厚度(例如,在最后的图中,我们可以看到每个实体元素是黑色的,每个元素是无效的元素是白色的)。或者如何链接或映射外壳图上的厚度向量?
图片链接:http://s9.picofile.com/file/8310446684/Capture.JPG
发布于 2017-10-30 15:54:58
首先,您可以将yout厚度矢量thickness_V转换为10*10矩阵。
thickness_M = [];
for i = 1:10
thickness_M = [thickness_M thickness_V(1+10*(i-1):10+10*(i-1))];
end然后,您可以使用浪花与选项colormap gray相结合,因为您只有两个可能的值,灰色的阴影将仅为白色或黑色。
下面是我刚才做的一个例子:
[X,Y] = meshgrid(1:10);
Z = -(X-5).^2 - (Y-5).^2;
thickness_M = eye(10,10);
s = surf(X, Y, Z, -thickness_M);
colormap gray;

https://stackoverflow.com/questions/47005618
复制相似问题