Quad (クアッド)#
Quad(四角形または四辺形とも呼ばれる)は、平面上の数学的な四角形を表すもので、ul(上部左側)、ur(上部右側)、ll(下部左側)、lr(下部右側)の4つの Point (ポイント) オブジェクトのシーケンスとして定義されます。
Quadはテキスト検索メソッド( Page.search_for()
など)の結果として 取得でき 、テキストマーカーアノテーション Page.add_squiggly_annot()
などを参照)の定義や、Page.draw_oval()
/ Shape.draw_quad()
などのいくつかの描画メソッドで使用されます。
注釈
四角形の角が 回転、スケール、または 移動 Matrix (マトリックス) で変換される場合、結果の四角形は 長方形 です(長方形と合同の意味)、つまりそのすべての角は再び90度の角度を囲んでいます。
Quad.is_rectangular
プロパティは、四角形がこのような操作の結果であるかどうかを確認します。これはすべての行列に対して当てはまるわけではありません。例えば、シア行列は平行四辺形を生成し、非可逆行列は三角形や線のような「退化」した四角形を提供します。
属性
Quad.rect
は包括的な長方形を取得します。その逆も成り立ち、長方形にはRect.quad
、IRect.quad
属性が含まれ、それぞれそれらの四辺形バージョンを取得できます。
メソッド / 属性 |
短い説明 |
---|---|
行列を使用して変換します |
|
ポイントと行列を使用して変換します |
|
左上のポイント |
|
右上のポイント |
|
左下のポイント |
|
右下のポイント |
|
四角形が凸集合である場合は true |
|
四角形が空の集合である場合は true |
|
四角形が長方形と合同である場合は true |
|
最も小さい包含 Rect (矩形) |
|
最も長い幅の値 |
|
最も長い高さの値 |
クラス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" が指定されている場合、コンストラクターはそれの 新しいコピー を作成します。
パラメーターが指定されていない場合、4つの Point(0, 0) のコピーからなる四角形が作成されます。
- transform(matrix)#
四角形の各角を行列で変換して四角形を変更します。
- パラメータ:
matrix (matrix_like) -- 行列。
- morph(fixpoint, matrix)#
(バージョン1.17.0で新たに導入) マトリクスのようなものを使用して四角形を"変形"させ、固定ポイントとしてポイントライクを使用します。
- パラメータ:
fixpoint (point_like) -- ポイント。
matrix (matrix_like) -- 行列。
- 戻り値:
新しい四角形(これが無限の四角形の場合、操作は行われません)。
- ul#
左上のポイント
- Type:
- ur#
右上のポイント
- Type:
- ll#
左下のポイント
- Type:
- lr#
右下のポイント
- Type:
- is_convex#
新しいバージョン1.16.1で追加されました
このクアッドの任意の2点について、それらを結ぶ直線上のすべての点もこのクアッドに属するかどうかをチェックします。
- Type:
bool
- is_empty#
Enclosed areaがゼロの場合はTrueで、これは4つの角のうち少なくとも3つが同じ直線上にあることを意味します。これがfalseの場合、クアッドは依然として退化しているか、全くテトラゴンのようには見えないかもしれません(三角形、平行四辺形、台形など)。
- Type:
bool
- is_rectangular#
4つの角のすべての角度が90度の場合はTrueです。これは、クアッドが 凸面であり、空ではない ことを意味します。
- Type:
bool
- width#
上辺と下辺の最大の長さ。
- Type:
float
- height#
上辺と下辺の最大の長さ。
- Type:
float
リマーク#
このクラスはシーケンスプロトコルに従っており、要素にはインデックスを使用できます。また、PythonシーケンスをPyMuPDFで引数として使用する場合 を参照してください。
代数と包含チェック#
v1.19.6から、クアッドは他のジオメトリオブジェクトと同様に代数的な式で使用できるようになりました - 対応する制限が解除されました。特に、次の包含チェックの組み合わせがすべて可能になりました。
{Point | IRect | Rect | Quad} in {IRect | Rect | Quad}
次の興味深い詳細に注意してください:
長方形の場合、その上辺のみがそれに属しています。v1.19.0以降、長方形は「オープン」であると定義されており、その底辺と右端はそれに属していません - それには対応する角も含まれます。しかし、クアッドには「オープン」のような概念が存在しないため、次のようなやや驚くべき含意があります:
>>> rect.br in rect
False
>>> # but:
>>> rect.br in rect.quad
True