Create a point with a number inside

2 vues (au cours des 30 derniers jours)
Hoang Vu Huy
Hoang Vu Huy le 23 Fév 2023
Commenté : Askic V le 23 Fév 2023
I want to creat a fig:
How to creat a point with a number inside?

Réponses (3)

Simon Chan
Simon Chan le 23 Fév 2023
r = 5; % Radius of small circle
rho = 50; % Radius of big circle
Np = 16; % Number of circle
theta = linspace(pi,-pi,Np+1);
[x,y] = pol2cart(theta,rho); % coordinates of small circle center
t = linspace(0, 2*pi);
apoint = 1:Np; % Line connection, starting point
bpoint = circshift(1:16,-4); % Line coonection, end point
for w = 1:Np
line([x(apoint(w)) x(bpoint(w))],[y(apoint(w)) y(bpoint(w))],'Color','k'); % Draw lines first
end
rectangle('Position',[-rho -rho 2*rho 2*rho],'Curvature',[1 1])% % Draw big circle
for k = 1:Np
patch(x(k)+r*cos(t), y(k)+r*sin(t), 'w','FaceAlpha',1); % Draw small circle
end
text(x(1:Np),y(1:Np),string(1:Np),'HorizontalAlignment','center'); % Add the text
axis equal
axis off
  1 commentaire
Askic V
Askic V le 23 Fév 2023
What an elegant solution. Bravo Simon.

Connectez-vous pour commenter.


Walter Roberson
Walter Roberson le 23 Fév 2023
viscircles() and text()
Or possibly use a quite large 'o' marker, and text()
Or create patch objects with face color white. fill() could be used for that.

KSSV
KSSV le 23 Fév 2023
th = linspace(0,2*pi) ;
x = cos(th) ;
y = sin(th) ;
% Make numbers
idx = 1:5:length(th) ;
figure
hold on
plot(x,y,'k','LineWidth',2)
scatter(x(idx),y(idx),300,'O','MarkerEdgeColor','k','MarkerFaceColor','w')
text(x(idx),y(idx),num2str(idx'))

Catégories

En savoir plus sur Line Plots dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by