How to Draw a Pentagon or Polygon by Using Function
15 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (1 件)
Steven Lord
2023 年 3 月 15 日
Why not just use nsidedpoly?
P = nsidedpoly(5);
plot(P);
axis equal
3 件のコメント
Steven Lord
2023 年 3 月 15 日
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.
参考
カテゴリ
Help Center および File Exchange で Scatter Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!