063 Python必备库-从人机交互到艺术设计
目录
一、概述
- Python库之图形用户界面
- Python库之游戏开发
- Python库之虚拟现实
- Python库之图形艺术
二、Python库之图形用户界面
2.1 PyQt5
PyQt5: Qt开发框架的Python接口,https://www.riverbankcomputing.com/software/pyqt
- 提供了创建Qt5程序的Python API接口
- Qt是非常成熟的跨平台桌面应用开发系统,完备GUI
- 推荐的Python GUI开发第三方库
2.2 wxPython
wxPython: 跨平台GUI开发框架,https://www.wxpython.org
- 提供了专用于Python的跨平台GUI开发框架
- 理解数据类型与索引的关系,操作索引即操作数据
- Python最主要的数据分析功能库,基于Numpy开发
import wx
app = wx.App(False)
frame = wx.Frame(None, wx.ID_ANY, "Hello World") frame.Show(True)
app.MainLoop()
2.3 PyGObject
PyGObject: 使用GTK+开发GUI的功能库,https://pygobject.readthedocs.io
- 提供了整合GTK+、WebKitGTK+等库的功能
- GTK+:跨平台的一种用户图形界面GUI框架
- 实例:Anaconda采用该库构建GUI
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
window = Gtk.Window(title="Hello World")
window.show()
window.connect("destroy", Gtk.main_quit)
Gtk.main()
三、Python库之游戏开发
3.1 PyGame
PyGame: 简单的游戏开发功能库,http://www.pygame.org
- 提供了基于SDL的简单游戏开发功能及实现引擎
- 理解游戏对外部输入的响应机制及角色构建和交互机制
- Python游戏入门最主要的第三方库
3.2 Panda3D
Panda3D: 开源、跨平台的3D渲染和游戏开发库,http://www.panda3d.org
- 一个3D游戏引擎,提供Python和C++两种接口
- 支持很多先进特性:法线贴图、光泽贴图、卡通渲染等
- 由迪士尼和卡尼基梅隆大学共同开发
3.3 cocos2d
ocos2d: 构建2D游戏和图形界面交互式应用的框架,http://python.cocos2d.org/
- 提供了基于OpenGL的游戏开发图形渲染功能
- 支持GPU加速,采用树形结构分层管理游戏对象类型
- 适用于2D专业级游戏开发
四、Python库之虚拟现实
4.1 VR Zero
VR Zero: 在树莓派上开发VR应用的Python库,https://github.com/WayneKeenan/python-vrzero
- 提供大量与VR开发相关的功能
- 针对树莓派的VR开发库,支持设备小型化,配置简单化
- 非常适合初学者实践VR开发及应用
4.2 pyovr
pyovr: Oculus Rift的Python开发接口,https://github.com/cmbruns/pyovr
- 针对Oculus VR设备的Python开发库
- 基于成熟的VR设备,提供全套文档,工业级应用设备
- Python+虚拟现实领域探索的一种思路
4.3 Vizard
Vizard: 基于Python的通用VR开发引擎,http://www.worldviz.com/vizard-virtual-reality-software
- 专业的企业级虚拟现实开发引擎
- 提供详细的官方文档
- 支持多种主流的VR硬件设备,具有一定通用性
五、Python库之图形艺术
5.1 Quads
Quads: 迭代的艺术,https://github.com/fogleman/Quads
- 对图片进行四分迭代,形成像素风
- 可以生成动图或静图图像
- 简单易用,具有很高展示度
5.2 ascii_art
ascii_art: ASCII艺术库,https://github.com/jontonsoup4/ascii_ar
- 将普通图片转为ASCII艺术风格
- 输出可以是纯文本或彩色文本
- 可采用图片格式输出
5.3 turtle
turtle: 海龟绘图体系,https://docs.python.org/3/library/turtle.html
六、单元小结
6.1 从人机交互到艺术设计
- PyQt5、wxPython、PyGObject
- PyGame、Panda3D、cocos2d
- VR Zero、pyovr、Vizard
- Quads、ascii_art、turtle