心形函数的R语言实现

文摘   2024-08-10 00:02   江苏  

心形函数的R语言实现




静态图片



七夕必须蹭波热度。
心型函数的表达式如下:
x^2+y^2+a*x=a*sqrt(x^2+y^2)x^2+y^2-a*x=a*sqrt(x^2+y^2)

    R语言可视化实现代码为:

install.packages('RColorBrewer')library(RColorBrewer)col <- brewer.pal(3,'Set1')[1]t <- seq(0,60,len=100)x <- -.01*(-t^2+40*t+1200)*sin(pi*t/180)y <- .01*(-t^2+40*t+1200)*cos(pi*t/180)                  plot(c(-12,14),c(0,20),type='n',axes=T,xlab=' ' ,ylab='')arrows(-11,8,14,8, lwd =10,col='gold')                  arrows(14,8,-11,8,lwd =10,col='gold',angle = 120)arrows(14,8,-10,8,lwd =10,col='gold', angle = 120)arrows(14,8,-9,8,lwd=10,col='gold',angle = 120)polygon(x+3,y,col =col , border=NA)polygon(-x+3,y,col = col,border = NA)lines(x+3,y,lwd=2)lines(-x+3,y,lwd=2)arrows(5,8,14,8,lwd =10,col='gold')text(1,18,"I Love U", col='red' ,cex=2)





动图



甚至还能用R语言绘制一个动图版的:
# 安装并加载所需的R包install.packages('RColorBrewer')install.packages('animation')
library(RColorBrewer)library(animation)
# 设置颜色col <- brewer.pal(3,'Set1')[1]t <- seq(0,60,len=100)x <- -.01*(-t^2+40*t+1200)*sin(pi*t/180)y <- .01*(-t^2+40*t+1200)*cos(pi*t/180)
# 动画绘制函数draw_heart_with_moving_arrow <- function(frame) { plot(c(-12,14),c(0,20),type='n',axes=TRUE,xlab=' ',ylab='') # 绘制静态的右半侧爱心 polygon(x + 3, y, col = col, border = NA) lines(x + 3, y, lwd = 2) # 动态移动的箭头(调整长度) arrows(-8 + frame, 8, 8 + frame, 8, lwd = 10, col = 'gold') arrows(8 + frame, 8, -8 + frame, 8, lwd = 10, col = 'gold', angle = 120) arrows(8 + frame, 8, -7 + frame, 8, lwd = 10, col = 'gold', angle = 120) arrows(8 + frame, 8, -6 + frame, 8, lwd = 10, col = 'gold', angle = 120) # 绘制覆盖在箭头上的左半侧爱心 polygon(-x + 3, y, col = col, border = NA) lines(-x + 3, y, lwd = 2) # 文本部分 text(1, 18, "I Love U", col = 'red', cex = 2)}
# 生成动画并保存为GIF文件saveGIF({ for (frame in seq(0, 14, by = 0.5)) { draw_heart_with_moving_arrow(frame) }}, movie.name = "heart_with_moving_arrow.gif", interval = 0.1, ani.width = 500, ani.height = 500)




最后,祝大家节日愉快~

如何联系我们

公众号后台消息回复不便,这里给大家留一下领取资料及免费服务器(足够支持你完成硕博生涯的生信环境)的微信号,方便各位随时交流、提建议(别问在么,添加时直接说来意)。此外呼声一直很高的交流群也建好了,欢迎大家入群讨论:

永久免费的生信、科研交流群

大家可以阅读完这几篇之后添加
给生信入门初学者的小贴士
如何搜索公众号过往发布内容

您点的每个赞和在看,我都认真当成了喜欢


Biomamba 生信基地
本人为在读博士研究生,此公众号旨在分享生信知识及科研经验与体会,欢迎各位同学、老师与专家的批评指正,也欢迎各界人士的合作与交流。
 最新文章