특정 들로네 삼각분할(Delaunay Triangulation)을 사용한 보간
delaunayTriangulation 쿼리를 사용한 최근접이웃 보간
이 예제에서는 특정 들로네 삼각분할을 사용하여 산점 데이터 세트에 대해 최근접이웃 보간을 수행하는 방법을 보여줍니다.
2차원에서 산점 데이터 세트의 delaunayTriangulation
을 만듭니다.
rng('default')
P = -2.5 + 5*rand([50 2]);
DT = delaunayTriangulation(P)
DT = delaunayTriangulation with properties: Points: [50x2 double] ConnectivityList: [84x3 double] Constraints: []
P
에 지정된 점에서 포물선 함수 V(x,y)를 샘플링합니다.
V = P(:,1).^2 + P(:,2).^2;
10개의 쿼리 점을 임의로 정의합니다.
Pq = -2 + 4*rand([10 2]);
삼각분할 DT
를 사용하여 V
에 대해 최근접이웃 보간을 수행합니다. nearestNeighbor
를 사용하여 쿼리 점 집합 Pq
에 대해 최근접이웃 꼭짓점의 인덱스 vi
를 구합니다. 그런 다음, 인덱스에서 V
의 특정 값을 검토합니다.
vi = nearestNeighbor(DT,Pq); Vq = V(vi)
Vq = 10×1
2.7208
3.7792
1.8394
3.5086
1.8394
3.5086
1.4258
5.4053
4.0670
0.5586
delaunayTriangulation 쿼리를 사용한 선형(Linear) 보간
이 예제에서는 특정 들로네 삼각분할을 사용하여 산점 데이터 세트에 대해 선형 보간을 수행하는 방법을 보여줍니다.
triangulation
방법인 pointLocation
을 사용하여 쿼리 점을 둘러싸는 삼각형과 꼭짓점 가중치의 크기를 계산할 수 있습니다. 가중치는 무게중심 좌표라고 하며, 1을 분할한 것을 나타냅니다. 즉, 세 개 가중치의 합은 1이 됩니다. 쿼리 점에서의 함수 V의 보간 값은 세 개의 꼭짓점에서의 V의 가중 값의 합입니다. 즉, 함수가 세 개의 꼭짓점에서 값 V1, V2, V3을 가지며 가중치가 B1, B2, B3인 경우 보간 값은 (V1)(B1) + (V2)(B2) + (V3)(B3)이 됩니다.
2차원에서 산점 데이터 세트의 delaunayTriangulation
을 만듭니다.
rng('default')
P = -2.5 + 5*rand([50 2]);
DT = delaunayTriangulation(P)
DT = delaunayTriangulation with properties: Points: [50x2 double] ConnectivityList: [84x3 double] Constraints: []
P
의 점에서 포물선 함수 V(x,y)를 샘플링합니다.
V = P(:,1).^2 + P(:,2).^2;
10개의 쿼리 점을 임의로 정의합니다.
Pq = -2 + 4*rand([10 2]);
pointLocation
방법을 사용하여 각 쿼리 점을 둘러싸는 삼각형을 구합니다. 아래 코드에서 ti
는 둘러싸는 삼각형의 ID를 포함하고 bc
는 각 삼각형과 연결된 무게중심 좌표를 포함합니다.
[ti,bc] = pointLocation(DT,Pq);
각 둘러싸는 삼각형의 꼭짓점에서 V(x,y)의 값을 구합니다.
triVals = V(DT(ti,:));
내적을 사용하여 V(x,y)의 가중 값의 합을 계산합니다.
Vq = dot(bc',triVals')'
Vq = 10×1
2.2736
4.2596
2.1284
3.5372
4.6232
2.1797
1.2779
4.7644
3.6311
1.2196
참고 항목
delaunayTriangulation
| pointLocation
| nearestNeighbor