Quad

평면상의 사각형(또는 “사변형” 또는 “사각형”이라고도 함)을 나타내며, ul, ur, ll, lr(편의상 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래라고 함)의 4개의 Point 객체 시퀀스로 정의됩니다.

Quad는 텍스트 검색 메서드(Page.search_for())의 결과로 얻을 수 있으며, 텍스트 마커 주석을 정의하는 데 사용됩니다 (예: Page.add_squiggly_annot() 및 관련 메서드 참조). 또한 여러 그리기 메서드(예: Page.draw_quad() / Shape.draw_quad(), Page.draw_oval() / Shape.draw_quad())에서 사용됩니다.

참고

  • 사각형의 모서리가 회전, 확대/축소 또는 이동 Matrix 로 변환되면 결과 quad는 직사각형 (= 사각형과 합동)입니다. 즉, 모든 모서리가 다시 90도 각도를 이룹니다. 속성 Quad.is_rectangular 는 quad가 이러한 작업의 결과로 간주될 수 있는지 확인합니다.

  • 이것은 모든 행렬에 대해 참이 아닙니다: 예를 들어, 기울이기 행렬은 평행사변형을 생성하고, 역행렬이 없는 행렬은 삼각형이나 선과 같은 “퇴화된” 사각형을 제공합니다.

  • 속성 Quad.rect 는 둘러싸는 사각형을 얻습니다. 반대로, 사각형은 이제 속성 Rect.quad, 각각 IRect.quad 를 가지고 있어 각각의 사각형 버전을 얻을 수 있습니다.

메서드 / 속성

간단한 설명

Quad.transform()

행렬로 변환

Quad.morph()

점과 행렬로 변환

Quad.ul

왼쪽 위 점

Quad.ur

오른쪽 위 점

Quad.ll

왼쪽 아래 점

Quad.lr

오른쪽 아래 점

Quad.is_convex

quad가 볼록 집합이면 true

Quad.is_empty

quad가 빈 집합이면 true

Quad.is_rectangular

quad가 사각형과 합동이면 true

Quad.rect

포함하는 가장 작은 Rect

Quad.width

가장 긴 너비 값

Quad.height

가장 긴 높이 값

클래스 API

class Quad
__init__(self)
__init__(self, ul, ur, ll, lr)
__init__(self, quad)
__init__(self, sequence)

오버로드된 생성자: “ul”, “ur”, “ll”, “lr”는 point_like 객체(4개의 모서리)를 나타내며, “sequence”는 4개의 point_like 객체를 가진 Python 시퀀스입니다.

“quad”가 지정되면 생성자는 그것의 새 복사본 을 만듭니다.

매개변수 없이 Point(0, 0) 의 4개 복사본으로 구성된 quad가 생성됩니다.

transform(matrix)

각 모서리를 행렬로 변환하여 사각형을 수정합니다.

매개변수:

matrix (matrix_like) – 행렬.

morph(fixpoint, matrix)

(버전 1.17.0에서 새로 추가됨) 고정점으로 점과 유사한 것을 사용하여 행렬과 유사한 것으로 quad를 “변형”합니다.

매개변수:
  • fixpoint (point_like) – 점.

  • matrix (matrix_like) – 행렬.

반환:

새 quad(이것이 무한 quad인 경우 작업 없음).

rect

quad를 포함하는 가장 작은 사각형으로, 다음 그림의 파란색 영역으로 표시됩니다.

_images/img-quads.jpg
유형:

Rect

ul

왼쪽 위 점.

유형:

Point

ur

오른쪽 위 점.

유형:

Point

ll

왼쪽 아래 점.

유형:

Point

lr

오른쪽 아래 점.

유형:

Point

is_convex
  • 버전 1.16.1에서 새로 추가됨

quad의 임의의 두 점에 대해, 연결선 위의 모든 점도 quad에 속하는지 확인합니다.

유형:

bool

is_empty

둘러싸인 영역이 0이면 True입니다. 이는 4개의 모서리 중 최소 3개가 같은 선상에 있음을 의미합니다. 이것이 false이면 quad는 여전히 퇴화되었거나 사각형처럼 보이지 않을 수 있습니다(삼각형, 평행사변형, 사다리꼴 등).

유형:

bool

is_rectangular

모든 모서리 각도가 90도이면 True입니다. 이것은 quad가 볼록하고 비어 있지 않음 을 의미합니다.

유형:

bool

width

위쪽과 아래쪽 변의 최대 길이.

유형:

float

height

왼쪽과 오른쪽 변의 최대 길이.

유형:

float

참고

이 클래스는 시퀀스 프로토콜을 따르므로 구성 요소는 인덱스를 통해 처리할 수도 있습니다. 에서 Python 시퀀스를 인수로 사용하기 도 참조하세요.

대수 및 포함 확인

v1.19.6부터 quad는 다른 기하 객체처럼 대수 표현식에서 사용할 수 있습니다 – 해당 제한이 해제되었습니다. 특히, 다음 포함 확인 조합이 모두 가능합니다:

{Point | IRect | Rect | Quad} in {IRect | Rect | Quad}

다음 흥미로운 세부 사항을 참고하세요:

사각형의 경우, 왼쪽 위 점만 속합니다. v1.19.0부터 사각형은 “열림”으로 정의되어 아래쪽과 오른쪽 가장자리는 속하지 않습니다 – 해당 모서리 포함. 하지만 quad에는 “열림”과 같은 개념이 없으므로 다음과 같은 다소 놀라운 함의가 있습니다:

>>> rect.br in rect
False
>>> # but:
>>> rect.br in rect.quad
True

This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of that license. Refer to licensing information at artifex.com or contact Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States for further information.