Matlab中如何根据已知离散三维坐标点绘制表面三角形剖分

来源:百度知道 编辑:UC知道 时间:2024/06/03 09:17:17
Matlab中,已知有很多组三维坐标点(x1,y1,z1)……(xn,yn,zn),其空间图形大致如马铃薯形状。如何在这些点表面进行三角形网格化,并且读出每个三角形的三个坐标点?

你好,我是中国矿业大学(北京)数学系的一名学生。
如果要解决你的问题,需要看你做什么的:
一、如果你构建这个剖分不是用来进行偏微分方程数值计算的,而是单纯的只需把3维物体表面变成三角形拼的,你可以使用3D Max,他里面有功能可以实现你要的功能。但是有一点,你需要自己先构建3维模型。另外说一点,3D Max可以输出每个点的坐标。
二、如果你的目的是为数值计算,且只需要把3维物体表面进行三角剖分,你可以使用matlab的pde工具箱,里面有平面多边形的三角剖分方法,你可以先把你的三维物体每个面弄下来,进行三角剖分,再把剖分的结果“贴”上去。
三、如果你的目的是为数值计算,且要把整个空间都给剖分了(物体内部也需要分割,把整个物体分割成许多个四面体)我可以告诉你,现在中国没有这样的技术,我们老师说的,这个技术现在只有NASA(美国国家航空局)有,国内需要进行这种剖分的,都是把3D模型发给国外,国外剖好了,再发回来。如果你有关系可以去试试。
下面是详细的第二类问题的结局办法。
matlab里输入命令提示符 pdetool,打开微分工具箱,你可以在这里作图,然后单击按钮(4个三角形拼成一个大三角形的按钮),matlab会自动给你画的图形打三角网格,然后菜单->Mesh>Export Mesh...能把离散好的网格输出出来。
你的问题很麻烦,还得把每个面取下来,建议你详细阅读doc(输入命令提示符doc)好好看看词条
Triangulation(意思是三角剖分),看看其相关函数,重点看Delaunay(Delaunay三角剖分)。自研究详细怎么靠代码控制pdetool进行三角剖分。
另外补充一点,你给的分实在是太少了,我敢说就算你给100分,都不会有人给你代码能解决你这个问题。我自己之前搞平面多边形的三角剖分偏微分方程的计算就费事的不行了(花了快1周),每天都花好多时间研究,才弄出来,你这个要比我弄的费事3倍(如果最后还要求解偏微分方程的话)。
上面全部是手打的,希望你采纳我的回答。