Regular polygon drawing with number of sides and number of points per side as input
1 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
William Rose
2022-3-30
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.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!