主要内容

使用特定的delaunay三角测量的插值

使用delaunaytriangulation查询的最近邻域插值

此示例显示如何使用特定的Delaunay三角测量在分散的点集上执行最近的邻接插值。

创建一个delaunaytriangulation在2-D中的一组分散点。

RNG('默认')p = -2.5 + 5 * rand([50 2]);dt = delaunaytriangulation(p)
dt = delaunaytriangulation与属性:点:[50x2 double] ConnectivityList:[84x3双]约束:[]

样本抛物线功能,v(x,y),在指定的点P.

v = p(:,1)。^ 2 + p(:,2)。^ 2;

定义10个随机查询点。

pq = -2 + 4 * rand([10 2]);

执行最近邻的插值V.使用三角测量,DT.。采用最近的邻居找到最近邻居顶点的索引,VI.,对于查询点,PQ.。然后检查特定值V.在索引。

vi =近场钟(DT,PQ);VQ = v(vi)
VQ =10×12.7208 3.7792 1.8394 3.5086 1.8394 3.5086 1.4258 5.4053 4.0670 0.5586

使用DelaunayTriangulation查询的线性插值

此示例显示如何在具有特定Delaunay三角测量的分散点集上执行线性插值。

你可以使用三角测量方法,尖穴,计算查询点的封闭三角形和顶点权重的大小。权重称为重心坐标,它们代表了一个单位的分区。也就是说,三重权重的总和等于1.函数的内插值,V.,在查询点是加权值的总和V.在三个顶点。也就是说,如果该功能具有三个顶点的值V1,V2,V3,并且权重是B1,B2,B3,则内插值是(V1)(B1)+(V2)(B2)+(V3)(b3)。

创建一个delaunaytriangulation在2-D中的一组分散点。

RNG('默认')p = -2.5 + 5 * rand([50 2]);dt = delaunaytriangulation(p)
dt = delaunaytriangulation与属性:点:[50x2 double] ConnectivityList:[84x3双]约束:[]

样本抛物线功能,v(x,y),在点P.

v = p(:,1)。^ 2 + p(:,2)。^ 2;

定义10个随机查询点。

pq = -2 + 4 * rand([10 2]);

找到使用每个查询点的三角形使用尖穴方法。在下面的代码中,TI.包含封闭三角形的ID和公元前包含与每个三角形相关联的重心坐标。

[Ti,BC] = PointLocation(DT,PQ);

找到值v(x,y)在每个封闭三角形的顶点处。

trivals = v(dt(ti,:));

计算加权值的总和v(x,y)使用DOT产品。

VQ = DOT(BC',TRIVALS')'
VQ =10×12.2736 4.2596 2.1284 3.5372 4.6232 2.1797 1.2779 4.7644 3.6311 1.2196

也可以看看

||

相关话题