任意の多角形における全頂点の集合の凸包を多角形オブジェクトで返す
GeoGebraでは、任意の多角形オブジェクト(名前をpoly1とする)における全頂点の集合
{Vertex[poly1]}
の凸包は、
ConvexHull[{Vertex[poly1]}]
で得ることができる。
しかし、この方法で得られる凸包は、軌跡オブジェクトであり、多角形オブジェクトではない。
これに対して、以下の数式を、入力バーに入力して実行すれば、{Vertex[poly1]}の凸包を、多角形オブジェクトとして得ることができる。
Polygon[CopyFreeObject[Sequence[Point[ConvexHull[{Vertex[poly1]}], t / (Length[RemoveUndefined[Sequence[Intersect[ConvexHull[{Vertex[poly1]}], Element[{Vertex[poly1]}, t]], t, 1, Length[{Vertex[poly1]}]]]] + 1)], t, 0, Length[RemoveUndefined[Sequence[Intersect[ConvexHull[{Vertex[poly1]}], Element[{Vertex[poly1]}, t]], t, 1, Length[{Vertex[poly1]}]]]]]]]
利用例
追記
本記事執筆後に、よりよい方法を思いついた。下記記事を参照されたい。