当前位置: 首页 > news >正文

长沙理财网站建设上海申远建筑设计有限公司

长沙理财网站建设,上海申远建筑设计有限公司,网页的基本布局,个人怎么做网站推广作者简介#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭#xff1a;低头赶路#xff0c;敬事如仪 个人主页#xff1a;网络豆的主页​​​​​​ 目录 前言 一.所用库 1.random简介 2.math 简介 3.tkinter库的简介 二.实际图 三.… 作者简介一名在校计算机学生、每天分享Python的学习经验、和学习笔记。   座右铭低头赶路敬事如仪 个人主页网络豆的主页​​​​​​ 目录 前言 一.所用库 1.random简介 2.math 简介 3.tkinter库的简介 二.实际图 三.代码部分 1.调用库 2.调整画布 3.爱心生成 4.随机内部扩散 5.抖动 6.自定义曲线函数调整跳动周期 7.爱心类 8.classmethod 装饰的类方法 四.全部源代码 前言 本章将会使用Python实现动态的爱心效果 一.所用库 1.random简介 random库是用于产生并运用随机数的标准库。Python中的主要使用是让其掌握在程序中运用随机数的能力。 random常见随机函数有9个:seed()、random()、randint()、getrandbits()、randrange()uniform()、choice()、shuffle()、sample(). 2.math 简介 math 库是 Python 提供的内置数学类函数库因为复数类型常用于科学计算一般计算并不常用因此 math 库不支持复数类型仅支持整数和浮点数运算。math 库一共提供了 4 个数学常数和 44 个函数。44 个函数分为 4 类包括 16 个数值表示函数、8 个幂对数函数、16 个三角对数函数和 4 个高等特殊函数。 3.tkinter库的简介 Tkinter 是 Python 自带的图形界面库库中包含众多图形界面控件包括 Lable 标签、Button按钮、Radiobutton单选框、Checkbutton复选框、Entry文本框等。借助 Tkinter 库中的各种图形界面控件我们就可以设计出实用的图形界面程序。 二.实际图 三.代码部分 1.调用库 import random from math import sin, cos, pi, log from tkinter import * 2.调整画布 CANVAS_WIDTH 640#画布的宽 CANVAS_HEIGHT 480#画布的宽 CANVAS_CENTER_X CANVAS_WIDTH / 2 CANVAS_CENTER_Y CANVAS_HEIGHT / 2 IMAGE_ENLARGE 11 HEART_COLOR #FFC0CB #ff2121 #引号内修改颜色 3.爱心生成 def heart_function(t, shrink_ratio: float IMAGE_ENLARGE):x 16 * (sin(t) ** 3)y -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))x * shrink_ratioy * shrink_ratiox CANVAS_CENTER_Xy CANVAS_CENTER_Yreturn int(x), int(y)4.随机内部扩散 def scatter_inside(x, y, beta0.15):ratio_x - beta * log(random.random())ratio_y - beta * log(random.random())dx ratio_x * (x - CANVAS_CENTER_X)dy ratio_y * (y - CANVAS_CENTER_Y)return x - dx, y - dy 5.抖动 def shrink(x, y, ratio):force -1 / (((x - CANVAS_CENTER_X) ** 2 (y - CANVAS_CENTER_Y) ** 2) ** 0.6) # 这个参数...dx ratio * force * (x - CANVAS_CENTER_X)dy ratio * force * (y - CANVAS_CENTER_Y)return x - dx, y - dy 6.自定义曲线函数调整跳动周期 def curve(p):return 2 * (2 * sin(4 * p)) / (2 * pi) 7.爱心类 class Heart:def __init__(self, generate_frame20):self._points set() # 原始爱心坐标集合self._edge_diffusion_points set() # 边缘扩散效果点坐标集合self._center_diffusion_points set() # 中心扩散效果点坐标集合self.all_points {} # 每帧动态点坐标self.build(2000)self.random_halo 1000self.generate_frame generate_framefor frame in range(generate_frame):self.calc(frame)def build(self, number):for _ in range(number):t random.uniform(0, 2 * pi)x, y heart_function(t)self._points.add((x, y))for _x, _y in list(self._points):for _ in range(3):x, y scatter_inside(_x, _y, 0.05)self._edge_diffusion_points.add((x, y))point_list list(self._points)for _ in range(4000):x, y random.choice(point_list)x, y scatter_inside(x, y, 0.17)self._center_diffusion_points.add((x, y))8.classmethod 装饰的类方法 staticmethoddef calc_position(x, y, ratio):force 1 / (((x - CANVAS_CENTER_X) ** 2 (y - CANVAS_CENTER_Y) ** 2) ** 0.520) # 魔法参数dx ratio * force * (x - CANVAS_CENTER_X) random.randint(-1, 1)dy ratio * force * (y - CANVAS_CENTER_Y) random.randint(-1, 1)return x - dx, y - dydef calc(self, generate_frame):ratio 10 * curve(generate_frame / 10 * pi) # 圆滑的周期的缩放比例halo_radius int(4 6 * (1 curve(generate_frame / 10 * pi)))halo_number int(3000 4000 * abs(curve(generate_frame / 10 * pi) ** 2))all_points []heart_halo_point set()for _ in range(halo_number):t random.uniform(0, 2 * pi)x, y heart_function(t, shrink_ratio11.6)x, y shrink(x, y, halo_radius)if (x, y) not in heart_halo_point: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))for x, y in self._points:x, y self.calc_position(x, y, ratio)size random.randint(1, 3)all_points.append((x, y, size))for x, y in self._edge_diffusion_points:x, y self.calc_position(x, y, ratio)size random.randint(1, 2)all_points.append((x, y, size))for x, y in self._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[generate_frame] all_pointsdef render(self, render_canvas, render_frame):for x, y, size in self.all_points[render_frame % self.generate_frame]:render_canvas.create_rectangle(x, y, x size, y size, width0, fillHEART_COLOR)def draw(main: Tk, render_canvas: Canvas, render_heart: Heart, render_frame0):render_canvas.delete(all)render_heart.render(render_canvas, render_frame)main.after(160, draw, main, render_canvas, render_heart, render_frame 1)if __name__ __main__:root Tk() # 一个Tkcanvas Canvas(root, bgblack, heightCANVAS_HEIGHT, widthCANVAS_WIDTH)canvas.pack()heart Heart()draw(root, canvas, heart)root.mainloop()四.全部源代码 import random from math import sin, cos, pi, log from tkinter import *CANVAS_WIDTH 640 CANVAS_HEIGHT 480 CANVAS_CENTER_X CANVAS_WIDTH / 2 CANVAS_CENTER_Y CANVAS_HEIGHT / 2 IMAGE_ENLARGE 11 HEART_COLOR #FFC0CB #ff2121def heart_function(t, shrink_ratio: float IMAGE_ENLARGE):x 16 * (sin(t) ** 3)y -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))x * shrink_ratioy * shrink_ratiox CANVAS_CENTER_Xy CANVAS_CENTER_Yreturn int(x), int(y)def scatter_inside(x, y, beta0.15):ratio_x - beta * log(random.random())ratio_y - beta * log(random.random())dx ratio_x * (x - CANVAS_CENTER_X)dy ratio_y * (y - CANVAS_CENTER_Y)return x - dx, y - dydef shrink(x, y, ratio):force -1 / (((x - CANVAS_CENTER_X) ** 2 (y - CANVAS_CENTER_Y) ** 2) ** 0.6) # 这个参数...dx ratio * force * (x - CANVAS_CENTER_X)dy ratio * force * (y - CANVAS_CENTER_Y)return x - dx, y - dydef curve(p):return 2 * (2 * sin(4 * p)) / (2 * pi)class Heart:def __init__(self, generate_frame20):self._points set() # 原始爱心坐标集合self._edge_diffusion_points set() # 边缘扩散效果点坐标集合self._center_diffusion_points set() # 中心扩散效果点坐标集合self.all_points {} # 每帧动态点坐标self.build(2000)self.random_halo 1000self.generate_frame generate_framefor frame in range(generate_frame):self.calc(frame)def build(self, number):for _ in range(number):t random.uniform(0, 2 * pi)x, y heart_function(t)self._points.add((x, y))for _x, _y in list(self._points):for _ in range(3):x, y scatter_inside(_x, _y, 0.05)self._edge_diffusion_points.add((x, y))point_list list(self._points)for _ in range(4000):x, y random.choice(point_list)x, y scatter_inside(x, y, 0.17)self._center_diffusion_points.add((x, y))staticmethoddef calc_position(x, y, ratio):force 1 / (((x - CANVAS_CENTER_X) ** 2 (y - CANVAS_CENTER_Y) ** 2) ** 0.520) # 魔法参数dx ratio * force * (x - CANVAS_CENTER_X) random.randint(-1, 1)dy ratio * force * (y - CANVAS_CENTER_Y) random.randint(-1, 1)return x - dx, y - dydef calc(self, generate_frame):ratio 10 * curve(generate_frame / 10 * pi) # 圆滑的周期的缩放比例halo_radius int(4 6 * (1 curve(generate_frame / 10 * pi)))halo_number int(3000 4000 * abs(curve(generate_frame / 10 * pi) ** 2))all_points []heart_halo_point set()for _ in range(halo_number):t random.uniform(0, 2 * pi)x, y heart_function(t, shrink_ratio11.6)x, y shrink(x, y, halo_radius)if (x, y) not in heart_halo_point: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))for x, y in self._points:x, y self.calc_position(x, y, ratio)size random.randint(1, 3)all_points.append((x, y, size))for x, y in self._edge_diffusion_points:x, y self.calc_position(x, y, ratio)size random.randint(1, 2)all_points.append((x, y, size))for x, y in self._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[generate_frame] all_pointsdef render(self, render_canvas, render_frame):for x, y, size in self.all_points[render_frame % self.generate_frame]:render_canvas.create_rectangle(x, y, x size, y size, width0, fillHEART_COLOR)def draw(main: Tk, render_canvas: Canvas, render_heart: Heart, render_frame0):render_canvas.delete(all)render_heart.render(render_canvas, render_frame)main.after(160, draw, main, render_canvas, render_heart, render_frame 1)if __name__ __main__:root Tk() # 一个Tkcanvas Canvas(root, bgblack, heightCANVAS_HEIGHT, widthCANVAS_WIDTH)canvas.pack()heart Heart()draw(root, canvas, heart)root.mainloop()创作不易求关注点赞收藏谢谢~
http://www.hkea.cn/news/14588612/

相关文章:

  • 重庆建企业网站网站建设 swot分析
  • 济南哪里有建网站电商平台链接怎么弄
  • 南京小程序建设公司英文网站建设优化
  • 网站怎么做实名认证吗河北省住房与城乡建设厅网站
  • 盐城网站开发公司电话如何用手机创建网站
  • 房地产微网站怎么申请 免费网站
  • 上海设计网站设计简述网站建设的作用
  • 网站建设公司兴田德润专业女性做网站很有名的
  • 测速网站怎么做推广网站怎么做能增加咨询
  • seo网站推广多少钱用模块做网站
  • soho个人可以建网站吗企业不建立网站吗
  • 哪些网站可以免费做推广图片发到哪些网站 seo
  • 上海做企业网站的公司ps做图 游戏下载网站有哪些
  • 猎头公司网站素材北京网站备案的地址
  • 济南专业网站制作网站开发流程三部分
  • 泉州网站制作定制免费手机app制作软件
  • 男女做那个的小视频网站湖州房产网
  • 国内做网站哪家好yellow高清免费观看在线
  • 对外宣传网站建设方案云速建站可以建个人网站吗
  • 广州制作网站哪家专业桐庐网站制作
  • 网站租用二维码页面设计模板
  • 长春建站免费模板有没有资源可以在线观看
  • 关于我们做网站品牌商标
  • 长春建筑网站建设工程类型分为几类
  • 平顶山建设银行网站如何查到网站建设
  • jsp和.net做网站的区别wordpress时间插件下载地址
  • 厦门营销型网站建设手机管理wordpress站
  • 阜阳网站设计互联网加项目策划书
  • 企业网站建设存在的不足与困难怎样找回网站域名密码
  • 什么浏览器好用可以看任何网站wordpress v4