- 在线时间
- 1084 小时
- 最后登录
- 2015-9-10
- 注册时间
- 2014-4-18
- 听众数
- 162
- 收听数
- 1
- 能力
- 10 分
- 体力
- 43976 点
- 威望
- 6 点
- 阅读权限
- 255
- 积分
- 15250
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 3471
- 主题
- 2620
- 精华
- 1
- 分享
- 0
- 好友
- 513
升级   0% TA的每日心情 | 开心 2015-3-12 15:35 |
---|
签到天数: 207 天 [LV.7]常住居民III
 群组: 第六届国赛赛前冲刺培 群组: 国赛讨论 群组: 2014美赛讨论 群组: 2014研究生数学建模竞 群组: 数学中国试看培训视频 |
- function PlotStarN(x0,y0,r,theta0,n,color)
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %Author : wacs5
- %Email :
- %Date : 20100405
- %Function : 画n角星(n为大于5的奇数)
- %Called : cos,cosd,deg2rad,error,fill,linspace,mod,plot,sin,sind
- %Version : 只要上述Reference函数可运行的Matlab版本都可以运行
- %Usage : PlotStarN(x0,y0,r,theta0,n,color)
- % : x0,y0是中心点坐标,缺省为(0,0)
- % : r为半径,缺省为1
- % : theta0为其中一个尖角的朝向,缺省为pi/2
- % : n为星的角数,缺省为5
- % : color为填充的颜色,缺省为红色
- %Example : PlotStarN(0,0,1,pi/2,5,'r')
- %See also :
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- if (nargin<1) x0=0; end
- if (nargin<2) y0=0; end
- if (nargin<3) r=1; end
- if (nargin<4) theta0=pi/2; end
- if (nargin<5) n=5; end
- if (nargin<6) color='r'; end
- if n<5 || mod(n,2)==0
- error('n必须是大于5的奇数');
- end
- FlagPlotEdge=0; %不画边
- theta1=theta0+linspace(0,2*pi,n+1); %n角星的顶点的角度值
- %%%%%%%%%%%%%%%%%%%%%%%%
- %%n个顶点坐标
- x1=x0+r*cos(theta1);
- y1=y0+r*sin(theta1);
- %%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%
- %%n角星边的交点坐标
- r2=r*sind(180*(n-4)/2/n)/cosd(360/2/n); %交点的外接圆的半径
- theta2=theta1+deg2rad(360/2/n); %交点的角度值
- x2=x0+r2*cos(theta2);
- y2=y0+r2*sin(theta2);
- %%%%%%%%%%%%%%%%%%%%%%%%
- %%将顶点的交点混合隔开
- x=[x1;x2];
- y=[y1;y2];
- x=[x(
;x1(end)]; - y=[y(
;y1(end)]; - fill(x,y,color)
- if FlagPlotEdge==1
- xx=x1(mod(0:2:2*n,n)+1);
- yy=y1(mod(0:2:2*n,n)+1);
- plot(xx,yy,'k')
- end
源代码:
|
zan
|