专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

笑哭了!电视剧里的代码真能运行吗?

  我是柠檬哥,专注编程知识分享。
  欢迎关注程序员柠檬橙,编程路上不迷路
  私信发送1024打包下载10个G编程资源学习资料
  私信发送001获取阿里大神LeetCode刷题笔记
  私信发送002获取获取谷歌公司编程代码规范
  私信发送003获取10个精美简历模板PDF和Word版
  私信发送004获取100道精选C面试题和答案word版
  私信发送005获取获取谷歌LeetCode算法笔记
  最近有一部关于程序员的电视剧,里边有一段关于期中考试要用程序画一个爱心的桥段。仔细看了一下,发现槽点还不少。
  今天就给大家分析下剧中出现的爱心代码,并且来复刻一下最后男主完成的酷炫跳动爱心。
  剧中代码赏析
  1。首先是路人同学的代码:
  虽然剧中说是C语言期中考试,但这位同学的代码名叫draw2。py,一个典型的Python文件,再结合截图中的pen。forward、pen。setpos等方法来看,应该是用turtle海龟作图库来画爱心。那效果通常是这样的:
  importturtleast
  t。color(red)
  t。setheading(50)
  t。beginfill()
  t。circle(100,170)
  t。circle(300,40)
  t。right(38)
  t。circle(300,40)
  t。circle(100,170)
  t。endfill()
  t。done()
  而不是剧中那个命令行下用1组成的不规则的图形。
  2。然后是课代表向路人同学展示的优秀代码:
  及所谓的效果:
  这确实是C语言代码了,但文件依然是以。py为后缀,并且include前面没有加上,这显然是没法运行的。
  里面的内容是可以画出爱心的,用的是这个爱心曲线公式:
  然后遍历一个1517的方阵,计算每个坐标是在曲线内还是曲线外,在内部就输出或,外部就是。
  用python改写一下是这样的:
  foryinrange(9,6,1):
  forxinrange(8,9):
  print(〔(x10)4〕if(xxyy25)325xxyyyelse,end)
  print()
  效果:
  稍微改一下输出,还能做出前面那个全是1的效果:
  foryinrange(9,6,1):
  forxinrange(8,9):
  print(1if(xxyy25)325xxyyyelse,end)
  print()
  但跟剧中所谓的效果相去甚远。
  3。最后是主角狂拽酷炫D炸天的跳动爱心:
  代码有两个片段:
  但这两个片段也不C语言,而是C,且两段并不是同一个程序,用的方法也完全不一样。
  第一段代码跟前面一种思路差不多,只不过没有直接用一条曲线,而是上半部用两个圆形,下半部用两条直线,围出一个爱心。
  改写成Python代码:
  size10
  forxinrange(size):
  foryinrange(4size1):
  dist1((xsize)2(ysize)2)0。5
  dist2((xsize)2(y3size)2)0。5
  ifdist1size0。5ordist2size0。5:
  print(V,end)
  else:
  print(,end)
  print()
  forxinrange(1,2size):
  foryinrange(x):
  print(,end)
  foryinrange(4size12x):
  print(V,end)
  print()
  运行效果:
  第二段代码用的是基于极坐标的爱心曲线,是遍历角度来计算点的位置。公式是:
  计算出不同角度对应的点坐标,然后把它们连起来,就是一个爱心。
  frommathimportpi,sin,cos
  importmatplotlib。pyplotasplt
  nopieces100
  dt2pinopieces
  t0
  vx〔〕
  vy〔〕
  whilet2pi:
  vx。append(16sin(t)3)
  vy。append(13cos(t)5cos(2t)2cos(3t)cos(4t))
  tdt
  plt。plot(vx,vy)
  plt。show()
  效果:
  代码中循环时用到的2是为了保证曲线长度足够绕一个圈,但其实长一点也无所谓,即使100也不影响显示效果,只是相当于同一条曲线画了很多遍。所以剧中代码里写下35位小数的,还被女主用纸笔一字不落地抄写下来,实在是让程序员无法理解的迷惑行为。
  但不管写再多位的,上述两段代码都和最终那个跳动的效果差了五百只羊了个羊。
  跳动爱心实现
  下面就来挑战一下用Python实现最终的那个跳动爱心的效果。
  1。想要绘制动态的效果,必定要借助一些库的帮助,不然代码量肯定会让你感动得想哭。这里我们将使用pgzero库。然后结合最后那个极坐标爱心曲线代码,先绘制出曲线上离散的点。
  importpgzrun
  frommathimportpi,sin,cos
  nop100
  dt23nop
  t0
  x〔〕
  y〔〕
  whilet23:
  x。append(16sin(t)3)
  y。append(13cos(t)5cos(2t)2cos(3t)cos(4t))
  tdt
  defdraw():
  screen。clear()
  foriinrange(len(x)):
  screen。draw。filledrect(Rect((x〔i〕10400,y〔i〕10300),(4,4)),pink)
  pgzrun。go()
  2。把点的数量增加,同时沿着原点到每个点的径向加一个随机数,并且这个随机数是按照正态分布来的(半个正态分布),大概率分布在曲线上,向曲线内部递减。这样,就得到这样一个随机分布的爱心效果。
  。。。
  nop20000
  。。。
  whilet2pi:
  l10abs(random。gauss(10,2)10)
  x。append(l16sin(t)3)
  y。append(l(13cos(t)5cos(2t)2cos(3t)cos(4t)))
  tdt
  。。。
  3。下面就是让点动起来,这步是关键,也有一点点复杂。为了方便对于每个点进行控制,这里将每个点自定义成了一个Particle类的实例。从原理上来说,就是给每个点加一个缩放系数,这个系数是根据时间变化的正弦函数,看起来就会像呼吸的节律一样。
  classParticle():
  definit(self,pos,size,f):
  self。pospos
  self。pos0pos
  self。sizesize
  self。ff
  defdraw(self):
  screen。draw。filledrect(Rect((10self。fself。pos〔0〕400,10self。fself。pos〔1〕300),self。size),hotpink)
  defupdate(self,t):
  df1(21。5)sin(t3)8
  self。posself。pos0〔0〕df,self。pos0〔1〕df
  。。。
  t0
  defdraw():
  screen。clear()
  forpinparticles:
  p。draw()
  defupdate(dt):
  globalt
  tdt
  forpinparticles:
  p。update(t)
  4。剧中爱心跳动时,靠中间的点波动的幅度更大,有一种扩张的效果。所以再根据每个点距离原点的远近,再加上一个系数,离得越近,系数越大。
  classParticle():
  。。。
  defupdate(self,t):
  df1(21。5self。f)sin(t3)8
  self。posself。pos0〔0〕df,self。pos0〔1〕df
  5。最后再用同样的方法画一个更大一点的爱心,这个爱心不需要跳动,只要每一帧随机绘制就可以了。
  defdraw():
  。。。
  t0
  whilet2pi:
  frandom。gauss(1。1,0。1)
  x16sin(t)3
  y13cos(t)5cos(2t)2cos(3t)cos(4t)
  size(random。uniform(0。5,2。5),random。uniform(0。5,2。5))
  screen。draw。filledrect(Rect((10fx400,10fy300),size),hotpink)
  tdt3
  合在一起,搞定!
  总结一下,就是在原本的基础爱心曲线上加上一个正态分布的随机量、一个随时间变化的正弦函数和一个跟距离成反比的系数,外面再套一层更大的随机爱心,就得到类似剧中的跳动爱心效果。
  但话说回来,真有人会在考场上这么干吗?
  除非真的是超级大学霸,不然就是食堂伙食太好,吃太饱撑的

国内SUV销售火爆,底盘高空间大等优点,为什么有人说,真正懂车的人不买SUV?我现在开的就是SUV,开了两年,发现6大缺点,奉劝不是买豪车SUV要深思,如果不想后悔,就得接受它的缺点!不光农村人,城里人买车也有这三个特点,首先它要大气有空间,其次要霸气有面子GL8和艾力绅哪款比较好?本文将和大家分享开过别克GL8,又开本田艾力绅,比较性价比,车主差别明显。今天我们请来了王先生,他之前有一辆别克GL8,最近又提了一辆本田艾力绅,他告诉我认真对比就知道差别。别克G同样的菜系,口味又相似,为何湖南菜全国流行而江西菜无人知?江西菜和湖南菜都是以家常口味为主,烹调方法也差不多,两地最大的区别可能是腊味,江西以风干腊味为主,湖南以烟熏腊味为主。清末湖南人才崛起,湘军征战四方,人的流动带动口味的流动,改革开山东人喝酒时的入座顺序和敬酒顺序有什么讲究?山东人喝酒时的入座顺序和敬酒顺序,讲究太多,我尽量说得简单,让外地不懂的朋友能直观了解一点吧。一山东人喝酒时座次这个在正式场合非常讲究,若是你不懂,千万别先坐下,免得尴尬。教你几个泰国男士马杀鸡体验怎么样?想去曼谷玩,有哪些景点推荐?泰式按摩(马杀鸡)是每个去泰国旅游的朋友必体验的项目之一,那种酸爽的感觉简直让人上瘾我去泰式马杀鸡基本都是由泰国朋友带去的,体验过曼谷华欣清迈和芭提雅几个地方马杀鸡,再加上有个泰国川藏线G318在各市县的海拔如何?一张图就可以说明一切,这里的海拔一目了然!川藏线上,超过4000米海拔的哑口,有14坐山,也就是说我们在川藏线上平均海拔,都在3500米以上的地方行走,最高的两个地方是东达山和米拉速卖通前景怎么样?速卖通是现在最火的跨境电商平台之一,我做速卖通好几年了,入驻速卖通平台还是一个很好的选择,现在速卖通平台越来越重视品牌了,品牌出海,速卖通前景还是不错的。想入驻速卖通,先了解下入驻孩子初二,数学110,怎么提升学习?若满分是120分,则已经是不错的分了。若满分是150分,则需在中等题目上下功夫,以至继续提升。我是一名从教17年的数学教师,希望我能为你解决现在的烦恼。孩子的数学110分左右,你还甘肃省内所有高校中综合实力排名是怎样的?感谢悟空小秘书的邀请!时光荏苒,距离2019年高考越来越近,我身边已有不少家长开始了解目标大学,对于甘肃省的考生和家长,心中也肯定想了解清楚目前甘肃省大学排名情况。甘肃省目前高等院人参健脾丸可以和参苓白术散一起吃吗,为什么?您好,很高兴回答您的问题。人参健脾丸和参苓白术散都是健脾类中成药,药物组成和功效作用比较接近,这两种药物的基础方均是四君子汤,药物成分相似一般不主张一起吃,因为药物重叠较多,例如参得了肾结石,跳绳能把结石跳出去吗?有些肾结石是可以通过跳绳摸高跳,跑步等运动排出来的,但是前提是医生鼓励你这样做。巨大的鹿角结石去年体检时,发现我肾脏内有小结晶。马上又要进行体检了,我期待我肾脏的小结晶以及排出体外
你最常用的浏览器插件浏览器大家都用的应该都十分地熟了,但是大家知道吗?如果给浏览器安装一些插件,可以让我们在网上进行冲浪更加舒心愉悦,上网更畅快。比如可以将浏览器的广告全部屏蔽看不懂的英文实时翻译,或Astro2。0已发布,你的建站内容小帮手来了!洞察全球IT资讯聚焦互联网尽在新猿视界!Astro2。0发布Astro是一个多合一的为内容建设而设计的一个Web框架,自发布以来,受到全球100000用户的青睐。Astro利用As预计2023年全球智能手机出货量下降,iPhone13低至百元成弃机3月8日消息,TechInsights(前身为StrategyAnalytics)今日发布报告称,预计2023年全球智能手机出货量将小幅下滑。2023年全球手机(手机)出货量将同比美国科学家称,月球灰尘能当地球临时遮阳伞!或可解决这一问题!美国科学家称,从月球释放尘埃可能是阻挡阳光缓解全球变暖趋势的好方案,月球尘埃会在部分阳光到达地球前发挥拦截作用,充当地球的临时遮阳伞。其实,这并非一个全新构想,几十年以来,科学家一万字八股文系列Java虚拟机(JVM)说一下JVM的主要组成部分及其作用?JVM包含两个子系统和两个组件,两个子系统为Classloader(类装载)Executionengine(执行引擎)两个组件为Runtimed10年老架构3000字就把微服务高并发熔断降级熔断器讲得明明白白熔断器从Sentinel1。8。0开始,无论使用DegradeRuleManager的loadRulesAPI还是使用动态数据源加载熔断降级规则,当熔断降级规则更新时,SentinGitKraken6。5。1官方停用后,本地继续使用方式2023年2月28日后,GitKraken官方停用了6。5。1之前的版本。在使用GitKraken6。5。1时,会卡在登陆界面进不去项目。要想继续管理私有项目,只能升级最新版的软件每秒30万公里的光速,是宇宙的极限速度吗,超光速是否真的存在?在人类历史上有相当长一段时间,人们都认为光传播是不需要时间的,即他们认为光速应该是无限快的。后来的伽利略虽然意识到了光速有限,但他和助手两个人登了两个山头点灯,还是没能计算出光传播高通总裁亲口确认,苹果基带芯片不再被卡脖子造芯无疑是当下手机圈的一股潮流,不仅国内一众头部厂商在搞,苹果更是其中的佼佼者,如今应用在iPhoneiPad系列上的仿生芯片,以及MaciPad上的M系列芯片更是有着极为突出的表德州陵城区黄向阳常委一行到访中国通信企业协会云数据专委会2月23日上午,山东省德州市陵城区区委常委副区长黄向阳带队到访中国通信企业协会,与云数据专业委员会秘书长郑宏就鲁北大数据中心建设运营以及县域数字经济发展等进行座谈交流。中国电信德州至今地球五大未解之谜至今地球上还有五大未解之谜,最恐怖的一个居然在中国。第一个还是让你头皮发麻。第六,地球上的水从哪里来?要知道,45亿年前,地球是非常干燥的,而现在地球的70是海洋。这么多的水可能来
友情链接:快好知快生活快百科快传网中准网文好找聚热点快软网