用Python简单实现模拟太阳系运转

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取

Python免费学习资料、代码以及交流解答点击即可加入


1. 代码实现

需要安装依赖包:pygame

篇幅原因,这里仅展示部分代码。

while True:    for event in pygame.event.get():        if event.type == QUIT:            sys.exit()            # 背景颜色为黑色    screen.fill(BLACK)    # 画太阳    pygame.draw.circle(screen, YELLOW, position, 60, 0)    # 画地球    roll_e += 0.01  # 假设地球每帧公转 0.01 pi    pos_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.1    pos_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, WHITE, (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_v += 0.015    pos_v_x = int(size[0] // 2 + size[1] // 3 * math.sin(roll_v))    pos_v_y = int(size[1] // 2 + size[1] // 3 * math.cos(roll_v))    pygame.draw.circle(screen, RED, (pos_v_x, pos_v_y), 20, 0)    # 金星的轨迹线    pos_v.append((pos_v_x, pos_v_y))    if len(pos_v) > 255:        pos_v.pop(0)    for i in range(len(pos_v)):        pygame.draw.circle(screen, SILVER, pos_v[i], 1, 0)    # 刷新    pygame.display.flip()    # 数值越大刷新越快,小球运动越快    clock.tick(40)

2. 效果图

看着这公转的太阳,是不是很炫酷。

总结

关注公众号回复【210305】领取源码

(0)

相关推荐

  • 用python做炒股软件

    股票详细数据 怎么获得股市数据针对股票等金融数据的获取,python提供了一个非常实用的模块-tushare,自动完成了数据从采集.清洗到存储的全过程,可以极大减轻金融分析人员的工作量,下面我简单介绍 ...

  • pylint-可以完全自定义的源代码分析器

    Pylint是一个Python静态代码分析工具,它可以查找编程错误,帮助实施编码标准,嗅探代码气味并提供简单的重构建议. 它是高度可配置的,具有特殊的编译指示,可以从您的代码以及广泛的配置文件中控制其 ...

  • python语法第二课《程序中的注释》

    https://m.toutiao.com/is/J7gGBCJ/ 看完美女后学习! 刚开始学程序时,就要有一个良好的编程习惯~写注释!写注释!写注释! 注释就是一种说明,用一种直白的方法告诉其他人你 ...

  • python代码打包成exe

    python代码打包成exe

  • 学习《Python编程从入门到实践第2版》笔记和代码

    入驻360个人图书馆,认真学习<Python编程从入门到实践第2版>,整理学习笔记和代码. 一步一步学好编程,相信自己,加油! 整理系列同步: https://www.yuque.com/ ...

  • 用 Python 动态模拟太阳系运转

    来源:Python 技术「ID: pythonall」 提到太阳系,大家可能会想到哥白尼和他的日心说,或是捍卫.发展日心说的斗士布鲁诺,他们像一缕光一样照亮了那个时代的夜空,对历史感兴趣的小伙伴可以深 ...

  • Python简单通俗易懂的贪吃蛇小游戏,儿时童年的味道!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 今天,给大家介绍一个简单易懂的贪吃蛇小游戏 代码 如下 import pygame,sys, ...

  • 「数据分析」 使用Python简单玩玩RFM用户价值模型

    大家好,我是Python小叮当. 最近有朋友在问怎么做用户分群,刚好看到有个RFM客户价值模型,就移过来用python简单演示一下,感觉还是有一定的作用的. > RFM模型是衡量客户价值和客户创 ...

  • appium+python自动化37-adb模拟点击事件(input tap)

    前言 input事件 1.先查看input事件语法有哪些,首先确保手机连上电脑(我这里是电脑上打开的手机模拟器) > adb device > adb shell > inputC: ...

  • 使用纯 Python 代码来模拟实现 Python 字典

    在前面几篇文章中,我们一起了解了 Python 字典的概念.用法和实现原理. 今天,我们试着用 Python 代码来实现一个具有全功能的字典类,从而加强理解. [基本思路] 首先,我们要确认字典应具备 ...

  • 比Excel高效,比python简单,这是我见过最好用的数据分析工具!

    前两天有个亲戚家孩子(算是我的远房表妹吧),找我聊工作方面的问题,她本科学的金融,毕业却去了一家地产公司做HR,干的不好最近想跳槽,想转行干运营或者重拾起老本行干财务,看了一圈网上的招聘信息,发现都要 ...

  • 模拟太阳系8大行星运行图:matplotlib实现

    模拟太阳系8大行星运行图:matplotlib实现

  • python简单爬取王者荣耀全英雄皮肤图片

    昨天在某公众号看见一篇关于用python爬王者荣耀中所有英雄的皮肤的文章, https://mp.weixin.qq.com/s/UgF5FYJ5dX1aNw6K0E_Jjw 感觉挺有趣的,下载来当壁 ...

  • python|简单实现英文单词大小写转化

    问题描述日常生活中会遇到一些英文名字字母大小写不当的情况,如"yAmi"中的首字母就应该大写,其中的"A"就要小写.对大小写不当的单词做出调整,写成正确的名字. ...