iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python使用draw类绘制图形示例讲解
  • 417
分享到

Python使用draw类绘制图形示例讲解

2024-04-02 19:04:59 417人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录视频Pygame模块之pygame.draw示例1示例2视频 观看视频 Pygame模块之pygame.draw 本文将主要介绍Pygame的draw模块,主要内容翻译自pyga

视频

观看视频

Pygame模块之pygame.draw

本文将主要介绍Pygame的draw模块,主要内容翻译自pygame的官方文档

pygame.draw 模块用于在Surface上绘制一些简单的图形,比如点、直线、矩形、圆、弧等。

pygame.draw中函数的第一个参数总是一个surface,然后是颜色,再后会是一系列的坐标等。稍有些计算机绘图经验的人就会知道,计算机里的坐标,(0,0)代表左上角。而返回值是一个Rect对象,包含了绘制的领域,这样你就可以很方便的更新那个部分了。

先从整体来看pygame.draw有哪些函数:

  • pygame.draw.rect:绘制矩形
  • pygame.draw.polyGon:绘制任意边数的多边形
  • pygame.draw.circle:绘制圆
  • pygame.draw.ellipse:在矩形内绘制椭圆
  • pygame.draw.arc:绘制圆弧(或者椭圆的一部分)
  • pygame.draw.line:绘制直线(线段)
  • pygame.draw.lines:从一个点列表中连续绘制直线段
  • pygame.draw.aaline:绘制一根平滑的线(反锯齿)
  • pygame.draw.aalines:绘制一系列平滑的线

大多数函数接受一个width参数表示线条(画笔)的宽度,如果该值设置为0,则表示填充整个图形。

所有的绘制函数都会尊重指定的Surface编辑区,而且会限制在这个区域内。函数的返回值是一个Rect,表示的是受影响的Surface区域。(原文:All the drawing functions respect the clip area for the Surface, and will be constrained to that area. The functions return a rectangle representing the bounding area of changed pixels.)

颜色参数通常是一个RGB三元组(R, G, B)。也可以接受RGBA形式的颜色值。

这些绘制函数会临时定所操作的Surface对象。

pygame.draw.rect

原型:pygame.draw.rect(Surface, color, Rect, width=0): return Rect

用途:在Surface上绘制矩形,color参数是线条(或填充)的颜色,参数Rect的形式是((x, y), (width, height)),表示的是所绘制矩形的区域,其中第一个元组(x, y)表示的是该矩形左上角的坐标,第二个元组 (width, height)表示的是矩形的宽度和高度。width表示线条的粗细,单位为像素;默认值为0,表示填充矩形内部。

此外,Surface.fill 同样可以用来绘制填充矩形。

pygame.draw.polygon

原型:pygame.draw.polygon(Surface, color, pointlist, width=0): return Rect

用途:polygon是多边形,这个函数和rect类似,除了第三个参数。顾名思义,pointlist是一个坐标点的列表,表示多边形的各个顶点。

pygame.draw.circle

原型:pygame.draw.circle(Surface, color, pos, radius, width=0): return Rect

用途:用于绘制圆形。第三个参数pos是圆心的位置坐标,radius指定了圆的半径。

pygame.draw.ellipse

原型:pygame.draw.ellipse(Surface, color, Rect, width=0): return Rect

用途:ellipse是椭圆形,这个函数在矩形 Rect 内部绘制一个内接椭圆。

pygame.draw.arc

原型:pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width=1): return Rect

用途:绘制一段圆弧,或者其实是上面提到的椭圆的一部分。与ellipse函数相比,多了两个参数:start_angle是该段圆弧的起始角度,stop_angle是终止角度。这两个都是用弧度制来表示的,而原点就是矩形Rect的中心。在Rect平面上建立坐标系,原点是中心,简单示意图如下。0弧度的起点是右边的中点处。

pygame.draw.line

原型:pygame.draw.line(Surface, color, start_pos, end_pos, width=1): return Rect

用途:绘制直线段,start_pos 和 end_pos 分别表示起始点和终止点,用坐标表示。width为线条宽度,默认为1. 线条两端自然结束,没有明显的端点(如实心黑点)。

pygame.draw.lines

原型:pygame.draw.lines(Surface, color, closed, pointlist, width=1): return Rect

用途:用于绘制一系列直线段。closed是一个布尔变量,如果closed为真,那么表示需要把第一点和最后一点连接起来。这些点来自pointlist,一个包含坐标点的列表。这个函数不会绘制线条的端点,也没有斜角连接(miter joints),而且角度小和线条粗的连线看起来会有点奇怪( Lines with sharp corners and wide line widths can have improper looking corners.)。

pygame.draw.aaline

原型:pygame.draw.aaline(Surface, color, startpos, endpos, blend=1): return Rect

用途:绘制一条平滑的(消除锯齿)直线段。

pygame.draw.aalines

原型:pygame.draw.aalines(Surface, color, closed, pointlist, blend=1): return Rect

用途:绘制连续的抗锯齿线段。该函数还有上面的aaline的用法和前两个类似。

示例1

绘制图形时,函数使用方法举例。

import pygame
from math import pi
#初始化
pygame.init()
# 设置主屏幕大小
size = (500, 450)
screen = pygame.display.set_mode(size)
#设置标题
pygame.display.set_caption("小小工坊")
# 设置一个控制主循环的变量
done = False
#创建时钟对象
clock = pygame.time.Clock()
while not done:
    # 设置游戏的fps
    clock.tick(10)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True  # 若检测到关闭窗口,则将done置为True
    # 绘制一条宽度为 3 的红色对角线
    pygame.draw.line(screen, (0, 255, 0), [0, 0], (500, 450), 3)
    # 绘制多条蓝色的直线(连续直线,非抗锯齿),False 表示首尾不相连
    pygame.draw.lines(screen, (0, 0, 255), False, [[0, 80], [50, 90], [200, 80], [220, 30]], 1)
    # 绘制一个灰色的矩形区域,以灰色填充区域
    pygame.draw.rect(screen, (155, 155, 155), (75, 10, 50, 20), 0)
    # 绘制一个线框宽度为2的矩形区域
    pygame.draw.rect(screen, (0, 0, 0), [150, 10, 50, 20],2)
    # 绘制一个椭圆形,其线宽为2
    pygame.draw.ellipse(screen, (255, 0, 0), (225, 10, 50, 20), 2)
    # 绘制一个实心的红色椭圆形
    pygame.draw.ellipse(screen, (255, 0, 0), (300, 10, 50, 20))
    # 绘制一个绿色边框(宽度为2)三角形
    pygame.draw.polygon(screen, (100, 200, 45), [[100, 100], [0, 200], [200, 200]], 2)
    # 绘制一个蓝色实心的圆形,其中[60,250]表示圆心的位置,40为半径,width默认为0
    pygame.draw.circle(screen, (0, 0, 255), [60, 250], 40)
    # 绘制一个圆弧,其中0表示弧线的开始位置,pi/2表示弧线的结束位置,2表示线宽
    pygame.draw.arc(screen, (255, 10, 0), (210, 75, 150, 125), 0, pi / 2, 2)
    # 刷新显示屏幕
    pygame.display.flip()
# 点击关闭,退出pygame程序
pygame.quit()

示例2

绘制脸部图形

import pygame, sys
from math import pi
pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("pygame 绘图")
GOLD = 255, 251, 0
RED = pygame.Color('red')
WHITE = 255, 255, 255
GREEN = pygame.Color('green')
e1rect = pygame.draw.ellipse(screen,GREEN, (50,50,500,300),3)
c1rect = pygame.draw.circle(screen, GOLD, (200, 180), 30, 5)
c2rect = pygame.draw.circle(screen, GOLD,(400, 180), 30, 5)
r1rect = pygame.draw.rect(screen, RED, (170, 130, 60, 10), 3)
r2rect = pygame.draw.rect(screen, RED, (370, 130, 60, 10))
plist = [(295,170), (285,250),(260,280),(340,280),(315,250),(305,170)]
l1rect = pygame.draw.lines(screen,GOLD,True,plist,2)
a1rect = pygame.draw.arc(screen,RED,(200,220,200,100), 1.4*pi, 1.9*pi, 3)
while True:
	for e in pygame.event.get():
		if e.type == pygame.QUIT:
			pygame.quit()
			sys.exit()
	pygame.display.update()

到此这篇关于python使用draw类绘制图形示例讲解的文章就介绍到这了,更多相关Python draw类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python使用draw类绘制图形示例讲解

本文链接: https://www.lsjlt.com/news/119853.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python使用draw类绘制图形示例讲解
    目录视频Pygame模块之pygame.draw示例1示例2视频 观看视频 Pygame模块之pygame.draw 本文将主要介绍Pygame的draw模块,主要内容翻译自pyga...
    99+
    2024-04-02
  • Python中使用matplotlib绘制各类图表示例
    折线图 折线图是一种用于表示数据随时间、变量或其他连续性变化的趋势的图表。通过在横轴上放置时间或如此类似的连续变量,可以在纵轴上放置数据点的值,从而捕捉到数据随时间发生的变化。折线图可以用于比较不同变...
    99+
    2023-09-13
    python matplotlib 开发语言
  • Python+turtle绘制对称图形的示例代码
    目录1.图12.图23.图34.图45.图56.图6最近有个朋友,想要我帮忙用python画几个图,在画的过程中觉得有些图还挺有意思的,分享给大家。 1.图1 第一个图是由三角形组成...
    99+
    2024-04-02
  • Android利用Canvas类绘制图形
    本文实例为大家分享了Android利用Canvas类绘制图形的具体代码,供大家参考,具体内容如下 首先介绍一下相关基础知识。 1.画笔(paint) 1.1、作用:画笔对象通过属性来...
    99+
    2024-04-02
  • Python怎么使用pyecharts绘制箱形图
    这篇文章主要介绍“Python怎么使用pyecharts绘制箱形图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么使用pyecharts绘制箱形图”文章能帮助大家解决问题。箱形图概念后...
    99+
    2023-07-02
  • 如何使用Python Matplotlib绘制条形图
    目录前言一、一般条形图二、横向条形图三、分组条形图的绘制四、堆叠条形图绘制总结 前言 matplotlib是一个非常强大的Python第三方绘图包,可以绘制非常多非常漂亮的...
    99+
    2024-04-02
  • 怎么使用Python Matplotlib绘制条形图
    今天小编给大家分享一下怎么使用Python Matplotlib绘制条形图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-07-02
  • Python pyecharts绘制条形图详解
    目录一、简介二、整理数据1、配置主题2、柱状图 Bar - Bar_base_dict_config3、样例数据 Faker.choose()4、滚动条 Bar - Bar_data...
    99+
    2024-04-02
  • Python实现动态条形图绘制的示例代码
    目录动态条形图变动态柱状图指定排序方式限制条目数设置固定条目固定数值轴,使其不发生动态变化设置图像帧数,默认 10 帧设置帧率,单位时间默认为 500ms设置每帧增加的标签时间,默认...
    99+
    2024-04-02
  • Python之Pygame的Draw绘图方法怎么使用
    今天小编给大家分享一下Python之Pygame的Draw绘图方法怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Py...
    99+
    2023-07-05
  • Python tkinter库图形绘制例子分享
    目录一、椭圆绘制二、矩形绘制三、多边形绘制一、椭圆绘制 实例代码: import tkinter as tk                    # 导入tkinter库,并重命名...
    99+
    2024-04-02
  • PythonOpenCV绘制各类几何图形详解
    目录一.绘制直线二.绘制矩形三.绘制圆形四.绘制椭圆五.绘制多边形六.绘制文字七.总结一.绘制直线 在OpenCV中,绘制直线需要获取直线的起点和终点坐标,调用cv2.line()函...
    99+
    2024-04-02
  • Python中怎么使用Matplotlib库绘制图形
    这篇文章主要介绍“Python中怎么使用Matplotlib库绘制图形”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中怎么使用Matplotlib库绘制图形”文章能帮助大家解决问题。一、...
    99+
    2023-07-02
  • Python中如何使用Matplotlib库绘制图形
    目录前言一、简单的正弦函数与余弦函数二、进阶版正弦函数与余弦函数1.改变颜色与粗细2.设置图片边界3.设置记号4.设置记号的标签5.设置X,Y轴6.完整代码三、绘制简单的折线图总结前...
    99+
    2024-04-02
  • 如何用python绘制柱形图
    这篇文章主要介绍了如何用python绘制柱形图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用python绘制柱形图文章都会有所收获,下面我们一起来看看吧。#柱形图import pandasimp...
    99+
    2023-06-30
  • GoJs图形绘图模板Shape示例详解
    目录前言Shape的使用width和height属性fill属性stroke、strokeWidth、strokeDashArray属性geometry属性angle、scale属性...
    99+
    2023-05-16
    GoJs Shape图形绘图模板 GoJs Shape
  • R语言绘制地图实例讲解
    setwd("C:/Users/75377/Desktop/SHEEP_ROH") png("12.png",width = 7000,height = 5500,pointsi...
    99+
    2024-04-02
  • Python OpenCV如何绘制各类几何图形
    这篇文章将为大家详细讲解有关Python OpenCV如何绘制各类几何图形,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一.绘制直线在OpenCV中,绘制直线需要获取直线的起点和终点坐标,调用c...
    99+
    2023-06-29
  • python使用Matplotlib绘制多种常见图形
    目录柱状图水平绘制柱状图多个柱状图叠加型柱状图散点图气泡图直方图箱线图添加文字描述添加文字描述 方法二多个图形描绘 subplots使用Pandas 绘图Matplotlib官网&n...
    99+
    2024-04-02
  • 怎么使用Python+turtle绘制对称图形
    这篇文章主要介绍“怎么使用Python+turtle绘制对称图形”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Python+turtle绘制对称图形”文章能帮助大家解决问题。1.图1第一个图...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作