first commit

This commit is contained in:
Monyrotanak Sambath UY 2024-03-08 15:18:50 +01:00
parent 899d38b0c9
commit 57c5de0602
2 changed files with 49 additions and 0 deletions

34
createVisibilityGraph.m Normal file
View File

@ -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

15
ex1.m Normal file
View File

@ -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);