How to Draw a Pentagon or Polygon by Using Function
43 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Dear all,
I want to draw a pentagon and am using the code given below.
Vb is the height of the pentagon. X and Y are the limits of the coordinates in the given directions.
The problem is: when i plot i am getting the pentagon but lengths are not equal as shown in figure.
How can i get a regular pentagon?
Vb=250;
a=10; %% size of pentagon
polyg = 5;
Nx=50; Ny=50;
Mx=50; My=50;
x=linspace(-Mx/2,Mx/2,Nx);
y=linspace(-My/2,My/2,Ny);
[X,Y]=meshgrid(x,y);
f1 = (abs(X)<a*sind((polyg-2)*180/polyg));
f2 = (X*cotd(360/polyg)-a<Y)...
.* (-X*cotd(360/polyg)-a<Y)...
.* (-X*cotd(360/polyg)+a>Y);
fx = f1.*f2;
V0 = (1-fx)*Vb;
surf(X,Y,V0);
0 comentarios
Respuestas (1)
Steven Lord
el 15 de Mzo. de 2023
Why not just use nsidedpoly?
P = nsidedpoly(5);
plot(P);
axis equal
3 comentarios
Steven Lord
el 15 de Mzo. de 2023
So are you looking for a "column" with a pentagonal cross-section or are you looking for more of a dodecahedron?
P = nsidedpoly(5)
P.Vertices
Use whatever mechanism you see fit to apply various affine transformations to these coordinates. Cleve Moler has written some tools that may be of interest: Grafix 2.0.
Ver también
Categorías
Más información sobre Elementary Polygons en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!