first commit
This commit is contained in:
parent
899d38b0c9
commit
57c5de0602
|
|
@ -0,0 +1,34 @@
|
|||
function [nbNodes, visibilityGraph] = createVisibilityGraph(connectionMatrix, points2D)
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%function [nbNodes, visibilityGraph] = createVisibilityGraph(connectionMatrix, points2D)
|
||||
%
|
||||
% Task: Create a visibility graph from a connection matrix and a set of 2D points
|
||||
%
|
||||
% Inputs:
|
||||
% -connectionMatrix: matrix of connection if cell is equal to 1 there is an edge between the corresponding points, cell is 0 otherwise
|
||||
% -points2D: coordinates of the vertices of the graph
|
||||
%
|
||||
% Outputs:
|
||||
% -nbNodes: the number of nodes of this graph
|
||||
% -visibilityGraph: a matrix containing the distance between connected nodes
|
||||
% (NaN refers to not connected nodes)
|
||||
% The matrix has a size of (nbNodes+2)x(nbNodes+2)
|
||||
%
|
||||
% Guillaume Gibert (guillaume.gibert@ecam.fr)
|
||||
% 19/03/2021
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
nbNodes = size(points2D,1)-2;
|
||||
visibilityGraph = NaN(nbNodes+2, nbNodes+2);
|
||||
|
||||
for l_row=1:size(connectionMatrix,1)
|
||||
for l_col=1:size(connectionMatrix,2)
|
||||
if (connectionMatrix(l_row, l_col) == 1)
|
||||
% computes the distance between the 2 points
|
||||
distance = sqrt( (points2D(l_row,1)-points2D(l_col,1))^2 + (points2D(l_row,2)-points2D(l_col,2))^2);
|
||||
visibilityGraph(l_row, l_col) =distance;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
nbNodes = 8;
|
||||
|
||||
visibilityGraph = NaN(nbNodes+2, nbNodes+2);
|
||||
visibilityGraph(1,1) =0;visibilityGraph(1,2) =11;visibilityGraph(1,3) =10;
|
||||
visibilityGraph(2,1) =11;visibilityGraph(2,3) =18;visibilityGraph(2,9) =11;
|
||||
visibilityGraph(3,1) =10;visibilityGraph(3,2) =18;visibilityGraph(3,4) =11;visibilityGraph(3,5) =32;
|
||||
visibilityGraph(4,3) =11;visibilityGraph(4,5) =22;visibilityGraph(4,8) =15;visibilityGraph(4,9) =18;
|
||||
visibilityGraph(5,3) =32;visibilityGraph(5,4) =22;visibilityGraph(5,6) =11;visibilityGraph(5,8) =20;visibilityGraph(5,9) =37;
|
||||
visibilityGraph(6,5) =11;visibilityGraph(6,7) =20;visibilityGraph(6,10) =10;
|
||||
visibilityGraph(7,6) =20;visibilityGraph(7,8) =11;visibilityGraph(7,9) =31;visibilityGraph(7,10) =11;
|
||||
visibilityGraph(8,4) =15;visibilityGraph(8,5) =20;visibilityGraph(8,7) =11;
|
||||
visibilityGraph(9,2) =11;visibilityGraph(9,4) =18;visibilityGraph(9,5) =37;visibilityGraph(9,7) =31;
|
||||
visibilityGraph(10,6) =10;visibilityGraph(10,7) =11;
|
||||
|
||||
[distanceToNode, parentOfNode] = dijkstra(nbNodes, visibilityGraph);
|
||||
Loading…
Reference in New Issue