Region (クラス)
public abstract Region
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GRAPHICS._2D.REGION.

2 次元形状を表すクラスです。


コンストラクタ
empty-region:空の領域を返します。
ファクトリ public {Region.empty-region}:Region
from-path:指定した Path から Region を作成します。
ファクトリ public {Region.from-path path:Path}:Region
from-rectangle:x 軸と y 軸に位置揃えされた四角形の形をした Region オブジェクトを作成します。
ファクトリ public {Region.from-rectangle}:Region
from-vertex-array:Distance2d の指定した配列から Region を作成します。
ファクトリ public {Region.from-vertex-array
vertex-array:{Array-of Distance2d}
}:Region
from-vertices:指定した頂点から Region を作成します。
ファクトリ public {Region.from-vertices ...:Distance2d}:Region

プロパティ
aligned-rectangle?:Region が x および y 軸に位置揃えされた四角形であるかどうかをチェックします。
アクセサ public abstract Region.aligned-rectangle?:bool
contiguous?:この Region が連続的である場合、つまり単一のピースで構成されている場合は true を返します。
アクセサ public Region.contiguous?:bool
convex?:Region凸型領域であるかどうかをチェックします。
アクセサ public abstract Region.convex?:bool
empty?:Region がポイントのない領域であるかどうかをチェックします。
アクセサ public abstract Region.empty?:bool
for-loop-count:for ループ コンストラクタで Region 内のポイントを繰り返し実行するために使用されます。
アクセサ public abstract Region.for-loop-count:int
triangular?:この Region で表示された形状が三角形の場合、true を返します。
アクセサ public Region.triangular?:bool

メソッド
boundary-intersects-line-segment?:この Region が線セグメントと交差するかどうかを判別します。
public abstract {Region.boundary-intersects-line-segment?}:bool
clone:この Region インスタンスと同じ幾何学形状を表す Region インスタンスを生成します。共有データはありません。
public abstract {Region.clone}:Region
contains-point?:指定したポイントが Regionの内部にある場合は true を、それ以外の場合は false を返します。
public abstract {Region.contains-point? point:Distance2d}:bool
get:for ループ コンストラクタで Region 内のポイントを繰り返し実行するために使用されます。
public abstract {Region.get index:int}:Distance2d
get-bounding-box:この Region の境界ボックスを取得します。
public abstract {Region.get-bounding-box
error-if-empty?:bool = true
}:(x:Distance, y:Distance, width:Distance, height:Distance )
get-bounding-circle:この Region を完全に含む最小の円を検索します。
public {Region.get-bounding-circle
}:(center:Distance2d, radius:Distance)
get-horizontal-spans:指定した水平線セグメントに沿って Region のすべてのスパンを計算します。
public abstract {Region.get-horizontal-spans
y:Distance,
start-points:{Array-of Distance},
lengths:{Array-of Distance}
}:void
get-spans:指定した線セグメントに沿って Region のすべてのスパンを計算します。
public abstract {Region.get-spans
start:Distance2d,
end:Distance2d,
start-points:{Array-of Distance2d},
end-points:{Array-of Distance2d}
}:void
intersect-clone:この Region インスタンスと other で指定された Region インスタンスとの交点を作成します。
public abstract {Region.intersect-clone other:Region}:Region
subtract-clone:self から他の Region を差し引いた結果を計算します。幾何学的には、self が参照する Region 内にあるポイントと他の領域内にないポイントのセットを意味します。
public {Region.subtract-clone other:Region}:Region
to-Iterator:Region を形成するポイントを繰り返すために使用されるオブジェクトを返します。
public {Region.to-Iterator}:{Iterator-of Distance2d}
to-outline-path:この Region の境界の周りを移動する Path を返します。
public {Region.to-outline-path}:Path
to-source-code:コンパイルすると self と同じ Region を生成する Curl ソース コードを含む文字列を作成します。
public abstract {Region.to-source-code}:String
transform-clone:この Region に変換を適用します。
public abstract {Region.transform-clone
transformation:Transformation2d
}:Region
triangulate:この Region を三角形にします。
public abstract {Region.triangulate
max-angle:Angle = 10degrees
}:(points:{Array-of Distance2d}, indices:{Array-of int})
union-clone:入力 RegionRegion のユニオンを計算します。
public abstract {Region.union-clone other:Region}:Region
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
empty-region (ファクトリ)
public {Region.empty-region}:Region

空の領域を返します。



from-path (ファクトリ)
public {Region.from-path path:Path}:Region

指定した Path から Region を作成します。

説明

Path には、移動、線、または曲線である PathOperation を含めることができます。
path: Path はこの Region を作成するために使用されます。

戻り値

Region, 新しく作成された Region です。

注意事項

作成された Regionpath のコピーを作成します。そのため、Region.from-path が呼び出された後に行われた path の変更は結果の Region には反映されません。

path が開いている場合、この Region ファクトリーはそのクローンを作成し、次に path を閉じてから Region を作成します。これは、Region の周辺が閉じたループになっている必要があるためです。

path は y-down 座標系で反時計回りになっている必要があります。


from-rectangle (ファクトリ)
public {Region.from-rectangle}:Region

x 軸と y 軸に位置揃えされた四角形の形をした Region オブジェクトを作成します。

x: 四角形の左上隅の x 座標です。
y: 四角形の左上隅の y 座標です。
width: 四角形の幅です。結果の Region の幅は常に正の値です。負の値が指定された場合、Regionwidth の絶対値だけ上に移動します。結果の Region の幅は、width で指定された Distance の絶対値になります。
height: 四角形の高さです。幅と同様に、結果の Region の高さは常に正の値です。負の値が指定された場合、Regionheight の絶対値だけ左に移動し、Region の高さも height の絶対値になります。

戻り値

Region, 新しく作成された Region です。


from-vertex-array (ファクトリ)
public {Region.from-vertex-array
vertex-array:{Array-of Distance2d}
}:Region

Distance2d の指定した配列から Region を作成します。

vertex-array: Region のアウトラインを表示する Array-of Distance2d です。この配列の要素は y-down 座標系で反時計回りの順序になっている必要があります。

戻り値

Region, 新しく作成された Region です。

説明

このファクトリーに渡された Distance2d の配列は、凸、凹、または self-intersecting ポリゴンを表すことがあります。

注意事項

閉じていない形状または穴のあいた形状は、このファクトリーでは作成できません。


from-vertices (ファクトリ)
public {Region.from-vertices ...:Distance2d}:Region

指定した頂点から Region を作成します。

...: Regionを定義するために順番に使用される、いくつもの Distance2d です。頂点は y-down 座標系で反時計回りになっている必要があります。

戻り値

Region, 新しく作成された Region です。

説明

このファクトリーに渡された Distance2d は、凸、凹、または self-intersecting ポリゴンを表すことがあります。

注意事項

閉じていない形状または穴のあいた形状は、このファクトリーでは作成できません。



プロパティ詳細
aligned-rectangle? (アクセサ)
アクセサ public abstract Region.aligned-rectangle?:bool

Region が x および y 軸に位置揃えされた四角形であるかどうかをチェックします。

戻り値

axis-aligned の四角形である場合は true。それ以外の場合は false

注意事項

回転した四角形は軸に揃えられた四角形ではありません。その場合、aligned-axix? は false になります。


contiguous? (アクセサ)
アクセサ public Region.contiguous?:bool

この Region が連続的である場合、つまり単一のピースで構成されている場合は true を返します。

説明

パスが Region 内の任意のポイントから Region 内の他のポイントまで、そのRegion 内に存在しないポイントに触れることなくトレースできるならば、Region は連続しています。連続していない Region は閉じていないと定義されます。

連続した Region と閉じていない Region を次の図に示します。右側の Region は連続していますが、左側の Region は連続していません。



注意事項

non-contiguous な (閉じていない) Region は、Region.from-path ファクトリーを使用した場合に限り作成できます。

閉じていないものへのアクセッサはありません。 Region が閉じているかどうかは not region.contiguous? を使用するだけでわかります。


convex? (アクセサ)
アクセサ public abstract Region.convex?:bool

Region凸型領域であるかどうかをチェックします。

戻り値

凸型領域の場合は true、それ以外の場合は false です。


empty? (アクセサ)
アクセサ public abstract Region.empty?:bool

Region がポイントのない領域であるかどうかをチェックします。

戻り値

ポイントがない場合は true、それ以外は false です。


for-loop-count (アクセサ)
アクセサ public abstract Region.for-loop-count:int

for ループ コンストラクタで Region 内のポイントを繰り返し実行するために使用されます。



triangular? (アクセサ)
アクセサ public Region.triangular?:bool

この Region で表示された形状が三角形の場合、true を返します。

説明

Region は、連続した 3 つの辺を持つ場合に三角形とみなされます。

注意事項

3 つの共線ポイントで定義される Region も三角形とみなされます。3 つの共線ポイントは変形した三角形を定義します。





メソッド詳細
boundary-intersects-line-segment? (メソッド)
public abstract {Region.boundary-intersects-line-segment?}:bool

この Region が線セグメントと交差するかどうかを判別します。

a: この線セグメントの終点。
b: この線セグメントの終点。


clone (メソッド)
public abstract {Region.clone}:Region

この Region インスタンスと同じ幾何学形状を表す Region インスタンスを生成します。共有データはありません。

戻り値

Region,Region のクローンです。


contains-point? (メソッド)
public abstract {Region.contains-point? point:Distance2d}:bool

指定したポイントが Regionの内部にある場合は true を、それ以外の場合は false を返します。

注意事項

このメソッドは Region の境界上のポイントについて true を返します。


get (メソッド)
public abstract {Region.get index:int}:Distance2d

for ループ コンストラクタで Region 内のポイントを繰り返し実行するために使用されます。



get-bounding-box (メソッド)
public abstract {Region.get-bounding-box
error-if-empty?:bool = true
}:(x:Distance, y:Distance, width:Distance, height:Distance )

この Region の境界ボックスを取得します。

error-if-empty?: 空の Regionget-bounding-box が呼び出されたとき、例外をスローするかどうかを指定するブールです。既定値は true で、例外がスローされます。error-if-empty?false に設定され、Region が空の場合、get-bounding-box はすべての戻り値がゼロになっている境界ボックスを返します。

戻り値

x, y, width, height

説明

このメソッドが返す境界ボックスは、x および y 座標軸に位置揃えされています。


get-bounding-circle (メソッド)
public {Region.get-bounding-circle
}:(center:Distance2d, radius:Distance)

この Region を完全に含む最小の円を検索します。

戻り値

中心、半径

注意事項

このメソッドは実際に円を計算しますが、高速である必要はありません。


get-horizontal-spans (メソッド)
public abstract {Region.get-horizontal-spans
y:Distance,
start-points:{Array-of Distance},
lengths:{Array-of Distance}
}:void

指定した水平線セグメントに沿って Region のすべてのスパンを計算します。

説明

このメソッドは通常 Renderer2d で呼び出され、y 座標で水平線セグメントを指定します。このメソッドは、線に沿ってスパンを計算し、それらの各開始 x 座標を一方の配列に、対応するスパンの (水平) 幅を他の配列に配置します。呼び出し元は両方の配列を提供し、レンダリング中の割り当てを避ける必要があります。
y: すべてのスパンの y 座標です。
start-points: すべてのスパンの開始 x 座標を含める配列です。
lengths: スパンの幅を含める配列です。

注意事項

Region が凸の場合、start-points 配列と lengths 配列の長さは 1 になります。

次の画像は、凸 Region の水平スパンを示します。水平スパンは青で表示されます。



get-spans (メソッド)
public abstract {Region.get-spans
start:Distance2d,
end:Distance2d,
start-points:{Array-of Distance2d},
end-points:{Array-of Distance2d}
}:void

指定した線セグメントに沿って Region のすべてのスパンを計算します。

説明

このメソッドは通常 Renderer2d で呼び出され、始点と終点で線セグメントを指定します。このメソッドは線セグメントに沿ってスパンを計算し、それらの各始点を 1 つの配列に配置し、対応するスパンの終点を他の配列に配置します。呼び出し元は両方の配列を提供し、レンダリング中の割当てを避ける必要があります。
start: この線セグメントの始点。
end: この線セグメントの終点。
start-points: すべてのスパンの始点が入力されている配列です。
end-points: すべてのスパンの終点が入力されている配列です。

注意事項

Region が凸の場合、 start-points 配列と end-points 配列の長さは 1 になります。


intersect-clone (メソッド)
public abstract {Region.intersect-clone other:Region}:Region

この Region インスタンスと other で指定された Region インスタンスとの交点を作成します。

other: self との交点が計算される Region

注意事項

2 つの Region の交点は、両方の入力 Region に含まれているすべてのポイントのセットです。

説明

Regionintersect-clone メソッドを呼び出しても、その Region は変更されません。交点の結果は、常に新しい Region として返されます。


subtract-clone (メソッド)
public {Region.subtract-clone other:Region}:Region

self から他の Region を差し引いた結果を計算します。幾何学的には、self が参照する Region 内にあるポイントと他の領域内にないポイントのセットを意味します。

other: self から減算される Region です。

説明

Regionsubtract-clone メソッドを呼び出しても、その Region は変更されません。違いを表す Region が常に作成され、返されます。


to-Iterator (メソッド)
public {Region.to-Iterator}:{Iterator-of Distance2d}

Region を形成するポイントを繰り返すために使用されるオブジェクトを返します。



to-outline-path (メソッド)
public {Region.to-outline-path}:Path

この Region の境界の周りを移動する Path を返します。

戻り値

アウトライン Path.


to-source-code (メソッド)
public abstract {Region.to-source-code}:String

コンパイルすると self と同じ Region を生成する Curl ソース コードを含む文字列を作成します。



transform-clone (メソッド)
public abstract {Region.transform-clone
transformation:Transformation2d
}:Region

この Region に変換を適用します。

transformation: self に適用される Transformation2d です。

説明

self が参照する Region は、transform-clone メソッドでは変化しません。返された Region は、transformation で変換された self の結果です。


triangulate (メソッド)
public abstract {Region.triangulate
max-angle:Angle = 10degrees
}:(points:{Array-of Distance2d}, indices:{Array-of int})

この Region を三角形にします。

max-angle: 曲線の辺を線セグメントで近似するときの、連続するセグメント間の最大許容角度です。このパラメータは、曲線の辺で Region を三角形にするときにだけ使用されます。

戻り値

ポイント、インデックス


union-clone (メソッド)
public abstract {Region.union-clone other:Region}:Region

入力 RegionRegion のユニオンを計算します。

other: self とのユニオンが計算される Region

注意事項

幾何学的には、2 つの Region のユニオンはいずれかの Region に属するすべてのポイントのセットです。

説明

Regionunion-clone メソッドを呼び出しても、その Region は変更されません。ユニオンの結果は、常に新しい Region として返されます。

戻り値

ユニオンを表す新しく作成された Region です。