CrossingPolygon[{p1,p2,…,pn}]
ある点から平面内の任意の方向に向けて出た半直線が,半直線{p1,p2},…,{pn-1,pn},{pn,p1}と偶数回交差するすべての点を表すPolygonを与える.
CrossingPolygon[{{p11,p12,…},{p21,p22,…},…}]
線分{p11,p12},…,{p21,p22},…からのPolygonを与える.
CrossingPolygon
CrossingPolygon[{p1,p2,…,pn}]
ある点から平面内の任意の方向に向けて出た半直線が,半直線{p1,p2},…,{pn-1,pn},{pn,p1}と偶数回交差するすべての点を表すPolygonを与える.
CrossingPolygon[{{p11,p12,…},{p21,p22,…},…}]
線分{p11,p12},…,{p21,p22},…からのPolygonを与える.
詳細とオプション
- CrossingPolygonは偶奇充填規則としても知られている.
- ある点から出て無限大の任意の方向に向かう半直線が境界曲線と偶数回交差するなら,その点はCrossingPolygon内にある.半直線の交差回数はCrossingCountで与えられる.
- 下の各領域についての半直線の交差回数
- CrossingPolygonは,例えば自己交差のある曲線からの多角形の定義に使われる.
- CrossingPolygon[{p1,p2,…,pn}]は,事実上,Polygon[{p1,p2,…,pn}]に等しい.
- CrossingPolygon[{{p11,p12,…},{p21,p22,…},…}]は,一般に,Polygon[{{p11,p12,…},{p21,p22,…},…}]とは異なる.前者がすべての閉曲線{pi1,pi2,…}に対して半直線交差規則を使うのに対し,後者は多角形Polygon[{pi1,pi2,…}]の和集合であるからである.
- 点 piは任意の長さでよいが,すべてが平面上になければならない.
- CrossingPolygonはPolygonと同じオプションを取る.
-
VertexColors Automatic 補間される頂点の色 VertexNormals Automatic 陰影付けのための有効な頂点法線 VertexTextureCoordinates None テクスチャのための座標
全オプションのリスト
例題
すべて開く すべて閉じる例 (2)
スコープ (11)
基本的な用法 (5)
CrossingPolygon[{{0, 0}, {1, 0}, {1, 1}}]Graphics[%]CrossingPolygon[{{1, 0, 0}, {1, (2/Sqrt[5]), (1/Sqrt[5])}, {1 - Sqrt[(5/6)], (2/Sqrt[5]) - (1/Sqrt[30]), Sqrt[(2/15)] + (1/Sqrt[5])}}]Graphics3D[%]CrossingPolygon[{{1, 0, 0, 3}, {1, 1, 1, 3}, {(2/3), (1/3), (2/3), 3}, {0, 0, 1, 3}}]CrossingPolygon[{{0.35, 0.2}, {0.9, 0.75}, {0.1, 0.55}, {0.9, 0.35}, {0.42, 0.9}}]Graphics[%]CrossingPolygon[{{{0.3, 0.}, {-0.8, 0.6}, {-0.8, -0.6}, {0.3, 0.}}, {{1.5, 0.}, {0.4, 0.6}, {0.4, -0.6}, {1.5, 0.}}}]Graphics[%]自己交差する輪郭線 (3)
CrossingPolygonは自己交差する輪郭線に使うことができる:
CrossingPolygon[IconizedObject[«[image]»]]Graphics[%]CrossingPolygon[{{0, 0}, {1, 0}, {1, 1}, {0, 0}, {1, 0}, {1, 1}}]Graphics[%]CrossingPolygon[IconizedObject[«[image]»]]Graphics[%]複数の輪郭線 (3)
CrossingPolygonは複数の輪郭線に使うことができる:
CrossingPolygon[IconizedObject[«[image]»]]Graphics[%]CrossingPolygon[IconizedObject[«[image]»]]Graphics[%]CrossingPolygon[IconizedObject[«[image]»]]Graphics[%]オプション (6)
VertexColors (2)
VertexNormals (1)
{p1, p2, p3} = {{1, 0, 0}, {1, 1, 1}, {0, 0, 1}};n = Cross[p2 - p1, p3 - p1]Graphics3D[{Yellow, CrossingPolygon[{p1, p2, p3}, VertexNormals -> {n, n, n}]}]Graphics3D[{Yellow, CrossingPolygon[{p1, p2, p3}, VertexNormals -> {-n, n, n}]}]VertexTextureCoordinates (3)
Graphics[{Texture[ExampleData[{"TestImage", "Airplane2"}]], CrossingPolygon[{{1, 1}, {3, 1}, {3, 3}, {1, 3}}, VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}]Graphics3D[{Texture[ExampleData[{"TestImage", "Airplane2"}]], CrossingPolygon[{{-1, -1, 0}, {1, -1, 0}, {1, 1, 0}, {-1, 1, 0}}, VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}}]}, Lighting -> "Neutral"]{Graphics[{Texture[ExampleData[{"TestImage", "Mandrill"}]], CrossingPolygon[{{1, 1}, {3, 1}, {3, 3}, {1, 3}}, VertexTextureCoordinates -> {{0, 0}, {2, 0}, {2, 2}, {0, 2}}]}], Graphics3D[{Texture[ExampleData[{"TestImage", "Mandrill"}]], CrossingPolygon[{{-1, -1, 0}, {1, -1, 0}, {1, 1, 0}, {-1, 1, 0}}, VertexTextureCoordinates -> {{0, 0}, {2, 0}, {2, 2}, {0, 2}}]}, Lighting -> "Neutral"]}VertexColorsはテクスチャマッピングに先立つ:
Graphics3D[{Texture[[image]], CrossingPolygon[{{-1, -1, -1}, {1, -1, -1}, {1, 1, -1}, {-1, 1, -1}}, VertexTextureCoordinates -> {{0, 0}, {1, 0}, {1, 1}, {0, 1}},
VertexColors -> {Red, Green, Blue, Purple}]}, Lighting -> "Neutral"]アプリケーション (3)
基本的なアプリケーション (1)
contours = {IconizedObject[«[image]»], IconizedObject[«[image]»], IconizedObject[«[image]»]};
Grid[{{"self-intersecting", "overlay", "nested"},
Graphics[Line[#], ImageSize -> {80, 80}]& /@ contours,
Graphics[CrossingPolygon[#], ImageSize -> {80, 80}]& /@ contours}, Spacings -> {Automatic, {0, 1.5, 1}}, Dividers -> {None, {2 -> GrayLevel[.5], -2 -> Directive[GrayLevel[.2], Dotted]}}]コンピュータグラフィックス (1)
特性と関係 (3)
CrossingPolygonは,事実上,単一の輪郭線に関しては評価するとPolygonになる:
pts = {{0.35, 0.2}, {0.9, 0.75}, {0.1, 0.55}, {0.9, 0.35}, {0.42, 0.9}};Graphics /@ {CrossingPolygon[pts], Polygon[pts]}CrossingPolygonは,一般に,複数の交差がある輪郭線についてはPolygonとは異なる:
pts = IconizedObject[«[image]»];Graphics /@ {CrossingPolygon[pts], Polygon[pts]}WindingPolygonは,別の多角形の輪郭線である:
pts = {{0.35, 0.2}, {0.9, 0.75}, {0.1, 0.55}, {0.9, 0.35}, {0.42, 0.9}};Graphics /@ {CrossingPolygon[pts], WindingPolygon[pts]}考えられる問題 (1)
CrossingPolygon中の点はすべて平面上になければならない:
CrossingPolygon[{{0, 0, 0}, {1, 1, 0}, {0, 1, 0}, {0, 0, 1}}]テキスト
Wolfram Research (2019), CrossingPolygon, Wolfram言語関数, https://reference.wolfram.com/language/ref/CrossingPolygon.html.
CMS
Wolfram Language. 2019. "CrossingPolygon." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CrossingPolygon.html.
APA
Wolfram Language. (2019). CrossingPolygon. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CrossingPolygon.html
BibTeX
@misc{reference.wolfram_2026_crossingpolygon, author="Wolfram Research", title="{CrossingPolygon}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/CrossingPolygon.html}", note=[Accessed: 13-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_crossingpolygon, organization={Wolfram Research}, title={CrossingPolygon}, year={2019}, url={https://reference.wolfram.com/language/ref/CrossingPolygon.html}, note=[Accessed: 13-September-2026]}