将3D线(Plot3)从Matlab导出到U3D / LaTeX

时间:2016-11-28 22:47:54

标签: matlab 3d latex matlab-figure u3d

我想要做的是将图形导出为STL,U3D,这些将使我更进一步将这些图包含在LaTeX文档中作为3D PDF。从我所做的阅读中,可以直接使用this add-ona STL conversion将表面/箭袋转换为U3D。

然而,这两种方法似乎无法转换三维线,例如我所拥有的线:

temp = [15.2697 671.323 -9.91231;
26.9127 766.25  -9.73684;
40.6373 863.993 -9.50037;
56.4426 963.955 -9.21152;
74.4579 1069    -8.96309;
94.902  1177    -8.75421;
117.824 1287    -8.48337;
143.176 1400    -8.20126;
171.07  1515    -7.93761;
201.032 1629    -7.66941;
232.849 1742    -7.57231;
265.95  1855    -7.5369;
298.406 1964    -7.4525;
334.686 2073    -7.3278;
294.999 1942    -7.4535;
235.956 1723    -7.90447;
203.222 1576    -8.31706;
180.908 1462    -8.70754];
plot3(temp(:,1),temp(:,2),temp(:,3));

首先,我觉得不可能使用STL方法,因为我必须对无法进行三角测量的数据进行三角测量(与表面相比)。

然而,我上面提到的第一个附加组件认为这是一个颤动图,然后无法说它需要一个表面或一个补丁对象(虽然自述文件确实建议行也是可能的)。

然而,总的来说,这些都对于在Matlab中应该有驱动程序的东西感觉太复杂了。我错过了一个明显的简单解决方案吗?

1 个答案:

答案 0 :(得分:0)

我设法通过Export figure to 3D interactive PDF使用line代替plot3来解决这个问题。通过查看我的线条会有相当大的质量损失,plot3版本中没有不常见的断点,但这至少解决了原来的问题。

现在,这将是我建议任何人接近这个的方式。对于一个工作示例,以下内容应该是有帮助的:

line(temp(:,1),temp(:,2),temp(:,3))

使用与以前相同的数据集。

最后请注意,至少在Matlab R2016b中,链接的U3D转换器无法正常工作,并且需要进行一些手动编辑(直到源代码得到修复)。作者的Github网站详细介绍了这些变化。