Regular polygon drawing with number of sides and number of points per side as input

6 visualizaciones (últimos 30 días)
Hello, I want to generate the points that define a regular polygon (a hexagon in my case). I am able to generate the vertices as:
nsides = 6; % hexagon
stepsize = 360/nsides;
theta = 0:stepsize:359;
x = cosd(theta);
y = sind(theta);
This only generates the vertices (ie 1 point per side), but I also want to include the possibility to choose the number of points per side. For the hexagon case the code above generates 6 points, but I would like the hexagon to have also 6 additional points located at the centre of each side, so 12 in total. How could I improve the code above to do this? Thanks

Respuesta aceptada

William Rose
William Rose el 30 de Mzo. de 2022
There are different way you could go. One way is to define a time vector
t=0:6;
Define the corner coordinates points.
theta = 0:60:360;
x = cosd(theta);
y = sind(theta);
The initial point appear at the start and at the end. Choose the number of points per side:
M=10;
Create a time vector for interpolating the points:
t1=0:1/M:6;
Interpolate:
x1=interp1(t,x,t1);
y1=interp1(t,y,t1);
Plot x1 versus y1.
plot(x1,y1,'-k.');
axis equal
Done.

Más respuestas (0)

Categorías

Más información sobre Elementary Polygons en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by