怎么使用Python实现太阳系的运转
发表于:2024-10-09 作者:千家信息网编辑
千家信息网最后更新 2024年10月09日,本篇内容主要讲解"怎么使用Python实现太阳系的运转",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用Python实现太阳系的运转"吧!实现功能的实
千家信息网最后更新 2024年10月09日怎么使用Python实现太阳系的运转
本篇内容主要讲解"怎么使用Python实现太阳系的运转",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用Python实现太阳系的运转"吧!
实现
功能的实现,主要要到的还是 Python 的 pygame 库,我们先导入需要的所有 Python 库,代码如下所示:
import sysimport mathimport pygamefrom pygame.locals import *
接着定义一些常量(如:颜色、宽高等)及创建窗口,代码如下所示:
WHITE =(255, 255, 255)SILVER = (192, 192, 192)BLACK = (0, 0, 0)GREEN = (0, 255, 0)RED = (255, 0, 0)BLUE = (0, 0, 255)YELLOW = (255, 255, 0)SandyBrown = (244, 164, 96)PaleGodenrod = (238, 232, 170)PaleVioletRed = (219, 112, 147)Thistle = (216, 191, 216)size = width, height = 800, 600screen = pygame.display.set_mode(size)pygame.display.set_caption("太阳系")# 创建时钟(控制游戏循环频率)clock = pygame.time.Clock()# 定义三个空列表pos_v = pos_e = pos_mm = []# 地球、月球等行星转过的角度roll_v = roll_e = roll_m = 0roll_3 = roll_4 = roll_5 = roll_6 = roll_7 = roll_8 = 0# 太阳的位置(中心)position = size[0] // 2, size[1] // 2
我们先在窗口中画一个太阳,代码如下:
pygame.draw.circle(screen, YELLOW, position, 60, 0)
看一下效果:
接着画一个地球,让其绕着太阳旋转,代码如下:
# 画地球roll_e += 0.01 # 假设地球每帧公转 0.01 pipos_e_x = int(size[0] // 2 + size[1] // 6 * math.sin(roll_e))pos_e_y = int(size[1] // 2 + size[1] // 6 * math.cos(roll_e))pygame.draw.circle(screen, BLUE, (pos_e_x, pos_e_y), 15, 0)# 地球的轨迹线pos_e.append((pos_e_x, pos_e_y))if len(pos_e) > 255: pos_e.pop(0)for i in range(len(pos_e)): pygame.draw.circle(screen, SILVER, pos_e[i], 1, 0)
看一下效果:
我们再接着画月球,代码如下:
# 画月球roll_m += 0.1pos_m_x = int(pos_e_x + size[1] // 20 * math.sin(roll_m))pos_m_y = int(pos_e_y + size[1] // 20 * math.cos(roll_m))pygame.draw.circle(screen, SILVER, (pos_m_x, pos_m_y), 8, 0)# 月球的轨迹线pos_mm.append((pos_m_x, pos_m_y))if len(pos_mm) > 255: pos_mm.pop(0)for i in range(len(pos_mm)): pygame.draw.circle(screen, SILVER, pos_mm[i], 1, 0)
看一下效果:
其他几个星球的实现也类似,代码如下:
# 其他几个行星roll_3 += 0.03pos_3_x = int(size[0] // 2 + size[1] // 3.5 * math.sin(roll_3))pos_3_y = int(size[1] // 2 + size[1] // 3.5 * math.cos(roll_3))pygame.draw.circle(screen, GREEN, (pos_3_x, pos_3_y), 20, 0)roll_4 += 0.04pos_4_x = int(size[0] // 2 + size[1] // 4 * math.sin(roll_4))pos_4_y = int(size[1] // 2 + size[1] // 4 * math.cos(roll_4))pygame.draw.circle(screen, SandyBrown, (pos_4_x, pos_4_y), 20, 0)roll_5 += 0.05pos_5_x = int(size[0] // 2 + size[1] // 5 * math.sin(roll_5))pos_5_y = int(size[1] // 2 + size[1] // 5 * math.cos(roll_5))pygame.draw.circle(screen, PaleGodenrod, (pos_5_x, pos_5_y), 20, 0)roll_6 += 0.06pos_6_x = int(size[0] // 2 + size[1] // 2.5 * math.sin(roll_6))pos_6_y = int(size[1] // 2 + size[1] // 2.5 * math.cos(roll_6))pygame.draw.circle(screen, PaleVioletRed, (pos_6_x, pos_6_y), 20, 0)roll_7 += 0.07pos_7_x = int(size[0] // 2 + size[1] // 4.5 * math.sin(roll_7))pos_7_y = int(size[1] // 2 + size[1] // 4.5 * math.cos(roll_7))pygame.draw.circle(screen, Thistle, (pos_7_x, pos_7_y), 20, 0)roll_8 += 0.08pos_8_x = int(size[0] // 2 + size[1] // 5.5 * math.sin(roll_8))pos_8_y = int(size[1] // 2 + size[1] // 5.5 * math.cos(roll_8))pygame.draw.circle(screen, WHITE, (pos_8_x, pos_8_y), 20, 0)
最后,我们来看一下整体实现的动态效果:
到此,相信大家对"怎么使用Python实现太阳系的运转"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
太阳
代码
地球
太阳系
效果
月球
内容
行星
轨迹
学习
实用
更深
三个
位置
兴趣
功能
动态
实用性
实际
常量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
领事馆网络安全内容
sql命令创建数据库
拓达网络技术加好友
简洁设计软件开发
查找无法链接服务器咋回事
正规网络技术开发范围
腾亿互联网科技
机器人 知识数据库
东莞市吾居科技互联网有限公司
服务器 处理结果
刘倩南 网络安全
做网络安全的大厂
南京江苏服务器公司云主机
一张表只属于一个数据库
山东济南服务器总代理云主机
客户端访问服务器太慢
林奥勇担护网重任 共守网络安全
啥是云数据库
团委网络安全宣传周活动信息
2021年网民网络安全感
网络安全技术专业就业
软件开发但是处理速度变慢
网络安全局域网U盘
美团面试官问数据库问题
网络安全法第三十四原则
专门的文件存储服务器java
数据库去重复数据库
网络安全与防护文献
cs软件开发架构
服务器网页安全警告