教材的第六章主要讲了下如何加载图片以及缩放,旋转等基本操作。用一个环绕卫星demo作为例子。

因为没有找到素材,在实现的过程中飞船的环绕的中心点并不是画面中央,我觉得可能是素材的因素,如果有错误欢迎指出。

没有按照书上的方法写飞船旋转的代码,而是基础的数学知识,根据当前位于圆心可以计算的角度。草图如下,对很简单。。

实际进行编写的时候会根据你写的三角函数,位置会做一些调整,思路就是这样。

源代码:

# -*- coding: utf-8 -*-
"""
Created on Wed Jul  8 21:24:03 2015@author: liuchang
"""import random,math,pygame
from pygame.locals import *#定义 坐标类def wrap_angle(angle):return angle%360def print_text(font,x,y,text,color=(255,255,255)):imgText=font.render(text,True,color)screen.blit(imgText,(x,y))class Point(object):def __init__(self,x,y):self.__x = xself.__y = ydef getx(self):return self.__xdef setx(self,x):self.__x = xx = property(getx,setx)     def gety(self):return self.__ydef sety(self,y):self.__y = yy = property(gety,sety)def __str__(self):return "{X:"+"{:.0f}".format(self.x)+ \",Y:"+"{:.0f}".format(self.y)+"}"pygame.init()
screen = pygame.display.set_mode((1000,700))
pygame.display.set_caption("orbit demo")
font = pygame.font.Font(None,60)
space = pygame.image.load("backnew.jpg").convert()
planet = pygame.image.load("glazed.png").convert_alpha()
ship = pygame.image.load("ship.png").convert_alpha()
s_width,s_height = ship.get_size()
width,height = planet.get_size()
ship = pygame.transform.smoothscale(ship,(s_width//10,s_height//10))pos = Point(0,0)
old_pos = Point(0,0)
angle = 0.0
#angle = wrap_angle(angle -0.1)
radius = 250while True:for event in pygame.event.get():if event.type== QUIT:sys.exit()keys = pygame.key.get_pressed()if keys[K_ESCAPE]:sys.exit()#background        screen.blit(space,(0,0))#palnetscreen.blit(planet,(500-width/2,350-height/2))#shipangle = wrap_angle(angle +0.1)#转动pos.x = math.cos(math.radians(angle))*radiuspos.y = math.sin(math.radians(angle))*radiusr_angle = -angle+180r_ship = pygame.transform.rotate(ship,r_angle)screen.blit(r_ship,(720+pos.x-width/2,550+pos.y-height/2))#screen.blit(ship,(50,50))print_text(font,0,20,"rotation:"+"{:.2f}".format(angle))print_text(font,400,20,"rotation angle:"+"{:.2f}".format(r_angle))pygame.display.update()

截图:

前期做的这些小demo都不难,重点放在思路上以及实现的细节部分。希望后面难度加大以后也能够坚持下去。

python编程之 环绕卫星轨道相关推荐

  1. 卫星姿态的matlab编程,MATLABSTK构建卫星轨道姿态控制仿真演示系统.pdf

    MATLABkSTK构建卫星轨道姿态控制仿真演示系统 杜耀珂郑科宇 (上海航天控制[j翻研究所上海200233) 摘要:通过在MATLAB中建立卫星的轨道运动和姿态动力学仿真模型就可以分析在不同的控制 ...

  2. 马斯克如何颠覆航天? 1/5385成本,c++和python编程!

    马斯克如何颠覆航天? 1/5385成本,c++和python编程! 5月31日,经历了重重困难,马斯克的SpaceX载人飞船成功发射,这是美国自2011年以来首次发射载人航天飞船,也是美国进入由商业主 ...

  3. python编程入门 pdf-PYTHON游戏编程入门 PDF 下载

    相关截图: 图书简介: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,在游戏开发领域,Python也得到越来越广泛的应用,并由此受到重视. 本书教授用Python开发精彩游戏所需 ...

  4. python编程入门pdf-Python游戏编程入门 中文pdf扫描版[41MB]

    Python是一种解释型.面向对象.动态数据类型的程序设计语言,在游戏开发领域,Python也得到越来越广泛的应用,并由此受到重视. 本书教授用Python开发精彩游戏所需的[]为重要的该你那.本书不 ...

  5. python编程入门pdf-PYTHON游戏编程入门 PDF 下载

    相关截图: 图书简介: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,在游戏开发领域,Python也得到越来越广泛的应用,并由此受到重视. 本书教授用Python开发精彩游戏所需 ...

  6. 如何在树莓派上进行python编程_《树莓派Python编程指南》怎么样_目录_pdf在线阅读 - 课课家教育...

    计算机已经不再只是用来工作的方盒子.任何拥有一个可编程处理中心的东西都可以称作计算机.游戏终端.智能手机.全球卫星定位系统(GPS)单元.平板电脑以及其他许多令人难以置信的设备都说明了这一点.它们都是 ...

  7. python编程案例教程-quot;怎样编写一个教学案例quot;python编程案例教程电子教案...

    怎样编写一个教学案例 1.什么是教学案例 (案是论) 教育教学案例是含有解决某些疑难问题,某些原方法.策略运用的教育教学情境故事的描述,故事中渗透课程改革的思想和理念,展现在教育教学理论.方法指导下解 ...

  8. MATLAB STK构建卫星轨道姿态控制仿真演示系统

    MATLAB & STK构建卫星轨道姿态控制仿真演示系统 杜耀珂 郑科宇 摘要:通过在MATLAB中建立卫星的轨道运动和姿态动力学仿真模型就可以分析在不同的控制作用下,卫星的轨道和姿态的变化情 ...

  9. cesium学习 之 Entity 画卫星轨道 (一)

    cesium学习 之 Entity 画卫星轨道 (一) 最近公司想做个卫星轨迹展示大屏,原型图看上去确实比较逼真,然后我就惨了,开始学习cesium,满满的English文档,看着头大. B站上面有入 ...

最新文章

  1. 华为,再牵手一流大学
  2. Windows 安装 NoneBot2
  3. Tensorboard安装和访问(pytorch+MobaXterm)
  4. do-release-upgrade do not work
  5. 被遗忘和庸俗化的弗洛伊德:纪念弗洛伊德诞辰150周年(全文)
  6. 飞鸽传书绿色版 为什么比较多人用?
  7. cmake 构建路径_基于CMake构建系统的MLIR Example扩展
  8. SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
  9. 云计算平台是什么意思?可以划分为哪三类?
  10. “小而美”走到十字路口,吉利或收购魅族助车机闭环
  11. 【问】安装SQLserver2000 SP4补丁报错提示0*80070005.程序未能注册
  12. 验证方法学的历史及比较
  13. 干货|人脸识别技术基础知识,看这里
  14. 腾讯云学生服务器(官网校园计划)
  15. python实现匈牙利算法
  16. 简介 eclipse
  17. R语言VaR市场风险计算方法与回测、用LOGIT逻辑回归、PROBIT模型信用风险与分类模型...
  18. Depends: libcurl4 (= 7.58.0-2ubuntu3) but 7.58.0-2ubuntu3.13 is to be installed
  19. 怎么看xp系统的服务器名称,绿茶Ghostxp系统如何查看本机dns服务器地址[图文]
  20. win ollvm环境_域环境加权推送安装软件

热门文章

  1. BroadcastReceiver 广播使用总结
  2. HTML5--多媒体viedo和radio
  3. 发现了二分查找的秘密
  4. QPS、TPS、并发数、吞吐量概念
  5. 简单配置HAVOK环境
  6. Django中ORM中queryset方法详解
  7. android应用接入第三方推送实践
  8. 败给深蓝20年后,棋王卡斯帕罗夫说:智能机器不是人类的威胁
  9. snmp trap 如何在浏览器中_SNMP TRAP报文解析
  10. Aarch64安装使用psycopg2