R语言绘制五角星

1.采用简单的连线

n <- seq(1,11,2) #R语言环境
x <- sin(0.4*n*pi)
y <- cos(0.4*n*pi)
plot(x,y,type = 'l',xlim = c(-1,1),ylim = c(-1,1),xlab="", ylab="", axes=F)

 

2. 采用长短轴的点的拼接

# 给定一些初始的值
r <- sin(0.1*pi) / cos(0.2*pi)  #五角星短轴的长度
x <- matrix()
y <- matrix()
for ( i in 1:12){
  if( i %% 2 == 1)
  { k = (i+1)/2
  x[i] <- cos((0.5 + k * 0.4) * pi)
  y[i] <- sin((0.5 + k * 0.4) * pi)
  }
  else if(i %% 2 == 0)
  {
    k = i/2
    x[i] <- (r * cos((0.7 + k * 0.4 ) *pi))
    y[i] <- (r * sin((0.7 + k * 0.4 ) *pi))
  }
}
# 注意polygon函数画图好像必须先有一个plot函数
plot(x,y,type='l', xlab = '', ylab = '', xlim =c(-1,1), ylim = c(-1,1),axes = F)

polygon(x, y, col = "red", border = "red") #为五角星填充颜色

 3. 进阶的填充分割画法

# 根据本周所学,制作一个五角星,并保存至相应路径,比如D:\5star.jpg文件中
r <- sin(0.1*pi) / cos(0.2*pi) #获得长短轴的比例
# 利用外接圆原理来画五角星
x <- matrix()
y <- matrix()
for ( i in 1:12){
  if( i %% 2 == 1)
  { 
    k = (i+1)/2
    x[i] <-  cos((0.5 + 0.4*k)*pi)
    y[i] <-  sin((0.5 + 0.4*k)*pi)
  }
  else if(i %% 2 == 0)
  { 
    k = i/2
    x[i] <-  r*cos((0.7 + 0.4*k)*pi)
    y[i] <-  r*sin((0.7 + 0.4*k)*pi)
  }
}

# 保存为png格式,因为其精度高
# jpeg() 用于保存图形,file为需要保存的地方
jpeg(file="F:/IMPORTANT/本科三年级下/R语言环境/5stars.png", width=1000, height=1000)  
getwd() #得出需要保存的地方
# 开始五角星
plot(x,y,type='l',xlab = '',ylab = '',axes = F) # points(0,0)
p <- matrix()
h <- matrix()
for ( m in 1:10){
  p[1]<-x[m]
  p[2]<-x[m+1]
  p[3]<-0
  p[4]<-x[m]
  h[1]<-y[m]
  h[2]<-y[m+1]
  h[3]<-0
  h[4]<-y[m]
  if( m %% 2 == 1)
  { polygon(p, h, col = "yellow", border = "red")}
  else if(m %% 2 == 0)
  { polygon(p, h, col = "red", border = "red")}
}
dev.off() #关闭图形设备,前后两行不可省略
# 然后在你保存的路径里面就能找到方正漂亮的五角星啦~~~

 

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值