{R語言}中國國旗-慶祝祖國69歲生日
阿新 • • 發佈:2018-12-12
明天就是國慶,用自己的方式慶祝偉大的祖國建立69週年。
利用R語言畫中國國旗
效果預覽: 程式碼:
#畫五角星的函式 star<-function(posXY,size=1,theta=0,color="yellow") { alpha<-2*pi/5 R<-size r<-sin(pi/10)*R/sin(7*pi/10) pointpos<-matrix(0,nrow=10,ncol=2) Beta<-(pi/10+theta)+(0:4)*alpha pointpos[seq(1,9,2),]<-cbind(cos(Beta)*R+posXY[1],sin(Beta)*R+posXY[2]) Beta<-(3*pi/10+theta)+(0:4)*alpha pointpos[seq(2,10,2),]<-cbind(cos(Beta)*r+posXY[1],sin(Beta)*r+posXY[2]) polygon(pointpos,col=color,border=color) } #計算小五角星旋轉角度的函式 rotTheta<-function(posxy,posXY) { atan((posXY[2]-posxy[2])/(posXY[1]-posxy[1]))+pi/2 } #常量設定 width<-3 height<-2*width/3 d<-width/30 yshift<-height/2 #國旗的座標 Flag<-cbind(c(0,width,width,0),c(0,0,height,height)) #大五角星座標 posXY<-c(5*d,yshift+5*d) #小五角星座標 posxy<-matrix(c(10,8,12,6,12,3,10,1),ncol=2,byrow=T)*d+matrix(c(0,yshift),nrow=4,ncol=2,byrow=T) #小五角星旋轉角度 rottheta<-rep(0,nrow(posxy)) rottheta<-apply(posxy,1,rotTheta,posXY) #畫紅色的國旗底面 plot(Flag,type="n",col="red",axes=F,xlim=c(0,width),ylim=c(0,height),xlab="",ylab="",main="People's Republic of China",asp=1) polygon(Flag,density=NULL,col="red",border="red") #畫出大五角星 star(posXY,size=3*height/20,theta=0,color="yellow") #畫出四顆小星 for(i in 1:nrow(posxy)) { star(posxy[i,],size=height/20,theta=rottheta[i],color="yellow") }