メインコンテンツへスキップ
ファジー矩形 は、境界がそれぞれ特定の許容範囲内にある矩形のクラスを表す構造です。ファジー矩形 は、外側の矩形と内部矩形の 2 つの矩形で構成されます。 FlexiLayout language では、ファジー矩形は型 FuzzyRect で表されます。 次の図に示すように、一般的なケースでは、すべての境界に制約が設定されていると、要素のどの Hypothesis にも必ず含まれる検索領域の部分があります。この部分が内部矩形を形成します。一方、取り得る Hypothesis 全体を外接する最大の矩形が、外側の矩形を形成します。
要素の境界を次のように定義します。 LeftBound: [L1, L2], where L1 <= L2 TopBound: [T1, T2], where T1 <= T2 RightBound: [R1, R2], where R1 <= R2 BottomBound: [B1, B2], where B1 <= B2 このとき、指定した境界の情報を含む ファジー矩形 は次のように構成されます。InternalRect: [L2, T2, R1, B1], ExternalRect: [L1, T1, R2, B2]。 ユーザーが検索領域の境界に制約を設定しない場合、内部矩形は退化し、幾何学的な意味を持たなくなります。この場合、L1=R1, L2=R2, T1=B1, T2=B2 となります。 ここで、検索領域に制約が指定されていないとします。このとき、許容される最大ページ数と最小ページ数が 1 の場合、検索領域の ファジー矩形 は次のように作成されます。 LeftBound: [PageRect.Left, PageRect.Right] TopBound: [PageRect.Top, PageRect.Bottom] RightBound: [PageRect.Left, PageRect.Right] BottomBound: [PageRect.Top, PageRect.Bottom] InternalRect: [PageRect.Right, PageRect.Bottom, PageRect.Left, PageRect.Top] ExternalRect: [PageRect.Left, PageRect.Top, PageRect.Right, PageRect.Bottom] また、複数ページの文書場合は次のとおりです。 LeftBound: [-INF, INF] TopBound: [-INF, INF] RightBound: [-INF, INF] BottomBound: [-INF, INF] InternalRect: [INF, INF, -INF, -INF] ExternalRect: [-INF, -INF, INF, INF] 上の式からわかるように、外側の矩形はページ全体の矩形と一致し、内部矩形は退化して、高さと幅が負になります。 ファジー矩形 では、和集合と共通部分を求めることができます。2 つの ファジー矩形 の共通部分を求めると、対応する境界どうしで共通部分が計算されます。つまり、一方の矩形の右境界は他方の矩形の右境界と、左境界は左境界と、というように対応する境界どうしが処理されます。その結果、境界の新しい範囲が作成されます。 LeftBound: [L1’, L2’] TopBound: [T1’, T2’] RightBound: [R1’, R2’] BottomBound: [B1’, B2’] 結果として得られる ファジー矩形 は、得られた区間を使って次のように作成されます。InternalRect: [L2’, T2’, R1’, B1’], ExternalRect: [L1’, T1’, R2’, B2’]。 共通部分を求めた結果、ファジー矩形 を作成する条件 (L1 <= L2, T1 <= T2, R1 <= R2, B1 <= B2) のうち 1 つでも満たされない場合、結果の ファジー矩形 は空になります。InternalRect: [0, 0, 0, 0], ExternalRect: [0, 0, 0, 0]。通常、空の ファジー矩形 は条件が矛盾している場合に作成されます。たとえば、外側の境界どうしが交差しない 2 つの ファジー矩形 の共通部分を求めようとした場合です。 ファジー矩形 の和集合も同様に作成されます。まず、各境界の範囲どうしを結合します。2 つの範囲を結合すると、指定された両方の範囲を含む最小の範囲が作成されます。境界を結合した後、新しい ファジー矩形 が構成されます。 実際には、内部矩形が退化した ファジー矩形 を目にすることがほとんどです。特定の境界に制約を設定する必要があるのは、まれなケースに限られます。ただし、要素の検索領域は常に ファジー矩形 と、除外された矩形の配列で表されます。