最近很火一些简单图形构成的小游戏,这里介绍一些绘制图形的函数。

1.绘制矩形

rect(Surface,color,Rect,width=0)

第一个参数指定矩形绘制到哪个Surface对象上

第二个参数指定颜色

第三个参数指定矩形的范围(left,top,width,height)

第四个参数指定矩形边框的大小(0表示填充矩形)

例如绘制三个矩形:

    pygame.draw.rect(screen, BLACK, (50, 50, 150, 50), 0)
pygame.draw.rect(screen, BLACK, (250, 50, 150, 50), 1)
pygame.draw.rect(screen, BLACK, (450, 50, 150, 50), 10)

2.绘制多边形

 polygon(Surface,color,pointlist,width=0)

polygon()方法和rect()方法类似,除了第三参数不同,polygon()方法的第三个参数接受的是多边形各个顶点坐标组成的列表。

例如绘制一个多边形的鱼

points = [(200, 75), (300, 25), (400, 75), (450, 25), (450, 125), (400, 75), (300, 125)]
pygame.draw.polygon(screen, GREEN, points, 0)

3.绘制圆形

circle(Surface,color,pos,radius,width=0)

其中第一、二、五个参数根前面的两个方法是一样的,第三参数指定圆形位置,第四个参数指定半径的大小。

例如绘制一个同心圆:

    pygame.draw.circle(screen, RED, position, 25, 1)
pygame.draw.circle(screen, GREEN, position, 75, 1)
pygame.draw.circle(screen, BLUE, position, 125, 1)

4.绘制椭圆形

ellipse(Surface,color,Rect,width=0)

椭圆利用第三个参数指定的矩形来绘制,其实就是将所需的椭圆限定在设定好的矩形中。

    pygame.draw.ellipse(screen, BLACK, (100, 100, 440, 100), 1)
pygame.draw.ellipse(screen, BLACK, (220, 50, 200, 200), 1)

5.绘制弧线

arc(Surface,color,Rect,start_angle,stop_angle,width=1)

这里Rect也是用来限制弧线的矩形,而start_angle和stop_angle用于设置弧线的起始角度和结束角度,单位是弧度,同时这里需要数学上的pi。

pygame.draw.arc(screen, BLACK, (100, 100, 440, 100), 0, math.pi, 1)
pygame.draw.arc(screen, BLACK, (220, 50, 200, 200), math.pi, math.pi * 2, 1)

6.绘制线段

line(Surface,color,start_pos,end_pos,width=1)
lines(Surface,color,closed,pointlist,width=1)

line()用于绘制一条线段,而lines()用于绘制多条线段。
其中lines()的closed参数是设置是否首尾相接。

这里在介绍绘制抗锯齿线段的方法,aaline()和aalines()其中aa就是antialiased,抗锯齿的意思。

aaline(Surface,color,startpos,endpos,blend=1)
aalines(Surface,color,closed,pointlist,blend=1)

最后一个参数blend指定是否通过绘制混合背景的阴影来实现抗锯齿功能。由于没有width方法,所以它们只能绘制一个像素的线段。

    points = [(200, 75), (300, 25), (400, 75), (450, 25), (450, 125), (400, 75), (300, 125)]
pygame.draw.lines(screen, GREEN, 1, points, 1)
pygame.draw.line(screen, BLACK, (100, 200), (540, 250), 1)
pygame.draw.aaline(screen, BLACK, (100, 250), (540, 300), 1)
pygame.draw.aaline(screen, BLACK, (100, 300), (540, 350), 0)

Python Pygame(5)绘制基本图形的更多相关文章

  1. Python 使用 matplotlib绘制3D图形

    3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何在Python中使用 matplotlib进行3D图形的绘制,包括3D散点.3D表面.3D轮廓.3D直线( ...

  2. Python turtle库绘制简单图形

    一.简介 Python中的turtle库是一个直观有趣的图形绘制函数库.turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形. 二.简单的图形列举 1.绘制4个不同 ...

  3. python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)

    插图工具使用Python内置的turtle模块,为什么叫这个turtle乌龟这个名字呢,可以这样理解,创建一个乌龟,乌龟能前进.后退.左转.右转,乌龟的尾巴朝下,它移动时就会画一条线.并且为了增加乌龟 ...

  4. Python绘制3D图形

    来自:https://www.jb51.net/article/139349.htm 3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行 ...

  5. Python plot_surface(Axes3D)方法:绘制3D图形

    3D 图形需要的数据与等高线图基本相同:X.Y 数据决定坐标点,Z 轴数据决定 X.Y 坐标点对应的高度.与等高线图使用等高线来代表高度不同,3D 图形将会以更直观的形式来表示高度. 为了绘制 3D ...

  6. 利用 turtle库绘制简单图形

    turtle库是python的基础绘图库,这个库被介绍为一个最常用的用来介绍编程知识的方法库,其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图. turtle名称含义为“ ...

  7. Making Games with Python & Pygame 中文翻译

    Making Games with Python & Pygame 用Pygame做游戏 第1章-安装python和pygame 原文作者:Al Sweigart 翻译:bigbigli/李超 ...

  8. 学习笔记:HTML5 Canvas绘制简单图形

    HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...

  9. css绘制特殊图形,meida查询,display inline-box间隙问题以及calc()函数

    本文同时发表于本人个人网站 www.yaoxiaowen.com 距离上一篇文章已经一个月了,相比于写代码,发现写文章的确是更需要坚持的事情.言归正传,梳理一下这一个月来,在写ife任务时,有必要记录 ...

  10. 摘记 史上最强大的40多个纯CSS绘制的图形(一)

    今天在国外的网站上看到了很多看似简单却又非常强大的纯CSS绘制的图形,里面有最简单的矩形.圆形和三角形,也有各种常见的多边形,甚至是阴阳太极和网站小图标,真的非常强大,分享给大家. Square(正方 ...

随机推荐

  1. CentOS7.6离线安装JDK1.8

    卸载CentOS自带的openJDK: 查看openJDK命令:rpm -qa|grep java 结果: java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el ...

  2. 以某课网日志分析为例 进入大数据 Spark SQL 的世界

    第1章 初探大数据 本章将介绍为什么要学习大数据.如何学好大数据.如何快速转型大数据岗位.本项目实战课程的内容安排.本项目实战课程的前置内容介绍.开发环境介绍.同时为大家介绍项目中涉及的Hadoop. ...

  3. Python学习笔记十一:模块

    标准库(内置模块) time与datetime 模块 时间表示方式 1.时间戳 2.格式化的字符串 3.元组形式 时间戳就是一个秒数 x=time.time(),从1970年1月1日0时0分0秒到现在 ...

  4. PetaLinux安装及使用

    Description/说明 PetaLinux版本:2016.4 操作系统版本:Ubuntu 16.04(如使用Ubuntu,墙裂建议使用16.04,其他版本官方手册并没有标明支持,可能会出现莫名其 ...

  5. Activemq首次运行报错 “找不到或无法加载主类”

    首次运行Program Files\apache-activemq-5.10.0\bin目录下的activemq.bat文件,报错信息如下: 找不到或无法加载主类 Files\apache-activ ...

  6. SSM-CRUD入门项目——新增与校验

    新增 分析: 在Index.jsp页面点击新增,弹出对话框(模态框) 数据库查询部门列表显示在模态框中 用户输入数据完成操作 我们先把模态框构建出来,并对新增按钮添加事件,点击按钮弹出模态框: < ...

  7. AWT之—画图

    package edu.ch4; import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.util.C ...

  8. 20155206 2016-2017-2《Java程序设计》课程总结

    20155234 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:师生关系 预备作业2:优秀技能经验 预备作业3:虚拟机linux初接触 第一周作业:认识 ...

  9. 在SQL SERVER中批量替换字符串的方法

    UPDATE MainData SET Content = )) , 'XM00000137' , 'XM00000078') WHERE [Key] IN (SELECT md_key FROM i ...

  10. 深入Redis 主从复制原理

    原文:深入Redis 主从复制原理 1.复制过程 2.数据间的同步 3.全量复制 4.部分复制 5.心跳 6.异步复制 1.复制过程 从节点执行 slaveof 命令. 从节点只是保存了 slaveo ...