Voronoi polygons distance between points
    조회 수: 4 (최근 30일)
  
       이전 댓글 표시
    
Hello
I have set of 2D points and after creation of voronoi polygons I want to calculeate distance between poit from one polygone and all neighborhood points (as in picture). Blue dots are my 2D points
댓글 수: 0
채택된 답변
  Matt J
      
      
 2019년 6월 26일
        
      편집: Matt J
      
      
 2019년 6월 26일
  
      This returns the result as a distance matrix such as produced by pdist2, except that all entries not corresponding to neighboring points are set to NaN. Neighbors are defined as points whose Voronoi polygons share one or more (finite) vertices.
[V,C]=voronoin(points);
F=all(isfinite(V),2);
D=pdist2(points,points);
D(~common_vertex(C,F))=nan, %the result
                     function  map = common_vertex(C,F)
                          n=numel(C);
                          map=false(n);
                          for i=1:n
                              for j=1:i-1
                                  map(i,j)=any( F(intersect(C{i},C{j})) );
                              end
                          end
                          map=logical(map+map.');
                          map(1:n+1:end)=1;
                     end
댓글 수: 4
  Matt J
      
      
 2019년 7월 4일
				
      편집: Matt J
      
      
 2019년 7월 4일
  
			hope that is correct way
Only you can know if it serves your needs, but I'm not sure it is equivalent to the neighborhood analysis you were originally pursuing. It assumes that points belonging to a common Delaunay triangle always occupy neighboring Voronoi poygons, and I'm not sure that's true.
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Voronoi Diagram에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

