重明鸟软件知识平台
@PyGame(12):旋转和缩放
PyGame里对可把Surface看做一张图片。对这张图片可以做很多种操作。今天我们来讲下对这张位图进行常用的旋转和缩放操作。 下面的代码将绘制一红一绿两个长方形。这两个长方形的原始位置一样。我们对红色长方形进行旋转和缩放操作。大家看下他们的变换规律。
旋转操作
import pygame
import pygame.locals
import sys

pygame.init()

canvas2d = pygame.display.set_mode((800,600))
pygame.display.set_caption('transfrom')

face01=pygame.Surface((300,300))
face01 = pygame.Surface.convert_alpha(face01)
face01.lock()
face01.fill((0,0,0,0))
pygame.draw.rect(face01,(0,255,0),(0,0,200,100),2)
face01.unlock()

face02=pygame.Surface((300,300))
face02 = pygame.Surface.convert_alpha(face02)
face02.lock()
face02.fill((0,0,0,0))
pygame.draw.rect(face02,(255,0,0),(0,0,200,100),2)
face02.unlock()

#旋转90度
face02 = pygame.transform.rotate(face02,90)


while True:
    canvas2d.fill((0,0,128))
    for event in pygame.event.get():
        if event.type== pygame.locals.QUIT:
            #退出pygame
            pygame.quit()
            #销毁程序
            sys.exit()
            
    #绘制矩阵
    canvas2d.blit(face01,(100,100))
    canvas2d.blit(face02,(100,100))

    #窗口显示内容更新
    pygame.display.update()
运行效果:

缩放操作
import pygame
import pygame.locals
import sys

pygame.init()

canvas2d = pygame.display.set_mode((800,600))
pygame.display.set_caption('transfrom')

face01=pygame.Surface((300,300))
face01 = pygame.Surface.convert_alpha(face01)
face01.lock()
face01.fill((0,0,0,0))
pygame.draw.rect(face01,(0,255,0),(0,0,200,100),2)
face01.unlock()

face02=pygame.Surface((300,300))
face02 = pygame.Surface.convert_alpha(face02)
face02.lock()
face02.fill((0,0,0,0))
pygame.draw.rect(face02,(255,0,0),(0,0,200,100),2)
face02.unlock()

#缩放大小
#把surface缩小一半
face02 = pygame.transform.scale(face02,(150,150))


while True:
    canvas2d.fill((0,0,128))
    for event in pygame.event.get():
        if event.type== pygame.locals.QUIT:
            #退出pygame
            pygame.quit()
            #销毁程序
            sys.exit()
            
    #绘制矩阵
    canvas2d.blit(face01,(100,100))
    canvas2d.blit(face02,(100,100))

    #窗口显示内容更新
    pygame.display.update()
运行效果:

Surface的操作还有很多。更多信息大家可上官网查找http://www.pygame.org/docs/
@站内查找
@栏目文章
【基础教程】Python守护进程创建
【基础教程】PyGame(13):三维环境设置
【基础教程】C/C++指针函数和回调函数
【基础教程】C/C++多进程编程(3)
【基础教程】C/C++多进程编程(2)
【基础教程】C/C++多进程编程(1)
【基础教程】C/C++多线程编程(2)
【基础教程】C/C++多线程编程(1)
【基础教程】C/C++动态库编程
【基础教程】C/C++静态库编程
【基础教程】photoshop图片混合公式
【基础教程】PyGame(12):旋转和缩放
【基础教程】PyGame(11):Surface操作
【基础教程】网络编程:Epoll(2)
【基础教程】网络编程:Epoll(1)
【基础教程】网络编程:IOCP(3)
【基础教程】网络编程:IOCP(2)
【基础教程】网络编程:IOCP(1)
【基础教程】网络编程:UDP
【基础教程】网络编程:TCP
【基础教程】Ubuntu安装Hadoop(4)
【基础教程】Ubuntu安装Hadoop(3)
【基础教程】Ubuntu安装Hadoop(2)
【基础教程】Ubuntu安装Hadoop(1)
【基础教程】Hadoop技术原理
【基础教程】Hadoop基本命令
【基础教程】Hadoop是什么东西
【基础教程】排序算法介绍
【基础教程】PyGame(10):声音控制
【基础教程】PyGame(9):鼠标事件(2)
【基础教程】PyGame(8):鼠标事件(1)
【基础教程】PyGame(7):键盘事件(2)
【基础教程】PyGame(6):键盘事件(1)
【基础教程】PyGame(5):显示图片
【基础教程】PyGame(4):显示文字
【基础教程】PyGame(3):图元绘制
【基础教程】PyGame(2):游戏框架
【基础教程】PyGame(1):开发环境搭建
【基础教程】Python(10):类定义
【基础教程】Python(9):自定义模块
【基础教程】Python(8):输入输出控制
【基础教程】Python(7):函数定义
【基础教程】Python(6):中断语句
【基础教程】Python(5):判断语句
【基础教程】Python(4):循环语句
【基础教程】Python(3):变量与运算符
【基础教程】Python(2):Hello
【基础教程】Python(1):介绍与安装
Copyright @ 2011-2018 by szc  桂ICP备11003301号-1  桂公网安备45040302000027号  Email:szcsoft@qq.com