软件教程

李峋同款爱心可复制代码分享

2022-11-14 00:08:58作者:大神

随着最近甜剧“点燃我温暖你”的热播,被网友称为冬季专用电子羽绒服。在第五集的剧情中,男主角李米一个人让C语言火了起来,你不得不佩服程序员的浪漫。大家都想解开李迅同款的爱情密码。接下来就要给优哈手游小编了。

李峋同款爱心可复制代码分享

李的爱情同款可以复制代码共享。

I .可复制的代码共享

#夜晚,星月闪耀,我的梦会陪你入眠

随机导入

从数学导入正弦、余弦、圆周率、对数

来自tkinter import *

画布宽度= 640 #画布的宽度

CANVAS_HEIGHT = 480 #画布的高度

Canvas _ center _ x = canvas _ width/画布中心的2 # x轴坐标

Canvas _ center _ y = canvas _ height/画布中心的2 # Y轴坐标

IMAGE _ amplify = 11 #放大倍率

HEART_COLOR = "#ff2121" #心色,这是中国红。

def heart_function(t,shrink _ ratio:float = IMAGE _ amplify):

"""

“爱情函数发生器”

:param shrink_ratio:放大。

:param t:参数

:返回:坐标

"""

#基本功能

x = 16 * (sin(t) ** 3)

y =-(13 * cos(t)-5 * cos(2 * t)-2 * cos(3 * t)-cos(4 * t))

#放大

x *=收缩率

y *=收缩率

#移到画布的中心

x +=画布_中心_X

y +=画布_中心_Y

return int(x),int(y)

def scatter_inside(x,y,beta=0.15):

"""

随机内部扩散

:参数x:原始x

:参数y:原始y

:参数β:强度

:返回:新坐标

"""

ratio _ x =-beta * log(random . random())

ratio _ y =-beta * log(random . random())

dx =比率_x * (x -画布_中心_x)

dy = ratio_y * (y - CANVAS_CENTER_Y)

返回x - dx,y - dy

定义收缩(x,y,比率):

"""

摇动

:参数x:原始x

:参数y:原始y

:参数比率:比例

:返回:新坐标

"""

force =-1/(((x-canvas _ center _ x)* * 2+(y-canvas _ center _ y)* * 2)* * 0.6)#此参数...

dx =比率*力* (x - CANVAS_CENTER_X)

dy =比率*力* (y - CANVAS_CENTER_Y)

返回x - dx,y - dy

定义曲线(p):

"""

自定义曲线功能,调整打浆周期。

:param p:参数

:返回:正弦

"""

#你可以尝试改变其他动态函数来达到更强大的效果(贝塞尔?)

返回2 * (2 * sin(4 * p)) / (2 * pi)

班心:

"""

像爱情一样

"""

def __init__(self,generate_frame=20):

自我。_points = set() #原创爱情坐标集

自我。_ edge _ diffusion _ points = set () #边缘扩散效应点的坐标集

自我。_ center _ diffusion _ points = set()#中心扩散效应点坐标集

Self.all_points = {} #每帧动态点的坐标

自建(2000年)

self.random_halo = 1000

self.generate_frame =生成_帧

对于范围内的帧(generate_frame):

self.calc(框架)

定义构建(自身,编号):

#爱

for _ in范围(数字):

T = random.uniform(0,2 * pi) #随机地点造成爱情的缝隙。

x,y =心脏功能(t)

自我。_points.add((x,y))

#爱在内心蔓延

对于列表中的_x,_y(自身。_点):

for _ in范围(3):

x,y = scatter_inside(_x,_y,0.05)

自我。_edge_diffusion_points.add((x,y))

#爱再次蔓延

point_list = list(self。_点)

对于_在范围内(4000):

x,y = random.choice(点列表)

x,y = scatter_inside(x,y,0.17)

自我。_ center _ diffusion _ points . add((x,y))

@静态方法

定义计算位置(x,y,比率):

#调整缩放比例

force = 1/(((x-canvas _ center _ x)* * 2+(y-canvas _ center _ y)* * 2)* * 0.520)# magic参数

dx =比率*力*(X-CANVAS _ CENTER _ X)+random . randint(-1,1)

dy = ratio * force *(Y-CANVAS _ CENTER _ Y)+random . randint(-1,1)

返回x - dx,y - dy

定义计算(自身,生成_帧):

比率= 10 *曲线(generate _ frame/10 * pi) #平滑循环的缩放比率

halo_radius = int(4 + 6 * (1 +曲线(generate_frame / 10 * pi)))

halo _ number = int(3000+4000 * ABS(curve(generate _ frame/10 * pi)* * 2))

所有点数= []

#光环

Heart_halo_point = set() #光环的点坐标的集合

for _ in范围(光晕_编号):

T = random.uniform(0,2 * pi) #随机地点造成爱情的缝隙。

x,y =心脏_功能(t,shrink _ ratio = 11.6) #魔术参数

x,y = shrink(x,y,halo_radius)

如果(x,y)不在心脏晕圈点:

#处理新积分

heart_halo_point.add((x,y))

x += random.randint(-14,14)

y += random.randint(-14,14)

size = random.choice((1,2,2))

all_points.append((x,y,size))

#大纲

对于自我中的x,y。_点:

x,y = self.calc_position(x,y,ratio)

size = random.randint(1,3)

all_points.append((x,y,size))

#内容

对于自我中的x,y。_边缘_扩散_点:

x,y = self.calc_position(x,y,ratio)

size = random.randint(1,2)

all_points.append((x,y,size))

对于自我中的x,y。_center_diffusion_points:

x,y = self.calc_position(x,y,ratio)

size = random.randint(1,2)

all_points.append((x,y,size))

self . all _ points[生成帧] = all_points

def render(自身,render_canvas,render_frame):

对于x,y,size in self . all _ points[render _ frame % self . generate _ frame]:

render _ canvas . create _ rectangle(x,y,x + size,y + size,宽度=0,填充=HEART_COLOR)

def draw(main: Tk,render_canvas: Canvas,render_heart: Heart,render_frame=0):

render_canvas.delete('all ')

render_heart.render(渲染画布,渲染帧)

main.after(160,draw,main,render_canvas,render_heart,render_frame + 1)

if __name__ == '__main__ ':

Root = Tk() # a Tk

canvas = Canvas(root,bg='black ',height=CANVAS_HEIGHT,width=CANVAS_WIDTH)

canvas.pack()

Heart = Heart() #心脏

画(根,画布,心)#开始画吧~

root.mainloop()

相关游戏攻略

相关游戏