"""一个简单的演示八大行星公转的动画,采用arcade街机游戏模块制作,安装Arcade请用pip install arcade --user。
A simple animation to simulate the rotation of eight planets is made by using Arcade module. To install Arcade, use PIP install arcade--user.
"""__author__ = "lixingqiu"
__date__ = "2019/3/8"import time
import math
import arcade
import randomSCREEN_WIDTH = 1350
SCREEN_HEIGHT = 780
SCREEN_TITLE = "eight planet 八大行星"class Planet(arcade.Sprite):def __init__(self,image,a,b,angle,speed):"""image:造型图片,a:Long axis长半轴,b:semi-minor axis短半轴,angle:初始角度"""super().__init__(image)self.center_x = SCREEN_WIDTH / 2self.center_y = SCREEN_HEIGHT / 2        self.direction = angle                  # 自定义direction,不用原有属性angle   self.a = aself.b = bself.speed = speed        def update(self):""" Calculating Initial Coordinates Based on Elliptic Parametric Equation"""self.direction = self.direction + 365 / self.speed self.direction = self.direction % 360        x = SCREEN_WIDTH / 2 + self.a * math.cos(math.radians(self.direction)) # 根据椭圆参数方程算起始坐标y = SCREEN_HEIGHT / 2 + self.b * math.sin(math.radians(self.direction))self.center_x = xself.center_y = ysuper().update()        class MyGame(arcade.Window):"""继承自窗口的MyGame类."""def __init__(self, width, height, title):super().__init__(width, height, title)arcade.set_background_color(arcade.color.WHITE)def setup(self):""" 这里是对游戏中的各个对象进行设置 """self.planet_list = arcade.SpriteList()                # 新建角色列表,以便统一渲染          # 背景角色生成pass# 太阳角色生成pass        # 行星角色生成passfor i in range(8):                                     # 生成8个行星angle = self.angle_list[i]a,b = self.ab_list[i]image = self.planets_image[i]speed = self.days[i]aplanet = Planet(image,a,b,angle,speed)          # 新建行星self.planet_list.append(aplanet)                 # 添加到所有行星列表              def update(self, x):"""每帧更新游戏内在逻辑"""        self.planet_list.update()       self.sun.update_animation()     def on_draw(self):"""渲染屏幕 """arcade.start_render()  # 开始画背景self.background.draw()self.sun.draw()self.planet_list.draw()        def main():""" Main method """window = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)window.setup()arcade.run()if __name__ == "__main__":main()

Python八大行星漂亮动画演示相关推荐

  1. 【py】Python八大行星漂亮动画演示

    Python八大行星漂亮动画演示 2019-05-22 07:32:03 李兴球 阅读数 771更多 分类专栏: arcade 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议, ...

  2. python演示动画_Python八大行星漂亮动画演示-Go语言中文社区

    """一个简单的演示八大行星公转的动画,采用arcade街机游戏模块制作,安装Arcade请用pip install arcade --user. A simple an ...

  3. 凸包计算几何matlab,计算几何-凸包算法 Python实现与Matlab动画演示

    凸包算法是计算几何中的最经典问题之一了.给定一个点集,计算其凸包.凸包是什么就不罗嗦了 本文给出了<计算几何--算法与应用>中一书所列凸包算法的Python实现和Matlab实现,并给出了 ...

  4. css3动画实现八大行星

    css3动画实现八大行星 话不多说 上代码 看效果 <!DOCTYPE html> <html lang="en"><head><meta ...

  5. Python 从零实现二分查找,大量动画演示

    二分查找(Binary Search),是一种效率较高的查找方法.在面试或算法竞赛中,查找相关的问题最优解通常就是二分查找.特别在现场面试中尤其重要,常用二分查找来考察面试者的编码能力和算法思维. 二 ...

  6. 排序算法 - 6种 - 超炫的动画演示 - Python实现

    1.冒泡排序 思路:遍历列表,每一轮每次比较相邻两项,将无序的两项交换,下一轮遍历比前一轮比较次数减1. def bubble_sort(a_list): for passnum in range(l ...

  7. QT实现太阳系系统八大行星

    QT实现太阳系系统八大行星 项目简介 项目技术 项目展示 主要源码片段解析 获取完整项目源码传送门 项目简介 演示结合了Qt 3D渲染和Qt Quick 2元素. Planets演示了如何实现将Qt ...

  8. android fragment中引入自定义view_厉害了,用Android自定义View实现八大行星绕太阳3D旋转效果...

    作者:史蒂芬诺夫斯基 链接:https://www.jianshu.com/p/2954f2ef8ea5 好久没写View了,最近恰巧遇到一个八大行星绕太阳旋转的假3D效果,写完之后感觉效果还不错.能 ...

  9. html+div+动画效果,html+css3太阳系行星运转动画效果的实现代码

    原标题:html+css3太阳系行星运转动画效果的实现代码 做一个太阳系八大行星的运转动画,不包括行星的卫星,所有行星围绕太阳公转,行星采用纯色,暂时没有自转. 效果静态图: 动画中包括:太阳及各行星 ...

最新文章

  1. mybatis的工作原理
  2. 深入浅出剖析 OpenCV 视觉处理
  3. isfile java_isfile 方法
  4. JBoss AS7 JNDI和EJB 3.1命名更改
  5. 基于实时计算Flink的机器学习算法平台及场景介绍
  6. crontab 示例_Crontab示例–每5分钟
  7. 【解决】Ubuntu安装NVIDIA驱动(咨询NVIDIA工程师的解决方案)
  8. HyperLPR车牌识别代码解读
  9. 【声音可视化】语音学软件:praat
  10. python怎么激活_Python窗口激活
  11. 从Garmin USB中读取GPS数据(串口实现)
  12. ddwrt php,DDWRT脱机下载+架设网站修正加强版tar.gz模式发布
  13. 各种滤镜算法C语言,Photoshop入门学习之PS 滤镜算法原理——染色玻璃
  14. WPF---RenderTransform图形旋转,缩放
  15. 以太坊接班人哪家强?——一张图看懂区块链
  16. kubectl常用命令 和 配置
  17. 知识图谱——领域知识问答系统简单介绍
  18. 基于Java(Jsp+servelet+Javabean)+MySQL实现图书管理系统【100010229】
  19. [Golang]Benchmark性能测试
  20. c++ opencv 图像处理:直方图处理(直方图均衡化,直方图匹配(规定化))

热门文章

  1. 「军民链智合创」科技美学出海 BitCEO比特维度全球CEO发展大会参展台北
  2. Burp Suite使用介绍(二)
  3. 哈工大2022年大作业——程序人生
  4. pytorch 层标准化 LayerNorm 的用法
  5. 造病毒攻陷三亿网民,中国黑客十八年做了些什么?
  6. 随心所“语”之 3B大战:robots协议问题
  7. 读书笔记:《The Personal MBA/在家就能读 MBA》
  8. Android 实现定时闹铃功能
  9. 深度剖析APP保活案例
  10. Squid TCP_MISS/000 的意义