Python3之从人机交互到艺术设计概览(图形用户界面、游戏开发、虚拟现实、图形艺术、附:玫瑰花的绘制)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34195441/article/details/88621282

1、图形用户界面

PyQt5:Qt开发框架的Python接口

-提供了创建Qt5程序的Python API接口,Qt是非常成熟的跨平台桌面应用开发系统,完备GUI

-推荐的Python GUI开发第三方库

-https://www.riverbankcomputing.com/software/pyqt

wxPython:跨平台GUI开发框架

-提供了专用于Python的跨平台GUI开发框架

-理解数据类型与索引的关系,操作索引即操作数据

-Python最主要的数据分析功能库,基于Numpy开发

-https://www.wxpython.org

import wx
app = wx.App(False)
frame = wx.Frame(None,wx.ID_ANY,"Hello World")
frame.Show(True)
app.MainLoop()

PyGObject:使用GTK+开发GUI的功能库

-提供了整合GTK+、WebKitGTK+等库的功能

-GTK+:跨平台的一种用户图形界面GUI框架

-实例:Anaconda采用该库构建GUI

-https://pygobject.readthedocs.io

import gi
gi.require_version("Gtk","3.0")
from gi.repository import Gtk
window = Gtk.window(title="Hello World")
window.show()
window.connect("destory",Gtk.main_quit)
Gtk.main()

2、Python库之游戏开发

PyGame:简单的游戏开发功能库

-提供了基于SDL的简单游戏开发功能及实现引擎,理解游戏对外部输入的响应机制及角色构建和交互机制

-Python游戏入门最主要的第三方库

-https://www.pygame.org

Panda3D:开源、跨平台的3D渲染和游戏开发库

-一个3D游戏引擎,提供Python和C++两种接口,支持很多先进特性:法线贴图、光泽贴图、卡通渲染等

-由迪士尼和卡尼基梅隆大学共同开发

-https://www.panda3d.org

cocos2d:构建2D游戏和图形界面交互式应用的框架

-提供了基于OpenGL的游戏开发图形渲染功能

-支持GPU加速,采用树形结构分层管理游戏对象类型

-适用于2D专业级游戏开发

-https://python.cocos2d.org/

3、Python库之虚拟现实

VR Zero:在树莓派上开发VR应用的Python库

-提供了大量与VR开发相关的功能,针对树莓派的VR开发库,支持设备小型化,配置简单化

-非常适合初学者实践VR开发及应用

-Raspberry Pi(中文名为”树莓派“,简写为RPi,(或者RasPi/RPI)是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux。随着Windows 10 IoT的发布,我们也将可以用上运行Windows的树莓派)

-https://github.com/WayneKeenan/python-vrzero

pyovr:Oculus Rift的Python开发接口,开发Oculus Rift的Python库

-针对Oculus VR设备的Python开发库

-基于成熟的VR设备,提供全套文档,工业级应用设备

-Python+虚拟现实领域探索的一种思路

-https://github.com/cmbruns/pyovr

Vizard:基于Python的通用VR开发引擎

-专业的企业级虚拟现实开发引擎,提供详细的官方文档

-支持多种主流的VR硬件设备,具有一定通用性

-https://www.worldviz.com/vizard-virtual-reality-software

4、Python库之图形艺术

Quads:迭代的艺术

-对图片进行四分迭代,形成像素风,可以生成动图或静图图像

-简单易用,具有很高展示度

-https://github.com/fogleman/Quads

ascii_art:ASCII艺术库

-将普通图片转为ASCII艺术风格,输出可以是纯文本或彩色文本

-可采用图片格式输出

-https://github.com/jontonsoup4/ascii_art

turtle:海龟绘图体系

-Random Art

-https://docs.python.org/3/library/turtle.html

玫瑰花的绘制

问题分析:绘图机理:turtle基本图形机制

import turtle as t

#定义一个曲线绘制函数
def DegreeCurve(n,r,d=1):
    for i in range(n):
        t.left(d)
        t.circle(r,abs(d))

#初始位置设定
s = 0.2 #size
t.setup(450*5*s,750*5*s)
t.pencolor("black")
t.fillcolor("red")
t.speed(100)
t.penup()
t.goto(0,900*s)
t.pendown()

#绘制花朵形状
t.begin_fill()
t.circle(200*s,30)
DegreeCurve(60,50*s)
t.circle(200*s,30)
DegreeCurve(4,100*s)
t.circle(200*s,50)
DegreeCurve(50,50*s)
t.circle(350*s,65)
DegreeCurve(40,70*s)
t.circle(150*s,50)
DegreeCurve(20,50*s,-1)
t.circle(400*s,60)
DegreeCurve(18,50*s)
t.fd(250*s)
t.right(150)
t.circle(-500*s,12)
t.left(140)
t.circle(550*s,110)
t.left(27)
t.circle(650*s,100)
t.left(130)
t.circle(-300*s,20)
t.right(123)
t.circle(220*s,57)
t.end_fill()

#绘制花枝形状
t.left(120)
t.fd(280*s)
t.left(115)
t.circle(300*s,33)
t.left(180)
t.circle(-300*s,33)
DegreeCurve(70,225*s,-1)
t.circle(350*s,104)
t.left(90)
t.circle(200*s,105)
t.circle(-500*s,63)
t.penup()
t.goto(170*s,-30*s)
t.pendown()
t.left(160)
DegreeCurve(20,2500*s)
DegreeCurve(220,250*s,-1)

#绘制一个绿色叶子
t.fillcolor('green')
t.penup()
t.goto(670*s,-180*s)
t.pendown()
t.right(140)
t.begin_fill()
t.circle(300*s,120)
t.left(60)
t.circle(300*s,120)
t.end_fill()
t.penup()
t.goto(180*s,-550*s)
t.pendown()
t.right(85)
t.circle(600*s,40)

#绘制另一个绿色叶子
t.penup()
t.goto(-150*s,-1000*s)
t.pendown()
t.begin_fill()
t.rt(120)
t.circle(300*s,115)
t.left(75)
t.circle(300*s,100)
t.end_fill()
t.penup()
t.goto(430*s,-1070*s)
t.pendown()
t.right(30)
t.circle(-600*s,35)
t.done()

运行结果:

猜你喜欢

转载自blog.csdn.net/qq_34195441/article/details/88621282