📄 visualize.m
字号:
function visualize( neighbor_dist, node_coord, beacons, failure_nodes, ...
large,show_edges, obstacles)
%visualize a simulated topology
% large: if to use large circle and plot node number, a big dot otherwise
%examples:
% visualize(D, coord, [], [], 1, 1, obs)
n = length(node_coord);
if nargin<3
beacons = [];
end
if nargin<4
failure_nodes = [];
end
if 0
neighbor_dist(failure_nodes,:) = zeros(length(failure_nodes), n);
neighbor_dist(:, failure_nodes) = zeros(n, length(failure_nodes));
end
tmp = failure_nodes;
failure_nodes = zeros(n,1);
failure_nodes(tmp) = ones(length(tmp),1);
if nargin<5
large = n<=50;
end
if nargin<6
show_edges=0;
end
if nargin<7
obstacles={};
end
fprintf('visualizing %d nodes\n', n);
hold on
%plot obstacles
for i=1:length(obstacles)
ob = obstacles{i};
plot([ob(1,1) ob(2,1)], [ob(1,2), ob(2,2)],'r');
end
for i=1:n
if node_coord(i,1)>0
if ismember(i, beacons)
plot(node_coord(i,1),node_coord(i,2),'rv','MarkerSize',15);
elseif failure_nodes(i)
if large
plot(node_coord(i,1),node_coord(i,2),'ko','MarkerSize',15);
else
plot(node_coord(i,1),node_coord(i,2),'ko','MarkerSize',3);
end
else
if large
plot(node_coord(i,1),node_coord(i,2),'go','MarkerSize',15);
else
plot(node_coord(i,1),node_coord(i,2),'go','MarkerSize',3);
end
end
% if large | show_edges
if large
idstr = sprintf('%d',i);
text(node_coord(i,1),node_coord(i,2),idstr);
end
if show_edges | large %plot edge
for j=1:i-1
if neighbor_dist(i,j)>0 & neighbor_dist(i,j)<Inf
if failure_nodes(i) | failure_nodes(j)
color = 'b:';
else
color='b';
end
plot([node_coord(i,1) node_coord(j,1)], [node_coord(i,2), node_coord(j,2)],color);
end
end
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -