FilledCurve[{segment1,segment2,…}]
segment1,segment2と順に続く部分からなる塗り潰された曲線である.
FilledCurve[{component1,component2,…}]
component1,component2等の独立した塗り潰された成分曲線のリストである.
FilledCurve
FilledCurve[{segment1,segment2,…}]
segment1,segment2と順に続く部分からなる塗り潰された曲線である.
FilledCurve[{component1,component2,…}]
component1,component2等の独立した塗り潰された成分曲線のリストである.
詳細とオプション
- FilledCurveはGraphics(二次元グラフィックス)で使える.
- FilledCurve[segment]はFilledCurve[{segment}]に等しい.
- segmenti の可能な形式
-
Line[{pt1,pt2,…}] 線 BezierCurve[{pt1,pt2,…},…] ベジエ(Bézier)曲線 BSplineCurve[{pt1,pt2,…},…] Bスプライン曲線 - segmenti における最初の点は,segmenti-1における最後の点であるとされる.FilledCurve[{pr1[{p1,…,pi}],pr2[{q1,…,qj}],…}]は,FilledCurve[{pr1[{p1,…,pi}],pr2[{pi,q1,…,qj}],…}]に等しい.
- 塗り潰された曲線は,非凸で,自らと交差することが可能である.自身と交差する曲線は,それぞれの交差点で塗り潰す場所と塗り潰さない場所を交互にする奇遇規則に従って塗り潰される.
- FilledCurve[{component1,component2,…}]は,それぞれの成分曲線を別々の閉曲線として扱うが,すべてが同じ曲線の部分であるかのように,塗潰しの動作は決定される.
- 座標は以下を使って指定できる.
-
{x,y} 通常座標 Scaled[{x,y}] スケールされた座標 ImageScaled[{x,y}] 画像がスケールされた座標 Offset[{dx,dy},{x,y}] 絶対オフセット座標 - 各部分の個々の座標と座標のリストは,Dynamicオブジェクトでもよい.
- FaceFormとEdgeFormを使って内部と境界をどのようにレンダリングするかを指定することができる.
- 辺の太さは,ThicknessかAbsoluteThicknessを使っても,EdgeFormでThick,Thin等を使っても指定できる.
- 辺の破線は,DashingかAbsoluteDashingを使っても,EdgeFormでDashed,Dotted等を使っても指定できる.FilledCurveについては,破線は各成分曲線のそれぞれも部分すべてについて計算される.
- 辺の色づけと透過性は,EdgeFormでCMYKColor,GrayLevel,Hue,Opacity,RGBColorのいずれかを使って指定できる.
- 曲線部分の結合は,JoinFormを使って指定できる.
- 面の色付けと透過性は,FaceFormでCMYKColor,GrayLevel,Hue,Opacity,RGBColorのいずれかを使って指定できる.
- テクスチャはTextureを使って適用することができ,曲線について指定されたVertexTextureCoordinates オプションを使って曲線にマップされる.
- Lineに対するVertexColorsとVertexNormalsのオプションは,FilledCurveのコンストラクト内では何の効果もない.
例題
すべて開く すべて閉じる例 (4)
a = {{-1, 0}, {0, 1}, {1, 0}};Graphics[FilledCurve[{BezierCurve[a]}]]a = {{-1, 0}, {0, 1}, {1, 0}};b = {{0, -(2/3)}, {-1, 0}};Graphics[FilledCurve[{BezierCurve[a], Line[b]}]]pts = {{0, 1}, {-1, -(1/2)}, {1, -(1/2)}};Graphics[FilledCurve[{{Line[2pts]}, {Line[pts]}}]]Graphics[FilledCurve[{{Line[pts]}, {Line[TranslationTransform[{1, (1/2)}][pts]]}}]]a = {{-1, 0}, {0, 1}, {1, 0}};b = {{0, -(2/3)}, {-1, 0}};curve = FilledCurve[{{BezierCurve[2a], Line[2b]}, {BezierCurve[a], Line[b]}}];{Graphics[{Pink, curve}], Graphics[{EdgeForm[Thick], Pink, curve}], Graphics[{EdgeForm[Directive[Thick, Dashed, Blue]], Pink, curve}]}Graphics[{Texture[ExampleData[{"TestImage", "House"}]], FilledCurve[{{BezierCurve[2a], Line[2b]}, {BezierCurve[a], Line[b]}}, VertexTextureCoordinates -> {{{0, (1/2)}, {(1/2), 1}, {1, (1/2)}, {(1/2), (1/12)}, {0, (1/2)}}, {{(1/4), (1/2)}, {(1/2), (3/4)}, {(3/4), (1/2)}, {(1/2), (7/24)}, {(1/4), (1/2)}}}]}]スコープ (15)
グラフィックス (9)
指定 (3)
Graphics[{Pink, EdgeForm[Blue], FilledCurve[Line[{{-1, 0}, {-1, 1}, {0, 2}, {1, 1}, {1, 0}}]]}]Graphics[{Pink, EdgeForm[Blue], FilledCurve[BezierCurve[{{-1, 0}, {-1, 2}, {1, 2}, {1, 0}}]]}]Graphics[{Pink, EdgeForm[Blue], FilledCurve[BSplineCurve[{{-1, 0}, {-1, 1}, {0, 0}, {1, 1}, {1, 0}}]]}]Graphics[{Pink, EdgeForm[Blue], FilledCurve[{BSplineCurve[{{-2, 0}, {-1, 1}, {0, -1}, {1, 1}, {2, 0}}], Line[{{2, -1}, {-2, -1}}]}]}]Graphics[{Pink, EdgeForm[Blue], FilledCurve[{{Line[{{-2, 0}, {-2, 2}, {0, 4}, {2, 2}, {2, 0}}]}, {Line[{{-1, 1}, {-1, 2}, {0, 3}, {1, 2}, {1, 1}}]}}]}]pts = {{0, 1}, {-(Sqrt[3]/2), -(1/2)}, {(Sqrt[3]/2), -(1/2)}};Graphics[{Pink, EdgeForm[Blue], FilledCurve[{{Line[4pts]}, {Line[TranslationTransform[{-1, 0}][pts]]}, {Line[TranslationTransform[{1, 0}][pts]]}}]}]Graphics[{Pink, EdgeForm[Blue], FilledCurve[{{Line[3pts]}, {Line[2pts]}, {Line[pts]}}]}]Graphics[{Pink, EdgeForm[Blue], FilledCurve[{{Line[pts]},
{Line[TranslationTransform[{(Sqrt[3]/2), (1/2)}][pts]]}, {Line[TranslationTransform[{Sqrt[3], 1}][pts]]}}]}]スタイル付け (3)
Table[Graphics[{c, FilledCurve[{{BSplineCurve[{{-2, 0}, {-2, 2}, {0, 4}, {2, 2}, {2, 0}}]}, {BSplineCurve[{{-1, 1}, {-1, 2}, {0, 3}, {1, 2}, {1, 1}}]}}]}], {c, {Red, Green, Blue, Yellow}}]FaceFormとEdgeFormを使って内側と境界のスタイルが指定できる:
Graphics[{FaceForm[Pink], EdgeForm[Directive[Dashed, Thick, Blue]], FilledCurve[{{BSplineCurve[{{-2, 0}, {-2, 2}, {0, 4}, {2, 2}, {2, 0}}]}, {BSplineCurve[{{-1, 1}, {-1, 2}, {0, 3}, {1, 2}, {1, 1}}]}}]}]JoinFormを使って境界の結合タイプが指定できる:
a = {{-2, 0}, {0, 2}, {2, 0}, {0, -2}};curve = FilledCurve[{{Line[2a]}, {Line[a]}}];{Graphics[{EdgeForm[{JoinForm["Bevel"], Thickness[0.05]}], Pink, curve}, PlotRange -> 5], Graphics[{EdgeForm[{JoinForm["Meter"], Thickness[0.05]}], Pink, curve}, PlotRange -> 5]Graphics[{EdgeForm[{JoinForm["Round"], Thickness[0.05]}], Pink, curve}, PlotRange -> 5]}座標 (3)
Scaled座標を使う:
Graphics[FilledCurve[BezierCurve[{Scaled[{0, 0}], Scaled[{.5, 1}], Scaled[{1, 0}]}]], Frame -> True]ImageScaled座標を使う:
Graphics[FilledCurve[BezierCurve[{ImageScaled[{0, 0}], ImageScaled[{.5, 1}], ImageScaled[{1, 0}]}]], Frame -> True]Offset座標を使う:
Graphics[FilledCurve[BezierCurve[{Offset[{10, 10}, {0, 0}], Offset[{0, 50}, {.5, 1}], Offset[{-10, 10}, {1, 0}]}]], Frame -> True]領域 (6)
RegionEmbeddingDimension[FilledCurve[{BSplineCurve[{{Subscript[c, 1], Subscript[c, 2]}, {Subscript[c, 3], Subscript[c, 4]}, {Subscript[c, 5], Subscript[c, 6]}}]}]]RegionDimension[FilledCurve[{BSplineCurve[{{Subscript[c, 1], Subscript[c, 2]}, {Subscript[c, 3], Subscript[c, 4]}, {Subscript[c, 5], Subscript[c, 6]}}]}]]{RegionMember[FilledCurve[{BSplineCurve[{{0, 0}, {1, 1}, {2, -1}}]}], {0, 0}], RegionMember[FilledCurve[{BSplineCurve[{{0, 0}, {1, 1}, {2, -1}}]}], {1, 2}]}ℛ = FilledCurve[{BSplineCurve[{{0, 0}, {1, 1}, {2, -1}}]}];{ArcLength[ℛ], RegionMeasure[ℛ]}c = RegionCentroid[ℛ]Graphics[{{Yellow, ℛ}, {Red, Point[c]}}]ℛ = FilledCurve[{BSplineCurve[{{0, 0}, {1, 1}, {2, -1}}]}];{RegionDistance[ℛ, {1, 1}], RegionDistance[ℛ, {0, 0}]}{Plot3D[Evaluate@RegionDistance[ℛ, {x, y}], {x, -2, 2}, {y, -2, 2}, MeshFunctions -> {#3&}, Mesh -> 5, Exclusions -> Norm[{x, y}] == 1], ContourPlot[Evaluate@RegionDistance[ℛ, {x, y}], {x, -3, 4}, {y, -3, 3}, Contours -> {{0.5, Red}, {1, Green}, {1.5, Blue}}]}ℛ = FilledCurve[{BSplineCurve[{{0, 0}, {1, 1}, {2, -1}}]}];{SignedRegionDistance[ℛ, {1, 1}], SignedRegionDistance[ℛ, {0, 0}]}Plot3D[SignedRegionDistance[ℛ, {x, y}], {x, -2, 2}, {y, -2, 2}, Exclusions -> Norm[{x, y}] == 1, Mesh -> None]ℛ = FilledCurve[{BSplineCurve[{{0, 0}, {1, 1}, {2, -1}}]}];BoundedRegionQ[ℛ]rr = RegionBounds[ℛ]Graphics[{{EdgeForm[Directive[Dashed, Red]], Opacity[0.1], Yellow, Rectangle@@Transpose[rr]}, ℛ}]一般化と拡張 (2)
各曲線部分は,細かい制御のためにそれ自身のオプションを取ることができる:
pts = {{0., -0.5}, {0.5, -0.5}, {0.5, 0.5}, {0., 0.5}, {-0.5, 0.5}, {-0.5, -0.5}, {0., -0.5}};
w = {1, .5, .5, 1, .5, .5, 1};
k = {0, 0, 0, 1 / 4, 1 / 2, 1 / 2, 3 / 4, 1, 1, 1};Graphics[{Pink, EdgeForm[Blue], FilledCurve[{{BSplineCurve[2pts, SplineDegree -> 2, SplineKnots -> k, SplineWeights -> w]}, {BSplineCurve[pts, SplineDegree -> 2, SplineKnots -> k, SplineWeights -> w]}}]}]デフォルトでベジエセグメントは,継ぎ目の接線を考慮せずに繋げられる:
Graphics[{Pink, EdgeForm[Blue], FilledCurve[{{Line[{{0, 0}, {2, 2}}], BezierCurve[{{4, 2}, {5, 1}, {6, 0}}]}}]}]Automaticをベジエセグメントの第1座標に使って,継ぎ目を滑らかにすることができる:
Graphics[{Pink, EdgeForm[Blue], FilledCurve[{{Line[{{0, 0}, {2, 2}}], BezierCurve[{Automatic, {5, 1}, {6, 0}}]}}]}]オプション (2)
VertexTextureCoordinates (2)
Graphics[{Texture[ExampleData[{"TestImage", "House"}]], FilledCurve[{BezierCurve[{{-1, 0}, {0, 1}, {1, 0}}]}, VertexTextureCoordinates -> {{0, 0}, {1 / 2, 1}, {1, 0}}]}]a = {{-1, 0}, {0, 1}, {1, 0}};b = {{0, -(2/3)}, {-1, 0}};Graphics[{Texture[ExampleData[{"TestImage", "House"}]], FilledCurve[{{BezierCurve[2a], Line[2b]}, {BezierCurve[a], Line[b]}}, VertexTextureCoordinates -> {{{0, (1/2)}, {(1/2), 1}, {1, (1/2)}, {(1/2), (1/12)}, {0, (1/2)}}, {{(1/4), (1/2)}, {(1/2), (3/4)}, {(3/4), (1/2)}, {(1/2), (7/24)}, {(1/4), (1/2)}}}]}]アプリケーション (5)
グラフィックス,グリフ等 (2)
a = FilledCurve[{{Line[{{2, 3}, {0.8125, 0.625}}],
BezierCurve[{{0.6875, 0.375}, {0.375, 0.25}, {1.125, 0.25}}, SplineDegree -> 2], BezierCurve[{{0.8125, 0.375}, {0.9375, 0.625}}],
Line[{{1.3125, 1.375}, {2.4375, 1.375}, {2.8125, 0.625}}],
BezierCurve[{{2.9375, 0.375}, {2.625, 0.25}, {3.625, 0.25}}, SplineDegree -> 2], BezierCurve[{{3.3125, 0.375}, {3.1875, 0.625}}]},
{Line[{{1.875, 2.5}, {1.375, 1.5}, {2.375, 1.5}}]}}];Graphics[a]Graphics[{EdgeForm[Blue], LightGray, a}]g = First[[image]];Head[g]Graphics[{EdgeForm[Gray],
Table[{Hue[(t/2 π)], Rotate[g, t, {0, 0}]}, {t, 0, 2 π, (π/6)}]}]テキストの効果 (1)
PDFを中間形式として使って,グラフィックスの塗り潰された曲線としてテキストをインポートする:
text = First[First[ImportString[ExportString[Style["Wolfram", Italic, FontSize -> 24, FontFamily -> "Times"], "PDF"], {"PDF", "PageGraphics"}, "TextMode" -> "Outlines"]]];Graphics[{EdgeForm[Black], ColorData["Crayola", "Sunglow"], text}]Graphics[{Gray, Translate[text, {1, -1}], Red, text}]Graphics[{EdgeForm[Opacity[0.5]], Table[{ColorData["TemperatureMap"][t], Translate[text, 4{-t, t}]}, {t, 0, 1, (1/10)}]}, ImageSize -> Medium]テキストバナー (1)
text = First[First[ImportString[ExportString[Style["MATHEMATICA", FontSize -> 72, FontFamily -> "Geogia"], "PDF"], {"PDF", "PageGraphics"}, "TextMode" -> "Outlines"]]];Graphics[text, Frame -> True]BSplineFunctionを使ってバナーの包絡関数を作成する:
top = BSplineFunction[{60, 200, 160}];
middle = BSplineFunction[{45, 150, -30, 45}];bottom = BSplineFunction[{-90, -100, 30}];Plot[{top[t], middle[t], bottom[t]}, {t, 0, 1}]関数を定義して,
座標を
座標と包絡関数によってスケールし直す:
stretch[x_, t_, f_, g_] := Rescale[x, {10, 60}, {f[t], g[t]}]banner1 = text /. {x_Real, y_Real} :> {x, stretch[y, (x/430), bottom, middle]};
banner2 = text /. {x_Real, y_Real} :> {430 - x, stretch[y, 1 - (x/430), middle, top]};Graphics[{EdgeForm[Black], Blue, banner1, Red, banner2}]モザイク細工 (1)
e1 = {{-(Sqrt[3]/2), -(1/2)}, {-(Sqrt[3]/6), 0}, {(Sqrt[3]/6), -1}, {(Sqrt[3]/2), -(1/2)}};Graphics[BezierCurve[{e1}], Axes -> True]e2 = Map[RotationTransform[120Degree], e1];
e3 = Map[RotationTransform[120Degree], e2];塗り潰された曲線を使って,ベジエ曲線の辺を持つ1つのタイルを作成する:
tile = FilledCurve[{BezierCurve[e1], BezierCurve[Rest[e2]], BezierCurve[Rest[e3]]}];Graphics[{EdgeForm[Gray], FaceForm[Opacity[(1/2), Blue]], tile}, Axes -> True, Frame -> True, PlotRange -> 1]Graphics[{EdgeForm[Opacity[(1/4), White]], FaceForm[Red], Table[With[{p = OddQ[i]⊻OddQ[j]} , {If[p, ColorData["HTML", "Crimson"], ColorData["HTML", "DarkBlue"]], Translate[Rotate[tile, (π/3) Boole[p], {0, 0}], {(Sqrt[3] i/2), (3 j/2) + (1/2) Boole[p]}]}], {i, 10}, {j, 4}]}]% /. BezierCurve[a_] :> Line[a]特性と関係 (1)
デフォルトで塗り潰された曲線の各成分は,最後に線分を加えることによって,自身を閉じる:
a = {{-1, 0}, {0, 1}, {1, 0}};b = {{0, -(2/3)}};Graphics[{EdgeForm[Blue], Pink, FilledCurve[{{BezierCurve[2a], Line[2b]}, {BezierCurve[a], Line[b]}}]}]反対に,JoinedCurveはデフォルトでは成分を閉じない:
Graphics[JoinedCurve[{{BezierCurve[2a], Line[2b]}, {BezierCurve[a], Line[b]}}]]CurveClosedオプションを使って曲線の成分を閉じる:
Graphics[JoinedCurve[{{BezierCurve[2a], Line[2b]}, {BezierCurve[a], Line[b]}}, CurveClosed -> True]]考えられる問題 (1)
セグメント内で指定されたVertexColorsオプションは無視される:
Graphics[{EdgeForm[Thick], Pink, FilledCurve[Line[{{0, 0}, {1, 0}, {1, 1}, {0, 1}}, VertexColors -> {Red, Green, Blue, Yellow}]]}]おもしろい例題 (2)
Module[{a = FilledCurve[{{Line[{{2, 3}, {0.8125, 0.625}}],
BezierCurve[{{0.6875, 0.375}, {0.375, 0.25}, {1.125, 0.25}}, SplineDegree -> 2], BezierCurve[{{0.8125, 0.375}, {0.9375, 0.625}}],
Line[{{1.3125, 1.375}, {2.4375, 1.375}, {2.8125, 0.625}}],
BezierCurve[{{2.9375, 0.375}, {2.625, 0.25}, {3.625, 0.25}}, SplineDegree -> 2], BezierCurve[{{3.3125, 0.375}, {3.1875, 0.625}}]},
{Line[{{1.875, 2.5}, {1.375, 1.5}, {2.375, 1.5}}]}}]}, Graphics[Table[{EdgeForm[Black], Hue[RandomReal[]], Translate[Rotate[Scale[a, RandomReal[5]], RandomReal[2Pi]], RandomReal[20, {2}]]}, {30}]]]Module[{l = Cases[First[First[ImportString[ExportString[Style["Mathematica", Bold, FontFamily -> "Helvetica", FontSize -> 12], "PDF"], {"PDF", "PageGraphics"}, "TextOutlines" -> True]]], FilledCurve[a__] :> {EdgeForm[Black], Yellow, FilledCurve[a]}, Infinity]}, Animate[Graphics[{l /. {x_Real, y_Real} :> {x, y + 6 Sin[(x/12) + t]}}], {t, 0, 8 π}, AnimationRunning -> False, SaveDefinitions -> True]]関連するガイド
テキスト
Wolfram Research (2010), FilledCurve, Wolfram言語関数, https://reference.wolfram.com/language/ref/FilledCurve.html (2018年に更新).
CMS
Wolfram Language. 2010. "FilledCurve." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2018. https://reference.wolfram.com/language/ref/FilledCurve.html.
APA
Wolfram Language. (2010). FilledCurve. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FilledCurve.html
BibTeX
@misc{reference.wolfram_2026_filledcurve, author="Wolfram Research", title="{FilledCurve}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/FilledCurve.html}", note=[Accessed: 03-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_filledcurve, organization={Wolfram Research}, title={FilledCurve}, year={2018}, url={https://reference.wolfram.com/language/ref/FilledCurve.html}, note=[Accessed: 03-November-2026]}