用MATLAB画正多边形?各位高手,帮帮忙啊!

来源:百度知道 编辑:UC知道 时间:2024/06/14 11:42:17
还有画圆圈是不是只能用极坐标画呀?
帮帮忙,希望能尽快得到答案啊!真是谢谢啦!
怎么用MATLAB画正多边形啊?
呵呵,刚才那个兄弟,谢谢啊,我知道可以这样,其实我说的极坐标,就是这个意思,我是说好像不能直接用x^2+y^2=a^2(a为已知数),plot(x,y)这种!.
其实我主要的是想知道怎么画正多边形!帮帮忙啊,谢谢啦!
哦,太好了,真是帮我解决了一个让我一直犯难的问题,可不可以帮我解释一下刚才画正多边形的那个程序?谢谢啦!

不一定,利用参数方程在直角坐标中也可以画的
t=0:pi/20:2*pi;
x=sin(t);
y=cos(t);
plot(x,y);

因为开始没有认真看你的标题,现在只能靠智能化取胜了.呵呵!
我编了个画正多边形的M文件,可以传入确定边数和边长两个参数
%算法描述:一个连长为A的正N边形,作其外接圆.任取一边,将两端与圆心相连.
%得到半径与边夹的角theta=(N-2)*180/2N,外接圆的半径R=A/2/COS(theta)

function plot_polygon(n,a)
%n为多边形的边数
%a为多边形的边长,默认值为1
if nargin<2
a=1;
end
t=(0:n)*2*pi/n;
theta=(n-2)*pi/2/n;
r=a/2/cos(theta);
x=r*cos(t);
y=r*sin(t);
plot(x,y,'r-');

在命令窗中输入

plot_polygon(3)
>> plot_polygon(6,2)
>> plot_polygon(30,2)

可见边数变多时它就成了一个圆形

MATLAB画正多边形

clc;clear all
n=5;%正n边形
i=1:n+1
x=sin(2*pi/n*i)
y=cos(2*pi/n*i)
plot(x,y,'-o')

MATLAB画圆圈
你可以用line的marker来画圆圈:
<br />
for num = 1: n ; <br />
    linehandle(num) = line( 'linestyle', 'none', '