clear all
load seamount
N = 8;
x = rand(N,1);
y = rand(N,1);
z=zeros(N,1);
% Delaunay triangulation
tri = delaunay(x,y)
DT = delaunayTriangulation(x,y)
% Calculate adjacency matrix
AdjMat = false(N);
for kk = 1:size(tri,1)
AdjMat(tri(kk,1), tri(kk,2)) = true;
AdjMat(tri(kk,2), tri(kk,3)) = true;
AdjMat(tri(kk,3), tri(kk,1)) = true;
end
AdjMat = AdjMat | AdjMat’
trisurf(tri,x,y,z)
v=zeros(N,2);
di=sum(AdjMat,2)
delta=v;
for i=1:N
v(i,:)=[x(i),y(i)];
end
vi=AdjMat*v
for i=1:N
delta(i,:)=(di(i)*v(i)-vi(i,:))/di(i)
end
delta
tri =
4 1 5
3 2 4
6 2 3
6 3 5
3 4 5
2 7 8
4 2 8
2 6 7
4 8 1
DT =
delaunayTriangulation - 属性:
Points: [8×2 double]
ConnectivityList: [9×3 double]
Constraints: []
AdjMat =
8×8 logical 数组
0 0 0 1 1 0 0 1
0 0 1 1 0 1 1 1
0 1 0 1 1 1 0 0
1 1 1 0 1 0 0 1
1 0 1 1 0 1 0 0
0 1 1 0 1 0 1 0
0 1 0 0 0 1 0 1
1 1 0 1 0 0 1 0
di =
3
5
4
5
4
4
3
4
vi =
1.4565 1.3433
2.6758 0.81536
1.0221 1.2495
2.4643 1.86
1.5578 1.1786
1.6699 1.1588
1.4778 0.24417
2.516 1.0312
delta =
0.29475 0.33247
0 0
0 0
0 0
0 0
0 0
0 0
0 0
delta =
0.29475 0.33247
-0.14541 0.22667
0 0
0 0
0 0
0 0
0 0
0 0
delta =
0.29475 0.33247
-0.14541 0.22667
-0.013828 -0.070693
0 0
0 0
0 0
0 0
0 0
delta =
0.29475 0.33247
-0.14541 0.22667
-0.013828 -0.070693
-0.088942 0.031922
0 0
0 0
0 0
0 0
delta =
0.29475 0.33247
-0.14541 0.22667
-0.013828 -0.070693
-0.088942 0.031922
-0.293 -0.19818
0 0
0 0
0 0
delta =
0.29475 0.33247
-0.14541 0.22667
-0.013828 -0.070693
-0.088942 0.031922
-0.293 -0.19818
-0.28551 -0.15772
0 0
0 0
delta =
0.29475 0.33247
-0.14541 0.22667
-0.013828 -0.070693
-0.088942 0.031922
-0.293 -0.19818
-0.28551 -0.15772
0.44944 0.86066
0 0
delta =
0.29475 0.33247
-0.14541 0.22667
-0.013828 -0.070693
-0.088942 0.031922
-0.293 -0.19818
-0.28551 -0.15772
0.44944 0.86066
0.32715 0.69834
delta =
0.29475 0.33247
-0.14541 0.22667
-0.013828 -0.070693
-0.088942 0.031922
-0.293 -0.19818
-0.28551 -0.15772
0.44944 0.86066
0.32715 0.69834