用python祝福生日快乐,Python生日祝福
重要的话要放在前面:
无论你是计算机编程语言初学者\还是C初学者\还是爪哇初学者
过节祝福祝生日最好的方式都是:
其实经常有同学私信询问我们,程序员有什么浪漫的过节方式、有什么浪漫的代码之类的。
我们的客服小姐姐每次耐心解答完以后,总要小心翼翼地提醒一句"千万别只发个代码就过了啊"。
题主的操作就很靠谱,「已经提前准备好口红和巧克力了」——真是好男人,好程序猿的典范啊。
有什么浪漫的代码吗?
一说到浪漫惊艳的代码,许多极客战记资深选手纷纷带着「花之戒」跳了出来。
这是一个类似蟒蛇龟库的游戏道具。
其中setFlowerColor()对应的就是turtle.penup()和turtle.pendown()
因此下方所展示的所有代码,均可将代码对象换成乌龟,并换成龟库中对应的函数即可直接运行。
这位同学就通过使用心形函数和余弦函数创造了这幅作品。
心形绘制函数
定义心形(x,y,比例=1):
self.toggleFlowers(False)
PI=数学。产品改进(产品改进)
定义xy(t):
弧度=/180.0
系数=0.01 *(t * t 40 * t 1200)
return(coef * math。sin(t * rad _ in _ deg),coef * Math.cos(t*rad_in_deg))
def draw(t,mul=1):
电流x,电流y=xy(t)
current_x *=scale*mul
当前y *=比例
self.moveXY(x current_x,y current_y)
self.toggleFlowers(True)
对于范围(61)内的t:
绘制(吨)
self.toggleFlowers(False)
对于范围内的t(60,-1,-1):
绘制(t,-1)
其中x和y为心形中心最底部的坐标,比例为心形的大小,使用示例:
波浪绘制函数
def drawWave(y,x_first,x_last,dense=0.5,amp=10):
X_STEP=0.5
self.toggleFlowers(False)
定义绘制(十):
cy=Math.cos(x*dense) * amp
self.moveXY(x,y cy)
self.toggleFlowers(True)
x=x_first
而x=x_last:
绘制(十)
x=X_STEP
因为余弦函数是一个横向的曲线函数,所以参数y是设置曲线的中心高度,x_first是设置曲线的起点,x_last是设置曲线的重点,而稠密的则是设置波动的密度,数字越大,波动就越密集,放大器则是设置波动的高度。
使用示例:
如果觉得只是曲线和心形比较单调,那还可以用上一些花朵与笑脸来填充
#角度偏移:从弧度=0开始逆时针方向的偏移量(以弧度为单位),它决定了第一朵花的花瓣顶点的绘制位置
def drawMetaFlower(x,y,minRadius=5,maxRadius=25,petals=5,angleOffset=0,centerCircle=False):
如果最小半径最大半径:
最小半径,最大半径=最大半径,最小半径
diffRadius=最大半径-最小半径
angleStep=(数学。* 2/花瓣)/12
hero.toggleFlowers(False)
hero.moveXY(
x maxRadius * math。cos(角度偏移),
y最大半径*数学。sin(角度偏移))
hero.toggleFlowers(True)
对于范围内的角度(角度步长,数学* 2,angleStep):
#计算时,记得将角度偏移加到角中
angleThisStep=角度角度偏移量
radiusThisStep=最小半径(不同半径/2)*(1数学。cos(角度*花瓣))
hero.moveXY(
x radiuthiststep * math。cos(angleThisStep),
y radiusThisStep * math。sin(angleThisStep))
如果圆心:
hero.setFlowerColor(白色)
绘制圆(x,y,最小半径)
hero.toggleFlowers(False)
def drawCircle(x,y,size):
角度=0
hero.toggleFlowers(False)
而角度=数学。圆周率* 2:
newX=x (size * Math.cos(angle))
newY=y (size * Math.sin(angle))
hero.moveXY(newX,newY)
hero.toggleFlowers(True)
角度=0.2
定义距离(p1,p2):
返回((P1。x-p2。x)* * 2(P1。y-p2。y)* * 2)* * 0.5
oldPos=[]
newPos={
x :无,
y :无}
colors=[红色,蓝色,黄色,紫色,蓝色,黄色,紫色]
对于范围(15)内的我:
#让花朵彼此不要靠得太近
对于范围(7)中的k:退出前通过# 7次
好=真
newPos.x=70*Math.random() 50
newPos.y=50*Math.random() 50
#遍历每个旧位置,以确保新位置不会太靠近它们中的任何一个
对于范围内的n(len(oldPos)):
如果距离(newPos,oldPos[n]) 20:
好=假
破裂
如果好:
破裂
英雄。setflowercolor(colors[math。ceil(数学。random()* len(colors))-1])
drawMetaFlower(
newPos.x,
newPos.y,
minRadius=Math.random()*2 1.5,
maxRadius=Math.random()*8 9,
angle offset=Math . random()* Math .* 2/5,
中心圆=(^ 1)% 2)
oldPos[i]={x:newPos.x, y:newPos.y}
# p1是开始,p4是结束
# p2和p3用于进近。曲线通常不会碰到这些点。
#查看维基百科中的三次贝塞尔曲线了解更多信息
def drawCubicBezier(p1,p2,p3,p4):
hero.toggleFlowers(False)
hero.moveXY(p1.x,p1.y)
hero.toggleFlowers(True)
b={x: p1.x, y: p1.y}
#点与点之间的距离越远,t步骤越小。
tStep=(距离(p1,p2)距离(p2,p3)距离(p3,p4))**-1.0
对于范围内的t(0,1,tStep):
乙。x=((1-t)* * 3 * P1。x)(3 *(1-t)* * 2 * t * p2。x)(3 *(1-t)* t * * 2 * P3。x)(t * * 3 * P4。x)
乙。y=((1-t)* * 3 * P1。y)(3 *(1-t)* * 2 * t * p2)。y)(3 *(1-t)* t * * 2 * P3。y)(t * * 3 * P4。y)
hero.moveXY(b.x,b.y)
定义距离(p1,p2):
返回((P1。x-p2。x)* * 2(P1。y-p2。y)* * 2)* * 0.5
# x和y是中心的坐标
#尺寸是从嘴的一端到另一端的宽度
def drawSmiley(x,y,size):
bezCurves=[ #这是位置的2D数组
#嘴巴
[{x: x - size*0.5, y: y},
{x: x大小*0.35, y: y大小*0.7},
{x: x尺寸*0.35, y: y尺寸*0.7},
{x: x大小*0.5, y: y}],
#右眼
[{x: x大小*0.32,“y”:y大小*0.35},
{x: x尺寸*0.26, y: y尺寸*0.65},
{x: x尺寸*0.18, y: y尺寸*0.65},
{x: x尺寸*0.12, y: y尺寸*0.35}],
#左眼
[{x: x尺寸*0.12, y: y尺寸*0.35},
{x: x尺寸*0.18, y: y尺寸*0.65},
{x: x尺寸*0.26, y: y尺寸*0.65},
{x: x大小*0.32,“y”:y大小*0.35}]
]
对于范围内的I(len(bez曲线)):
绘制立方贝塞尔曲线(
bezCurves[i][0],
bezCurves[i][1],
bezCurves[i][2],
bezCurves[i][3]
)
定义xyToPos(x,y):
return {x: x, y: y}
colors=[粉色,红色,黄色,蓝色,紫色,白色]
对于范围内的列(1,5 1):
对于范围(1,4,1)中的行:
hero.setFlowerColor(
颜色[数学。ceil(数学。random()* len(colors))-1])
drawSmiley(x=col*25 10,y=125 *(col 1)% 2)row * 25 *(col 1)% 2)10,size=15)
hero.toggleFlowers(False)
将这几个函数改变些许参数组合使用,就能用代码创作出一幅精美的作品啦~
除了直接的代码绘画,用代码来写情诗,也是独具心意的浪漫方式呢。
计算机编程语言选手:
生活=世界
对于生命中每一天:
如果天!=u :
及格
翻译:
人生在世
日夜更迭
倘若无你
恍惚虚无
C选手:
while(me:find())
if(me:met()==you:self())
我:出去你好世界。
翻译:
我一直在寻找
当我找到了你
便找到了整个世界
爪哇岛选手:
抽象类我的爱实现了您的加热器{
String MyLove(String I_do){
返回永远永远;
}
翻译:
抽象出我的爱注入你心中
若你愿意
我便爱你直到永久
感觉不错吧!
看完上面的内容,是否想好了自己的「云端情人节」要怎么过了吗?
别担心别纠结,无论你选择哪种表达形式,只要你是真心实意地在准备,那就足够啦~
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。