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

说服企业做网站天天外链

说服企业做网站,天天外链,wordpress教程网视频,静安微信手机网站制作系列文章 序号直达链接Tkinter1Python李峋同款可写字版跳动的爱心2Python跳动的双爱心3Python蓝色跳动的爱心4Python动漫烟花5Python粒子烟花Turtle1Python满屏飘字2Python蓝色流星雨3Python金色流星雨4Python漂浮爱心5Python爱心光波①6Python爱心光波②7Python满天繁星8Pytho…

3D星空

系列文章

序号直达链接
Tkinter
1Python李峋同款可写字版跳动的爱心
2Python跳动的双爱心
3Python蓝色跳动的爱心
4Python动漫烟花
5Python粒子烟花
Turtle
1Python满屏飘字
2Python蓝色流星雨
3Python金色流星雨
4Python漂浮爱心
5Python爱心光波①
6Python爱心光波②
7Python满天繁星
8Python五彩气球
9Python白色飘雪
10Python七彩花朵
11Python 3D星空
12Python大雪纷飞
13Python一闪一闪亮星星
14Python爱心泡泡
15Python爱心射线
16Python圣诞礼物
17Python礼物圣诞树
18Python浪漫星空
19Python飞舞蝙蝠
20Python万圣礼物
21Python蓝色飘雪
Pygame
1Python跨年烟花
2Python炫酷烟花
3Python黑客帝国字母雨
敬请期待……

写在前面

Python模拟3D星空动画的完整代码。

技术需求

  1. Python turtle

    • turtle库用于在屏幕上绘制图形和实现动画。通过Turtle对象,可以控制绘制的形状、位置、颜色等属性,并进行动态更新。
    • turtle库的主要功能包括创建图形、设置画笔颜色、填充颜色、控制对象的速度和位置,以及隐藏和显示图形等。
  2. Python random

    • random库用于生成随机数。在这段代码中,它被用来随机生成星星的位置、大小和移动速度,增加了动画的多样性和不可预测性。
    • 例如,使用ra.uniform(0, 1)生成一个0到1之间的浮动数,来控制星星的大小;使用ra.randint()来生成随机的整数,以确定星星的初始位置和速度。
  3. Turtle 对象的克隆

    • 通过turtle.clone()方法,克隆一个turtle对象,使每颗星星都拥有独立的属性(如位置、速度和大小)。每颗星星都是turtle对象的一个副本,因此它们可以独立地移动和变化。
  4. 循环控制

    • 使用while True:无限循环和for循环来不断更新每颗星星的位置,使动画持续运行。
    • 通过不断更新星星的位置来创建动态效果,并且当星星移出屏幕时,通过隐藏、重新设置位置并显示来实现星星的“循环出现”效果。
  5. 事件驱动模型

    • tu.mainloop()启动了事件循环,保持图形窗口的持续显示和交互。这是turtle库和其他图形库常用的机制,用来让程序持续运行,直到用户关闭窗口。

完整代码

import turtle as tu
import random as ra
width, height = 800, 600
tu.setup(width, height)
tu.title("3D星空")
tu.bgcolor("black")
tu.delay(0)
t=tu.Turtle(visible=False,shape='circle')
t.pencolor("white")
t.fillcolor("white")
t.penup()
stars = []
……

代码分析

这段代码使用Python的turtle库创建了一个简单的3D星空动画效果,模拟了在黑暗背景上移动的星星。星星会随机生成,并且向左移动,当其移出屏幕时会重新出现在屏幕的右侧,从而形成一个连续的动态效果。代码的主要流程包括窗口设置、星星生成、星星移动和循环刷新。接下来,我将详细分析每个部分的功能及实现。

1. 导入库

import turtle as tu
import random as ra

这行代码导入了turtlerandom模块,分别用于绘制图形和生成随机数。turtle库是Python自带的一个图形绘制库,常用于绘制各种图形和动画。random库则用于生成随机数,这在本代码中用于随机生成星星的位置、大小和移动速度。

2. 设置窗口尺寸和背景

width, height = 800, 600
tu.setup(width, height)
tu.title("3D星空")
tu.bgcolor("black")
tu.delay(0)
  • width, height = 800, 600:定义了绘图窗口的宽度和高度为800x600像素。
  • tu.setup(width, height):设置绘图窗口的尺寸,宽度为800像素,高度为600像素。
  • tu.title("3D星空"):设置窗口的标题为"3D星空"。
  • tu.bgcolor("black"):设置窗口的背景色为黑色,这为星空提供了背景。
  • tu.delay(0):设置绘制的延迟为0,即关闭动画延迟,让图形的绘制过程尽量流畅。

3. 创建turtle对象

t = tu.Turtle(visible=False, shape='circle')
t.pencolor("white")
t.fillcolor("white")
t.penup()

这段代码创建了一个turtle对象t,用于绘制星星。具体细节如下:

  • tu.Turtle(visible=False, shape='circle'):创建一个形状为圆形、初始状态不可见的turtle对象。星星将由这个turtle对象的克隆来表示。
  • t.pencolor("white"):设置画笔颜色为白色,因为星星在黑色背景上应该是白色的。
  • t.fillcolor("white"):设置填充颜色为白色,虽然在这段代码中没有使用填充,但它定义了默认的颜色。
  • t.penup():提升画笔,防止在移动过程中留下痕迹。

4. 创建星星

这部分代码用于生成99颗星星,每颗星星通过克隆t对象来创建。分析如下:

  • stars = []:创建一个空的列表stars,用于存储所有的星星对象。
  • for i in range(99)::循环99次,生成99颗星星。
  • star = t.clone():通过clone()方法克隆一个turtle对象,每颗星星都将是t对象的一个独立副本。每颗星星都是一个turtle对象,因此可以独立移动。
  • s = ra.uniform(0, 1) / 3:生成一个0到1之间的随机数,并除以3,得到一个较小的值,作为星星的大小比例。shapesize(s, s)将星星的大小设置为这个比例,使星星看起来具有不同的尺寸。
  • star.shapesize(s, s):设置星星的形状大小,使得每颗星星的尺寸不同。
  • star.speed(ra.randint(2, 5)):设置星星的移动速度为一个2到5之间的随机整数。turtle的速度决定了星星的移动速度,数字越小,星星越快。
  • star.setx(ra.randint(width//2, width)):将星星的x坐标设置为从屏幕右侧开始的随机位置。ra.randint(width//2, width)生成一个位于屏幕右半部分的随机x坐标。
  • star.sety(ra.randint(-height//2, height//2)):将星星的y坐标设置为一个在屏幕上下方向上的随机位置。ra.randint(-height//2, height//2)生成一个在窗口上下范围内的随机y坐标。
  • star.showturtle():显示克隆出来的星星,初始时它是不可见的。
  • stars.append(star):将新创建的星星添加到stars列表中,方便后续进行移动操作。

5. 星星的运动与循环

这部分代码实现了星星的不断移动,并且当星星移出屏幕时,它会重新出现在屏幕右侧。具体实现细节如下:

  • while True::使用无限循环,使得星星的运动不断进行。
  • for star in stars::遍历stars列表中的所有星星对象,每次循环处理一颗星星的移动。
  • star.setx(star.xcor() - star.speed()):通过xcor()获取星星的当前x坐标,然后减去星星的速度,从而使星星向左移动。每颗星星的速度是随机的,因此它们的移动速度不同。
  • if star.xcor() < -width//2::判断星星的x坐标是否小于窗口左侧的边界。如果是,说明星星已经离开屏幕的左侧。
  • star.hideturtle():将星星隐藏,因为它需要重新生成位置。
  • star.setx(ra.randint(width//2, width)):将星星的x坐标重置为屏幕右侧的随机位置,即让星星从右侧重新出现。
  • star.sety(ra.randint(-height//2, height//2)):将星星的y坐标重置为一个新的随机值,使得星星的纵向位置也发生变化。
  • star.showturtle():重新显示星星,使它再次出现在屏幕上。

6. 主循环

tu.mainloop()启动turtle的主事件循环,保持图形窗口的持续显示。所有的图形绘制和动画效果都会在这个循环中持续进行。

7. 总结

通过这段代码,作者创建了一个简单而有趣的星空动画效果。每颗星星具有不同的大小、速度和初始位置,并且随着时间的推移,它们会不断地从右侧进入、向左移动并离开屏幕,形成了一个动态的星空效果。通过使用turtle库的克隆功能,代码实现了星星的生成和移动,使得每颗星星都是独立的个体,可以自由地在屏幕上移动。整体代码结构简单清晰,使用了random模块来增加随机性,使得每次运行时,星空的效果都不同,增强了互动性和趣味性。

写在后面

我是一只有趣的兔子,感谢你的喜欢!

http://www.dtcms.com/wzjs/305134.html

相关文章:

  • 跨境商城网站制作百度热线电话
  • 域名备案和网站备案的区别宁波seo公司排名榜
  • 做网站的软件下载关键字搜索
  • 网站流量真难做百度地图下载2022新版安装
  • 企业网站前期建设方案案例关键词快速上首页排名
  • dedecms手机网站操作优化大师软件大全
  • 专门做ppt会员网站网站seo服务
  • 临沂集团网站建设西安网络公司
  • 广东建网站国外免费ip地址
  • 投票网站制作免费安徽关键词seo
  • 网站建设ydwzjs软文营销的特点有哪些
  • 第三方做的网站不给源代码推广平台有哪些?
  • 无锡网站建设有限公司最近几天的新闻大事
  • 西安官网seo诊断厦门seo代运营
  • 做不锈钢门的网站net的网站建设
  • 西安网站开发公司自助建站免费建站平台
  • wordpress dux主题破解安装班级优化大师的功能
  • 2017网站开发前景百度搜索关键词技巧
  • 网站制作 郑州ip子域名大全
  • 做优秀企业网站做百度线上推广
  • 做网站一屏一屏的黄冈便宜的网站推广怎么做
  • 广州做网站优化公司报价免费自媒体网站
  • 金华网站制作建设关键词百度网盘
  • 安阳网站建设游戏搬砖工作室加盟平台
  • 学校联网网站建设什么平台可以免费推广产品
  • 公司网站一定要域名吗百度推广信息流有用吗
  • 广告创意设计海报关键词优化包含
  • 什么网站收录排名最高百度seo排名软件
  • 期末作业做网站的心得体会网站seo关键词优化技巧
  • 微信开放平台怎么申请seo关键词优化推荐