精华内容
下载资源
问答
  • 代码写一场樱花

    2020-12-19 16:37:30
    废话不多说,直接上效果图 是动图 效果如图,需要代码的宝宝,关注,私信我

    废话不多说,直接上效果图在这里插入图片描述
    是动图
    效果如图,需要代码的宝宝,关注,私信我

    展开全文
  • 在中国冠状病毒已然开始退却,但是周边邻邦与地区并不轻松,大洋彼岸欧美国家的病情开始漫延,...这个节气正是樱花烂漫,万物初绽新芽的时令,而武汉大学正是赏樱花的胜地,而武汉是本次疫情的重灾区,不能解封,于...

    0.jpeg

    在中国冠状病毒已然开始退却,但是周边邻邦与地区并不轻松,大洋彼岸欧美国家的病情开始漫延,Sars2-Covid-9出现变种,疫情此消彼涨,人们在焦虑中不断平静,因为人们终将胜利,世界终将复归美好。

    不论是在哪个国家在哪个地区,在这个时节春天的脚步都近了,而大自然给人们的青草与花儿更加让人期待。这个节气正是樱花烂漫,万物初绽新芽的时令,而武汉大学正是赏樱花的胜地,而武汉是本次疫情的重灾区,不能解封,于是在3月16号开通了樱花直播,每天10:00-16:00领大家一起云踏春,线上赏樱花。

    3月18日,武汉大学信息管理学院官方博客又发布了一则消息,该院的学生朱永春用Python让樱花开放,该同学的名字很有意思,咏春,永远在春天。

    来看他用代码画的花是啥样子的:

    640.png

    640.jpeg

    这确实是用代码输出的一束绽放的樱花。

    放大细看,樱花的花朵、花枝都是由"武汉加油”四个字组成的,每个字都是一个像素点。

    640.jpeg

    朱永春同学介绍说,写代码的时间总共大概花了三四个小时,因为平时有这样的想法,刚好灵感闪现,就想到用这种方式来给武汉加油。

    此外,@武汉大学 还放出了源代码,(只要能看懂)你也能在自己的电脑上实现樱花开放全过程:

    640.jpeg

    640.jpeg

    640.jpeg

    网友们看到,纷纷称赞道:"理工科的浪漫” " 太优秀”:

    640.png

    640.png

    640.png

    640.png

    640.png

    按图中cv_2、cv_3、cv_4代码依次执行即可。

    我们再来说说此处的原理。事实上,每一张图片都是由一个一个的像素点所组成的。而每个像素点,都有自己的颜色,其颜色可以用一个数组来表示:(a,b,c),其中每位数的取值范围都是 0-255。

    比如(0,0,0)代表黑色,(255,255,255)代表白色。当像素点足够多的时候,这张照片就是我们所说的高清照片。而如果当像素点太少,我们的肉眼就能感知到明显的锯齿感。

    首先,使用 opencv 的 cv2.imwrite 函数读写,再保存为’.jpeg’后缀的图像:cv2.imwrite( "pic/frame%d.jpg"% count, image) # save frame as JPEG file

    新建一张画布,再选择字体和字体大小:blank = Image.new( "RGB", [len(img[ 0]), len(img)], "white")drawObj = ImageDraw.Draw(blank)n = 10font = ImageFont.truetype( "C:/Windows/Fonts/Microsoft YaHei UI/msyhbd.ttc", size=n - 1)

    写个for循环生成数据,要给这些字加上相应的颜色字体,写入创建的画布中。fori inrange( 0, len(img), n):forj inrange( 0, len(img[i]), n):text = "武汉加油"drawObj.ink = img[i][j][ 0] + img[i][j][ 1] * 256+ img[i][j][ 2] * 256* 256drawObj.text([j, i], text[int(j / n) % len(text)], font=font)print( "完成处理——", i, j)blank.save( "new/new_"+ pic, "jpeg")

    最后将图片写进视频,导出即可。defpicvideo(path, size):# path = r"C:UsersAdministratorDesktophuaixiao"#文件路径filelist = os.listdir(path) # 获取该目录下的所有文件名filelist = resort(filelist)"""

    fps帧率:1秒钟有n张图片写进去[控制一张图片停留5秒钟,那就是帧率为1,重复播放这张图片5次,如果文件夹下有50张 534*300的图片,这里设置1秒钟播放5张,那么这个视频的时长就是10秒。"""fps = 24# size = (591,705) #图片的分辨率片file_path = "video/new.mp4"# 导出路径fourcc = cv2.VideoWriter_fourcc( "D", "I", "V", "X") # 不同视频编码对应不同视频格式(例:"I","4","2","0" 对应avi格式)video = cv2.VideoWriter(file_path, fourcc, fps, size)foritem infilelist:ifitem.endswith( ".jpg"): # 判断图片后缀是否是.pngitem = path + "/"+ itemimg = cv2.imread(item) # 使用opencv读取图像,直接返回numpy.ndarray 对象,通道顺序为BGR ,注意是BGR,通道值默认范围0-255。video.write(img) # 把图片写进视频video.release # 释放

    代码千万行,爱你当首行!

    无数个"武汉加油”汇聚在一起,每个字都是一个像素点,为你敲出一朵樱花的延时开放

    展开全文
  • 受制于疫情,以往摩肩接踵的武汉大学微博在3月16日先是开通了樱花直播,每天 10:00-16:00带大家得以云游春,又在3月18日,官博发布了一个信管院的学生朱永春的作品,他用代码樱花开放,放大细看,花朵、花枝都是...

    冬去春来,正是踏青好时节。受制于疫情,以往摩肩接踵的武汉大学微博在3月16日先是开通了樱花直播,每天 10:00-16:00带大家得以云游春,又在3月18日,官博发布了一个信管院的学生朱永春的作品,他用代码让樱花开放,放大细看,花朵、花枝都是由“武汉加油”四个字组成的,每个字都是一个像素点。

    a4788aa3522eddda5eeed417a47b4412.png

    由于不少网友说自己也想试试,官博后来又公布了源代码和操作命令,(源代码链接:https://pan.baidu.com/s/1anJ4MOg_yQzkLf43q1G58Q,提取码:1a20),源代码压缩包共有350M,用的是Python语言,所以电脑需要安装Python和几个相关依赖包,然后按照下图cv_2、cv_3、cv_4依次执行即可。

    9e8b9b4bf74befc7fa09b3fc219bd0cf.png264ec302146df1bffdc4cb46b35203e5.png9fb05e1676fd1dc74b3e8240519a9ee3.png

    雷锋网AI源创评论注意到,一些开发者评价说,这个项目的复现难度其实不高,相似源代码在网上流传也颇多,但是创意值得肯定。

    29bc7b9013c37446405d483c5b82643c.png

    相关微博发布后便登上热搜,当晚便被央视新闻等大众媒体纷纷转发。截止发稿,央视新闻该条微博点赞超过39.6万,#武大学生代码敲出樱花开放#的微博话题总计阅读量2.5亿,讨论3.4万条。

    展开全文
  • 又到了樱花的季节,教大家使用canvas画出飞舞的樱花树效果。废话少说,先看效果。演示效果地址:http://suohb.com/work/tree4.htm第一步,我们先画出一棵树的主体。我画树的使用的原理是,定义一个起始点,从这个点...

    又到了樱花的季节,教大家使用canvas画出飞舞的樱花树效果。

    废话少说,先看效果。

    演示效果地址:http://suohb.com/work/tree4.htm

    第一步,我们先画出一棵树的主体。

    我画树的使用的原理是,定义一个起始点,从这个点开始,向一个角度移动一段距离。得到另一个点。

    画出一条线连接两个点。

    以新得到的点,依旧向这个角度,移动一段距离。得到第三个点,连写第二第三个点。

    以此类推。一定步长之后,就得到一条射线。

    我们根据自然界中的真实树的情况,这条线越来越细,直到最细地方结束。

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    var treeCanvas = document.getElementById("tree");

    treeCanvas.width = window.innerWidth;

    treeCanvas.height = window.innerHeight ;

    var tCxt = treeCanvas.getContext("2d");

    var rootTop = 450 ;//树起始位置

    var treeColor = "#FFF" ;//树颜色

    function drawTree(x,y,deg,step){

    var x1 = x + Math.cos(deg) * step ;//越细的枝干越短,所以以步长来做

    var y1 = y + Math.sin(deg) * step ;

    tCxt.beginPath();

    tCxt.lineWidth = step/3;//树干越来越细

    tCxt.moveTo(x,y);

    tCxt.lineTo(x1,y1);

    tCxt.strokeStyle = treeColor ;

    tCxt.stroke();

    step -- ;

    if(step > 0){

    drawTree(x1,y1,deg,step);

    }

    }

    drawTree(treeCanvas.width/2,rootTop,-Math.PI/2,30);

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    树干出来之后,要做分叉,每个分叉其实就是向另一个方向的树干。

    而且分叉要比主干细一些。我们在第二阶段树干位置,每三步向左右分叉。

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    if(step > 0){

    drawTree(x1,y1,deg,step);

    if(step%3 == 1)

    drawTree(x1,y1,deg+0.5 ,Math.round(step/1.13));//右分叉

    if(step%3 == 0)

    drawTree(x1,y1,deg-0.5, Math.round(step/1.13));//左分叉

    }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    这样一棵树的主干基本上就已经完成了。

    我们在树的末端几个节点,画一个粉色的半透明的圆。当做樱花。

    为了保证所有樱花不是千篇一律的一个角度,我们随机一个起始角度。

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    function drawTree(x,y,deg,step){

    var x1 = x + Math.cos(deg) * step ;//越细的枝干越短,所以以步长来做

    var y1 = y + Math.sin(deg) * step ;

    tCxt.beginPath();

    tCxt.lineWidth = step/3;//树干越来越细

    tCxt.moveTo(x,y);

    tCxt.lineTo(x1,y1);

    tCxt.strokeStyle = treeColor ;

    tCxt.stroke();

    if(step < 5 ){//在末端五个节点,画一个半圆,作为樱花效果

    var r = 2+Math.random()*2

    tCxt.fillStyle = flowerColor ;

    tCxt.arc(x1+Math.random()*3,y1+Math.random()*3,r,0,Math.PI)

    tCxt.fill();

    }

    step -- ;

    if(step > 0){

    drawTree(x1,y1,deg,step);

    if(step%3 == 1)

    drawTree(x1,y1,deg+0.5 ,Math.round(step/1.13));//右分叉

    if(step%3 == 0)

    drawTree(x1,y1,deg-0.5, Math.round(step/1.13));//左分叉

    }

    }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    这个时候,如果没有特别的要求的,基本算是已经完成了。

    之后再要做的就是精益求精,对现在效果做出微调。

    1、树干都是直线,在计算下一个点的时候,做一些偏移。

    2、樱花树形态比较扁平。给X轴方向上偏移稍微大点,Y轴稍微偏小一点。

    3、至少做两种花瓣颜色,一种稍微深一些,一种浅一些。

    4、在新建一个canvas层,做一些飘落樱花的效果。

    5、在分叉,画花瓣等地方多使用一些随机数,树形状不能太单一

    最终效果如下:

    完整代码如下:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    canvas{

    position: absolute;

    left: 0;

    top: 0;

    }

    //两个canvas

    var tree = document.getElementById("tree");

    tree.width = window.innerWidth;

    tree.height = window.innerHeight ;

    var tCxt = tree.getContext("2d");

    var flower = document.getElementById("flower");

    flower.width = window.innerWidth;

    flower.height = window.innerHeight ;

    var cxt = flower.getContext("2d");

    var flowerList = [];//樱花列表

    var rootTop = 450 ;//树起点

    var flowerColor = "rgba(255,192,203,.3)" ;//花色

    var flowerColorDeep = "rgba(241,158,194,.5)" ;//花色深

    var treeColor2 = "rgba(255,192,203,.5)" ;//树枝颜色

    var treeColor = "#FFF" ;//树干颜色

    var fallList = [];//飘落樱花列表

    var g = 0.01 ;//重力加速度

    var gWind = 0.005;//风力加速度

    var limitSpeedY = 1;//速度上限

    var limitSpeedX = 1 ;//速度上限

    cxt.shadowColor= "#FFF" ;

    cxt.shadowBlur = 10 ;

    function drawTree(x,y,deg,step,type){

    var deg1 = step%2 == 0 ? 0.1 : -0.1 ;

    var x1 = x + Math.cos(deg+deg1) * (step+4) * 0.8 ;//以步长来判断枝干长度 x轴偏移大一些

    var y1 = y + Math.sin(deg+deg1) * (step-1) * 0.8 ;//以步长来判断枝干长度 Y轴压缩一些

    tCxt.beginPath();

    tCxt.lineWidth = step/3;

    tCxt.moveTo(x,y);

    tCxt.lineTo(x1,y1);

    tCxt.strokeStyle = (step > 5 ) ? treeColor : treeColor2 ;//细纸条都换成花的颜色

    tCxt.stroke();

    if(step > 20){//树干相交的位置有间隙,以一个圆填充

    tCxt.fillStyle = treeColor ;

    tCxt.arc(x,y,step/6,0,Math.PI*2);

    tCxt.fill();

    }

    if(step < 3 || (step < 23 && Math.random() > 0.1)){

    //末梢位置 画花瓣

    var color = [flowerColorDeep,flowerColor,flowerColor][Math.round(Math.random()+0.2)] ;

    var r = 2+Math.random()*2

    tCxt.fillStyle = color ;

    tCxt.arc(x1+Math.random()*3,y1+Math.random()*3,r,0,Math.PI)

    tCxt.fill();

    flowerList.push({x:x,y:y,sx:(Math.random()-0.5),sy:0,color:color,r:r,deg:deg});//保存下画樱花的位置

    }

    step -- ;

    if(step > 0){

    drawTree(x1,y1,deg,step,type);

    if(step%3 == 1 && step > 0 && step < 30)

    drawTree(x1,y1,deg+0.2 + 0.3 * Math.random(),Math.round(step/1.13));//右分叉

    if(step%3 == 0 && step > 0 && step < 30)

    drawTree(x1,y1,deg-0.2 - 0.3 * Math.random(),Math.round(step/1.13));//左分叉

    }

    }

    drawTree(tree.width/2,rootTop,-Math.PI/2,30,1);//执行

    var len = flowerList.length ;

    function step(){

    if(Math.random() > 0.3) fallList.push(flowerList[Math.floor(Math.random()*len)]);//随机取出一个,花瓣复制到飘落花瓣的列表中

    cxt.clearRect(0,0,tree.width,tree.height);

    for(var i = 0 ;i < fallList.length ; i ++){

    if(fallList[i].sy < limitSpeedY) fallList[i].sy += g ;

    fallList[i].sx += gWind ;

    fallList[i].x += fallList[i].sx ;

    fallList[i].y += fallList[i].sy ;

    if(fallList[i].y > rootTop){//飘到树根的花瓣移除

    fallList.splice(i,1);

    i -- ;

    continue ;

    }

    cxt.beginPath();

    cxt.fillStyle = fallList[i].color ;

    fallList[i].deg += fallList[i].sx*0.05 ;//跟速度相关的旋转花瓣

    cxt.arc(fallList[i].x,fallList[i].y,fallList[i].r,fallList[i].deg,fallList[i].deg+Math.PI*1.3);

    cxt.fill();

    }

    requestAnimationFrame(step);

    }

    requestAnimationFrame(step);

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    展开全文
  • 又到了樱花的季节,教大家使用canvas画出飞舞的樱花树效果。废话少说,先看效果。演示效果地址:http://suohb.com/work/tree4.htm第一步,我们先画出一棵树的主体。我画树的使用的原理是,定义一个起始点,从这个点...
  • 今天下午,百年珞珈、纯美樱花,我们线上赏樱花!在家用Python了三种樱花树...1动态樱花树效果图(这个是动态的):实现代码(Python):import turtle as Timport randomimport time# 画樱花的躯干(60,t)def Tree(bra...
  • 听说武汉这座英雄城市的樱花已经开了,但是在疫情的影响下,我们只能隔幕观花,小编也是一个爱花使者,今天我们就以另一种方式来呈现樱花之美,想要看到美丽的花朵,得每天保持学习状态,不断吸收新知识,学习新...
  • 樱花飘落代码.zip

    2021-01-22 21:55:07
    一款好的樱花飘落模板源码,上传到根目录就可使用,非常漂亮!完美无错
  • 在中国冠状病毒已然开始退却,但是周边邻邦与地区并不轻松,大洋彼岸欧美国家的病情开始漫延,Sars2-Covid...这个节气正是樱花烂漫,万物初绽新芽的时令,而武汉大学正是赏樱花的胜地,而武汉是本次疫情的重灾区,不...
  • 阳春三月,草长莺飞。...1 樱花树 动态生成樱花效果图(这个是动态的):实现代码(Python):import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, t): time.sleep(0.0005)...
  • 据朱同学介绍,写代码总共大概花了三四个小时,平时有这样的想法,又正好灵感闪现,就想到用这种方式来给武汉加油。此外,@武汉大学 还放出了源代码,(只要能看懂)你也能在自己的电脑上实现樱花开放全过程:网友:...
  • 马上520就要到了,大家有没有准备买花花送给自己的女朋友?最近大白收到了好多粉丝的抱怨,说一到520花花就变得好贵,520...不过大家还是要努力学习代码才可以。(部分新的用法后面会有注释哦)首先需要在桌面新建...
  • 近日,“武大学生用代码敲出樱花绽放”登上热搜,网友直呼“太优秀了”。细看视频你会发现,每个像素都是“武汉加油”,无数个“武汉加油”汇聚在一起,每个字都是一个像素点,汇聚成“花海”。 据悉,这是武汉大学...
  • 近日,“武大学生用代码敲出樱花绽放”登上热搜,网友直呼“太优秀了”。细看视频你会发现,每个像素都是“武汉加油”,无数个“武汉加油”汇聚在一起,每个字都是一个像素点,汇聚成“花海”。据悉,这是武汉大学信...
  • 近日,“武大学生用代码敲出樱花绽放”登上热搜,网友直呼“太优秀了”。细看视频你会发现,每个像素都是“武汉加油”,无数个“武汉加油”汇聚在一起,每个字都是一个像素点,汇聚成“花海”。据悉,这是武汉大学信...
  • 近日,“武大学生用代码敲出樱花绽放”登上热搜,网友直呼“太优秀了”。细看视频你会发现,每个像素都是“武汉加油”,无数个“武汉加油”汇聚在一起,每个字都是一个像素点,汇聚成“花海”。据悉,这是武汉大学信...
  • 近日,“武大学生用代码敲出樱花绽放”登上热搜,网友直呼“太优秀了”。细看视频你会发现,每个像素都是“武汉加油”,无数个“武汉加油”汇聚在一起,每个字都是一个像素点,汇聚成“花海”。据悉,这是武汉大学信...
  • (央广新闻)近日,“武大学生用代码敲出樱花绽放”登上热搜,网友直呼“太优秀了”!细看视频你会发现,每个像素都是“武汉加油”,无数个“武汉加油”聚在一起,汇成“花海”。据悉,这是武汉大学信管学院朱永春同学...
  • 编辑:付慧敏中国日报(ID:CHINADAILYWX)综合@武汉大学、武大微信公众号近日,“武大学生用代码敲出樱花绽放”登上热搜,网友直呼“太优秀了”。细看视频你会发现,每个像素都是“武汉加油”,无数个“武汉加油”...
  • 近日,“武大学生用代码敲出樱花绽放”登上热搜,网友直呼“太优秀了”。细看视频你会发现,每个像素都是“武汉加油”,无数个“武汉加油”汇聚在一起,每个字都是一个像素点,汇聚成“花海”。据悉,这是武汉大学信...
  • 特殊时期火爆公众号的python小程序,周末闲着无聊照了一遍… 原作者:武汉大学朱永春同学 cv_2.py import cv2 vidcap = cv2.VideoCapture('video/video.avi') count = 0 while True: success, image = vidcap....
  • 近日“武大学生用代码敲出樱花绽放”登上热搜网友直呼“太优秀了”细看视频你会发现,每个像素都是“武汉加油”,无数个“武汉加油”汇聚在一起,每个字都是一个像素点,汇聚成“花海”。据悉,这是武汉大学信管学院...
  • 樱花内网穿透网页端源代码,2020重制 由于时间匆忙,没有自动安装程序,所有操作需要手动完成。 注意:网站程序最近有伸缩性,更新时请先阅读Wiki的更新页面,根据教程来更新。 功能和特性 支持多用户 支持用户组...
  • 在家用python了三种樱花树,希望你们能够喜欢。 1 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码(Python): import turtle as T import random import time # 画樱花的躯干(60,t)...
  • Python的turtle模块肯定很棒吧!...难度等级:Python资源共享群:626017123工具:turtle、random我用的是Python 3.8.0b3Shell,开始写代码吧!# 樱花树import randomimport turtleJess = turtle.Turtle()Jess.hidet...
  • word=input("请输入你的卡号")password= input("请输入你的密码")def bank():print("*"*20)print("樱花银行")print("*"*20)def bankwork():print("*"*50)print("1.查询余额")print("2.存款")print("3.取款")print("4...
  • Python画樱花树 !

    万次阅读 2019-08-23 15:23:29
    Python的turtle模块肯定很棒吧!这次,我们要利用turtle来完成一个樱花树的绘制。我们要用def和for语句循环。...我用的是Python 3.8.0b3Shell,开始写代码吧! # 樱花树 import randomimport turtle Jess = turt...
  • 今天下午,百年珞珈、纯美樱花,我们线上赏樱花!在家用Python了三种...1动态樱花树 效果图(这个是动态的): 实现代码(Python):import turtle as Timport randomimport time# 画樱花的躯干(60,t)def Tree(bran...
  • 马上520就要到了,大家有没有准备买花花送给自己的女朋友?最近大白收到了好多粉丝的抱怨,说一到520花花就变得好贵,520...不过大家还是要努力学习代码才可以。(部分新的用法后面会有注释哦)首先需要在桌面新建...

空空如也

空空如也

1 2 3 4
收藏数 68
精华内容 27
关键字:

代码写樱花