首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相互减去delaunay曲面

相互减去delaunay曲面
EN

Stack Overflow用户
提问于 2016-12-08 01:01:11
回答 1查看 115关注 0票数 0

我有一个表面由下面的代码和另一个表面是由完全相同的代码创建的。我想在另一个图形中看到身高的差异。我怎么能做到这一点呢?已经使用减号运算符进行了运算,但这将不起作用。

此外,矩阵的大小也不一样!

感谢您的帮助!

代码语言:javascript
运行
复制
x1 = Cx1;
y1 = Cy1;
z1 = Cz1;
tri1 = delaunay(x1,y1);


fig1 = figure%('units','normalized','outerposition',[0 0 1 1]);
trisurf(tri1,x2,y2,z2)
xlabel('x [mm] ','FontSize',30)
ylabel('y [mm] ','FontSize',30)
zlabel('z [mm] ','FontSize',30)
EN

回答 1

Stack Overflow用户

发布于 2016-12-08 02:51:15

解决此问题的最简单方法是从一个网格插值到另一个网格。当其中一个比另一个分辨率更高时,或者当您不太关心单个节点的结果,而是跨元素的整体模式时,这种方法效果很好。如果不是这样,那么您就有一个非常复杂的问题,因为您需要创建一个多边形曲面,该曲面完全捕获两个三角剖分的所有节点和边。考虑以下一对三角形图案:

捕捉所有变化的曲面需要包含组成它们的所有顶点和边,这不是一个纯粹的三角形曲面。因此,让我们转而假设更简单的情况。要将一个三角剖分的结果映射到另一个三角剖分结果,您只需制定定义值如何随三角形变化的函数,更广泛地称为basis functions。通常假设三角形的节点(即顶点)之间的值沿着三角形的表面线性变化。如果你愿意,你可以用不同的方式来做,它只需要定义新的基函数。如果我们使用线性函数,那么2D中的方程就非常简单。假设您创建了一个数组trimap,其中包含另一个三角剖分的每个顶点所在的三角形。This can be accomplished using the info here。然后,我们将当前三角形的顶点坐标设置为(x1,y1)、(x2,y2)和(x3,y3),然后执行数学运算:

代码语言:javascript
运行
复制
for cnt1=1,npoints
  x1=x(tri1(trimap(cnt1),1));
  x2=x(tri1(trimap(cnt1),2));
  x3=x(tri1(trimap(cnt1),3));
  y1=y(tri1(trimap(cnt1),1));
  y2=y(tri1(trimap(cnt1),2));
  y3=y(tri1(trimap(cnt1),3));
  delta=x2*y3+x1*y2+x3*y1-x2*y1-x1*y3-x3*y2;
  delta1=(x2*y3-x3*y2+xstat(cnt1)*(y2-y3)+ystat(cnt1)*(x3-x2));
  delta2=(x3*y1-x1*y3+xstat(cnt1)*(y3-y1)+ystat(cnt1)*(x1-x3));
  delta3=(x1*y2-x2*y1+xstat(cnt1)*(y1-y2)+ystat(cnt1)*(x2-x1));
  weights(cnt1,1)=delta1/delta;
  weights(cnt1,2)=delta2/delta;
  weights(cnt1,3)=delta3/delta;
  z1=z(tri1(trimap(cnt1),1));
  z2=z(tri1(trimap(cnt1),2));
  z3=z(tri1(trimap(cnt1),3));
  valinterp(cnt1)=sum(weights(cnt1,:).*[z1,z2,z3]);
end

valinterp是每个点的插值值。Herehere是一些很好的幻灯片,解释了这一切背后的数学原理。请注意,我没有测试这些代码中的任何代码。还需要注意的是,您需要对三角剖分之外的值进行赋值。可能是空值,也可能是反距离加权值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41023223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档