how to Draw a circle around a choosen node in a graph ?

12 ビュー (過去 30 日間)
mazari ahmed
mazari ahmed 2015 年 3 月 14 日
回答済み: Mohammad Mousavi 2020 年 10 月 24 日
l have generated a topology of a network with 200 nodes.than l want to draw a circle with black color around a choosen node(satisfying a certain condition IF (condition) ). to simplify let the user introduce the the index of the node to circle with the black color. here is my code of the generated topology.l need to add wich instructions to draw the circle around the choosen node ?
X=100;
Y=100;
N=200; %number of nodes
nodesX(1)=rand*X;
nodesY(1)=rand*Y;
for i=2:N
nodesX(i)=rand*X;
nodesY(i)=rand*Y;
d(i-1) =((nodesX(i)-nodesX(i-1)).^2+(nodesY(i)-nodesY(i-1)).^2).^0.5;
while (d(i-1)>200)
nodesX(i)=rand*X;
nodesY(i)=rand*Y;
d(i-1) =((nodesX(i)-nodesX(i-1)).^2+(nodesY(i)-nodesY(i-1)).^2).^0.5;
end
end
h_old=plot(nodesX,nodesY,'m*');
labels=[1:N]';
labels=num2str(labels);
text(nodesX,nodesY,labels);
xlabel('X (Meters)');
ylabel('Y (Meters)');
title(['Network Topology with',num2str(N),'nodes']);
hold on
for k=1:N;
for j=1:N;
if (k~=j)
d=((nodesX(k)-nodesX(j))^2+(nodesY(k)-nodesY(j))^2)^0.5;
end
if (k~=j);
if(d < 50);
line([nodesX(k),nodesX(j)],[nodesY(k),nodesY(j)]);
end
end
end;
end;

採用された回答

Konstantinos Sofos
Konstantinos Sofos 2015 年 3 月 14 日
編集済み: Konstantinos Sofos 2015 年 3 月 14 日
Hi,
I cannot understand fully your question or what do you want to generate. You could use a simple function to plot a circle on the given graph by giving circle center x,y and the radius r. e.g.
function circle(x,y,r)
%x and y are the coordinates of the center of the circle
%r is the radius of the circle
%0.01 is the angle step, bigger values will draw the circle faster but
%you might notice imperfections (not very smooth)
ang=0:0.01:2*pi;
xp=r*cos(ang);
yp=r*sin(ang);
plot(x+xp,y+yp,'k');
end
or you could use a simple marker
plot(nodesX(14),nodesY(14),'o','MarkerEdgeColor','k','MarkerSize',15)
plot(nodesX(14),nodesY(14),'o','MarkerEdgeColor','k','MarkerSize',50)
node 14 is with marker and node 12 using circle function with r = 1 meter i.e.
circle(nodesX(12),nodesY(12),1)
Regards,
%

その他の回答 (1 件)

Mohammad Mousavi
Mohammad Mousavi 2020 年 10 月 24 日
Hi
You can use circle marker at the marked point as:
plot([x],[y],'o')
Then, size, linewidth and color can be adjusted by a right click on the plotted marker.
If your MATLAB is older, all the properties of the figure can be found in the Figure Properties window.
Best,

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by