2017-01-01 1 views
2

나는 - 좌표가 x,y의 (부드러운) 함수 인 trimesh에 사용 된 삼각형 격자를 사용합니다. 삼각 일부 인덱스 매트릭스 t 주어진다, 그래서 이제는 일반적인 x0,y0 그리드 포인트, 즉 사이 apprixmation 평가하려는삼각형 격자를 보간

trimesh(t,x,y,f(x,y)) 

같이 그리드 주어진이 조각 별 선형 근사치를 표시 할 수있다. 나는 griddata을 알고 있지만이 함수는 새로운 삼각형을 만듭니다. 주어진 삼각 측량 t을 사용하고 싶습니다.

답변

1

삼각 측량에 기반한 선형 보간법은 최신 버전의 MATLAB에서 더 이상 사용되지 않는 옥타브 함수 tsearch을 사용하여 설명했습니다. 대신 당신은 pointLocation

delaunay에 의해 생성 된 삼각 측량을 감안할 때 사용할 수 있습니다

tri = delaunay (X, Y); 

및 지점의 좌표를 xi, yi으로 보간 될 수 있습니다. 삼각형

pts= tri(idx, :); 

equation of a plane (삼각형) 주어진 그 3 점을 repesents 매트릭스를 생성의 정점

idx = tsearch (X, Y, tri, xi, yi); 

추출물 지수 : 점을 포함하는 삼각형 찾을 수

사용 tsearch 또는 pointLocation

m=[X(pts);Y(pts);Z(pts);ones(1,3)].'; 

det(m)=0을 기준으로 z을 계산하십시오. [4 ,4] 행렬의 행렬식 계산 공식은 Wikipedia

z = (... 
      -xi*det(m(:,2:end)) + ... 
      yi*det([m(:,1) m(:,3:end)]) +... 
      det(m(:,1:end-1))... 
     )... 
     /det([m(:,1:2) m(:,end)]);