IRect#

IRect 是一个矩形边界框,与 Rect 非常相似,不同之处在于所有角坐标都是整数。IRect 用于指定像素区域,例如在渲染期间接收图像数据。此外,关于矩形为空或无效的考虑也适用于此类。方法和属性名称相同,在许多情况下通过重用相应的 Rect 对应项实现。

属性 / 方法

简要描述

IRect.contains()

检查是否包含另一个对象

IRect.get_area()

计算矩形面积

IRect.intersect()

与另一个矩形的公共部分

IRect.intersects()

检查是否有非空交集

IRect.morph()

使用点和矩阵进行变换

IRect.torect()

将此矩形变换为另一个矩形的矩阵

IRect.norm()

欧几里得范数

IRect.normalize()

使矩形有限

IRect.bottom_left

左下点,同义词 bl

IRect.bottom_right

右下点,同义词 br

IRect.height

矩形高度

IRect.is_empty

矩形是否为空

IRect.is_infinite

矩形是否无限

IRect.rect

具有相同浮点坐标的 Rect 等效项

IRect.top_left

左上点,同义词 tl

IRect.top_right

右上点,同义词 tr

IRect.quad

由矩形角生成的 Quad

IRect.width

矩形宽度

IRect.x0

左上角的 X 坐标

IRect.x1

右下角的 X 坐标

IRect.y0

左上角的 Y 坐标

IRect.y1

右下角的 Y 坐标

类 API

class IRect#
__init__(self)#
__init__(self, x0, y0, x1, y1)#
__init__(self, irect)#
__init__(self, sequence)#

重载构造函数。另请参阅下面的示例以及 Rect 类的示例。

如果指定了另一个 irect,将创建一个 新副本

如果指定了 sequence,它必须是包含 4 个数字的 Python 序列类型(参见 在 PyMuPDF 中使用 Python 序列作为参数)。非整数数字将被截断,非数值将引发异常。

其他参数表示整数坐标。

get_area([unit])#

计算矩形面积,不带参数时等于 abs(IRect)。与空矩形类似,无限矩形的面积也为零。

参数:

unit (str) – 指定所需单位:相应的平方单位,包括“px”(像素,默认)、“in”(英寸)、“cm”(厘米)或“mm”(毫米)。

返回类型:

float

intersect(ir)#

计算当前矩形与 ir 的交集(公共矩形区域),并替换当前矩形。如果任一矩形为空,结果也为空。如果任一矩形为无限矩形,则以另一个矩形作为结果——因此如果两个矩形都为无限矩形,结果也为无限矩形。

参数:

ir (rect_like) – 第二个矩形。

contains(x)#

检查 x 是否包含在矩形中。它可能是 rect_likepoint_like 或一个数字。如果 x 是一个空矩形,这始终为 True。反之,如果矩形为空,当 x 不是空矩形且不是数字时,这始终为 False。如果 x 是一个数字,则会检查它是否是四个组件之一。x in irectirect.contains(x) 是等效的。

参数:

x (IRectRectPointint.) – 要检查的对象。

返回类型:

bool

intersects(r)#

检查当前矩形和 rect_like “r” 是否包含一个公共的非空 IRect。如果其中任一为无限或空,则此结果始终为 False

参数:

r (rect_like) – 要检查的矩形。

返回类型:

bool

torect(rect)#
  • 1.19.3 版本新增

计算将此矩形变换为给定矩形的矩阵。参见 Rect.torect()

参数:

rect (rect_like) – 目标矩形。不能为空或无限。

返回类型:

Matrix

返回:

一个矩阵 mat,使得 self * mat = rect。例如,可用于在页面坐标和像素图坐标之间进行变换。

morph(fixpoint, matrix)#
  • 1.17.0 版本新增

应用矩阵并使用固定点后,返回一个新的四边形。

参数:
  • fixpoint (point_like) – 固定点。

  • matrix (matrix_like) – 矩阵。

返回:

一个新的 Quad。这是同名 quad 方法的包装器。如果是无限的,则返回无限四边形。

norm()#
  • 1.16.0 版本新增

返回将矩形视为四维向量时的欧几里得范数。

normalize()#

使矩形有限。这通过重新排列矩形角来实现。在此之后,右下角确实会位于左上角的东南方向。有关更多详细信息,请参阅 Rect

top_left#
tl#

等于 Point(x0, y0)

类型:

Point

top_right#
tr#

等于 Point(x1, y0)

类型:

Point

bottom_left#
bl#

等于 Point(x0, y1)

类型:

Point

bottom_right#
br#

等于 Point(x1, y1)

类型:

Point

rect#

具有相同浮点坐标的 Rect 等效项。

类型:

Rect

quad#

四边形 Quad(irect.tl, irect.tr, irect.bl, irect.br)

类型:

Quad

width#

包含边界框的宽度。等于 abs(x1 - x0)

类型:

int

height#

包含边界框的高度。等于 abs(y1 - y0)

类型:

int

x0#

左侧角的 X 坐标。

类型:

int

y0#

顶部角的 Y 坐标。

类型:

int

x1#

右侧角的 X 坐标。

类型:

int

y1#

底部角的 Y 坐标。

类型:

int

is_infinite#

如果矩形是无限的,则为 True,否则为 False

类型:

bool

is_empty#

如果矩形为空,则为 True,否则为 False

类型:

bool

注意


本软件按“原样”提供,不提供任何明示或暗示的担保。本软件按许可分发,除非获得该许可条款的明确授权,否则不得复制、修改或分发。请参阅 artifex.com 上的许可信息,或联系 Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States 获取更多信息。