# I need to call up a vertex from polyshape command

1 vue (au cours des 30 derniers jours)
Bruce Griffin le 29 Fév 2024
Déplacé(e) : Steven Lord le 29 Fév 2024
Him im looking for a simple command or code to call up a vertex from a polyshape array.
Specifically I want to draw a line inside a polyshape that comes from one vertex to another vertex. I want to call these vertexs randomly then have Matlabe draw a line between them. my starting code is the following
pgon=polyshape([0,5*cosd(18),5*cosd(-54),-5*cosd(-54),-5*cosd(18)],[5,5*sind(18),5*sind(-54),5*sind(-54),5*sind(18)]);
plot(pgon)
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponse acceptée

William Rose le 29 Fév 2024
If you have a polygon pgon, of unknown size, get the number of vertices:
pgon=polyshape(cosd(0:40:320),sind(0:40:320));
plot(pgon); hold on; axis equal; axis tight
N=length(pgon.Vertices);
fprintf('Number of vertices=%d.\n',N)
Number of vertices=9.
Use N to select vertices randomly:
vpair=randi(N,[1,2]); %return 2 random numers between 1 and N inclusive
Draw a line beteween the 2 vertices
plot(pgon.Vertices(vpair,1),pgon.Vertices(vpair,2),'-r')
The randomly chosen pair could be the same vertex twice, or adjacent vertices. You could add code to prevent this.
Good luck.
##### 3 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
William Rose le 29 Fév 2024
Putting it all together:
pgon=polyshape(cosd(0:20:340),sind(0:20:340));
plot(pgon); hold on; axis equal; axis tight
N=length(pgon.Vertices);
M=8; % number of lines to draw between randomly chosen vertices
for i=1:M
delta=1;
while delta<2,
vpair=randi(N,[1,2]);
delta=mod(abs(vpair(2)-vpair(1)),N);
end
plot(pgon.Vertices(vpair,1),pgon.Vertices(vpair,2),'-r')
end
OK.
Bruce Griffin le 29 Fév 2024
Déplacé(e) : Steven Lord le 29 Fév 2024
Thank you very much. I appreciate your responce.

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Elementary Polygons dans Help Center et File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by