JoinedCurve[{segment1,segment2,…}]
segment1,segment2等順に続く線分からなる曲線である.
JoinedCurve[{component1,component2,…}]
別々の成分曲線component1,component2等のリストである.
JoinedCurve
JoinedCurve[{segment1,segment2,…}]
segment1,segment2等順に続く線分からなる曲線である.
JoinedCurve[{component1,component2,…}]
別々の成分曲線component1,component2等のリストである.
詳細とオプション
- JoinedCurveは,Graphics(二次元グラフィックス)で使える.
- JoinedCurve[segment]は,JoinedCurve[{segment}]に等しい.
- segmenti に使える形式
-
Line[{pt1,pt2,…}] 直線 BezierCurve[{pt1,pt2,…},…] ベジエ(Bézier)曲線 BSplineCurve[{pt1,pt2,…},…] Bスプライン曲線 - segmenti の最初の点は,segmenti-1の最後の点とされる.JoinedCurve[{pr1[{p1,…,pi}],pr2[{q1,…,qj}],…}]は,JoinedCurve[{pr1[{p1,…,pi}],pr2[{pi,q1,…,qj}],…}]に等しい.
- 設定JoinedCurve[{component1,component2,…},CurveClosed->{close1,close2,…}]は,個々の成分曲線が閉じられるべきであるかどうかを指定する.
- JoinedCurve[{component1,…},CurveClosed->close]は,すべての成分曲線が閉じられるべきであることを示す.
- 以下を使って座標を指定することができる
-
{x,y} 通常の座標 Scaled[{x,y}] スケールした座標 ImageScaled[{x,y}] 画像をスケールした座標 Offset[{dx,dy},{x,y}] 絶対オフセット座標 - 線分の個々の座標と座標のリストは,Dynamicオブジェクトでもよい.
- 曲線の太さは,ThicknessあるいはAbsoluteThicknessを使っても,Thick,Thin等を使っても,指定することができる.
- 曲線の破線は,DashingあるいはAbsoluteDashingを使っても,Dashed,Dotted等を使っても,指定することができる.
- 曲線の色付けと透過性は,CMYKColor,GrayLevel,Hue,Opacity,RGBColorのいずれかを使って指定することができる.
- 曲線線分の継ぎ目は,JoinFormを使って指定することができる.
- 曲線のキャップは,CapFormを使って指定することができる.
- Lineに対するVertexColorsおよびVertexNormalsのオプションは,JoinedCurveのコンストラクト内では効果がない.
例題
すべて開く すべて閉じる例 (4)
a = {{-1, 0}, {0, 1}, {1, 0}};b = {{0, -(2/3)}, {-1, 0}};Graphics[JoinedCurve[{BezierCurve[a], Line[b]}]]pts = {{-1, -1 / 2}, {0, 1}, {1, -1 / 2}};Graphics[JoinedCurve[{{Line[2pts]}, {Line[pts]}}]]Graphics[JoinedCurve[{{Line[2pts]}, {Line[pts]}}, CurveClosed -> True]]a = {{-1, 0}, {0, 1}, {1, 0}};b = {{0, -(2/3)}, {-1, 0}};curve = JoinedCurve[{{BezierCurve[2a], Line[2b]}, {BezierCurve[a], Line[b]}}];{Graphics[{Dashed, curve}], Graphics[{Pink, curve}], Graphics[{Thick, curve}], Graphics[{Thick, Dashed, Pink, curve}]}Graphics[{Arrowheads[{-0.1, 0.1}], Arrow[JoinedCurve[{Line[{{0, 0}, {1, 0}}], BezierCurve[{{2, 0}, {2, 1}}]}]]}]スコープ (18)
グラフィックス (12)
指定 (3)
Graphics[JoinedCurve[Line[{{-1, 0}, {-1, 1}, {0, 2}, {1, 1}, {1, 0}}]]]Graphics[JoinedCurve[Line[{{-1, 0}, {-1, 1}, {0, 2}, {1, 1}, {1, 0}}], CurveClosed -> True]]Graphics[JoinedCurve[BezierCurve[{{-1, 0}, {-1, 2}, {1, 2}, {1, 0}}]]]Graphics[JoinedCurve[BezierCurve[{{-1, 0}, {-1, 2}, {1, 2}, {1, 0}}], CurveClosed -> True]]Graphics[JoinedCurve[BSplineCurve[{{-1, 0}, {-1, 1}, {0, 0}, {1, 1}, {1, 0}}]]]Graphics[JoinedCurve[BSplineCurve[{{-1, 0}, {-1, 1}, {0, 0}, {1, 1}, {1, 0}}], CurveClosed -> True]]Graphics[JoinedCurve[{BSplineCurve[{{-2, 0}, {-1, 1}, {0, -1}, {1, 1}, {2, 0}}], Line[{{2, -1}, {-2, -1}}]}, CurveClosed -> True]]Graphics[JoinedCurve[{{Line[{{-2, 0}, {-2, 2}, {0, 4}, {2, 2}, {2, 0}}]}, {Line[{{-1, 1}, {-1, 2}, {0, 3}, {1, 2}, {1, 1}}]}}, CurveClosed -> True]]pts = {{-(Sqrt[3]/2), -(1/2)}, {0, 1}, {(Sqrt[3]/2), -(1/2)}};Graphics[JoinedCurve[{{BezierCurve[3pts]}, { Line[2pts]}, {BezierCurve[pts]}}, CurveClosed -> True]]スタイル付け (6)
Table[Graphics[{Thickness[i], JoinedCurve[{{BSplineCurve[{{-2, 0}, {-2, 2}, {0, 4}, {2, 2}, {2, 0}}]}, {BSplineCurve[{{-1, 1}, {-1, 2}, {0, 3}, {1, 2}, {1, 1}}]}}, CurveClosed -> True]}], {i, {.005, .025, .05}}]Table[Graphics[{d, JoinedCurve[{{BSplineCurve[{{-2, 0}, {-2, 2}, {0, 4}, {2, 2}, {2, 0}}]}, {BSplineCurve[{{-1, 1}, {-1, 2}, {0, 3}, {1, 2}, {1, 1}}]}}, CurveClosed -> True]}], {d, {Dotted, Dashed, DotDashed}}]Table[Graphics[{c, JoinedCurve[{{BSplineCurve[{{-2, 0}, {-2, 2}, {0, 4}, {2, 2}, {2, 0}}]}, {BSplineCurve[{{-1, 1}, {-1, 2}, {0, 3}, {1, 2}, {1, 1}}]}}, CurveClosed -> True]}], {c, {Red, Green, Blue, Orange}}]CapFormを使って各曲線成分のキャップが指定できる:
Table[Graphics[{CapForm[cap], Thickness[.1], JoinedCurve[{{BSplineCurve[{{-2, 0}, {-2, 2}, {0, 4}, {2, 2}, {2, 0}}]}, {BSplineCurve[{{-1, 1}, {-1, 2}, {0, 3}, {1, 2}, {1, 1}}]}}]}, PlotLabel -> cap], {cap, {"Butt", "Round", "Square"}}]JoinFormを使って線分の結合タイプが指定できる:
a = {{-2, 0}, {0, 2}, {2, 0}, {0, -2}};curve = JoinedCurve[{{Line[2a]}, {Line[a]}}];{Graphics[{JoinForm["Bevel"], Thickness[0.07], curve}, PlotRange -> 5], Graphics[{JoinForm["Meter"], Thickness[0.07], curve}, PlotRange -> 5]Graphics[{JoinForm["Round"], Thickness[0.07], curve}, PlotRange -> 5]}Arrowで曲線を包み込んで曲線による矢印を作ることができる:
Graphics[{Arrowheads[Large], Arrow[JoinedCurve[{{BSplineCurve[{{-2, 0}, {-2, 2}, {0, 4}, {2, 2}, {2, 0}}]}, {BSplineCurve[{{-1, 1}, {-1, 2}, {0, 3}, {1, 2}, {1, 1}}]}}]]}]座標 (3)
Scaled座標を使う:
Graphics[JoinedCurve[BezierCurve[{Scaled[{0, 0}], Scaled[{.5, 1}], Scaled[{1, 0}]}]], Frame -> True]ImageScaled座標を使う:
Graphics[JoinedCurve[BezierCurve[{ImageScaled[{0, 0}], ImageScaled[{.5, 1}], ImageScaled[{1, 0}]}]], Frame -> True]Offset座標を使う:
Graphics[JoinedCurve[BezierCurve[{Offset[{10, 10}, {0, 0}], Offset[{0, 50}, {.5, 1}], Offset[{-10, 10}, {1, 0}]}]], Frame -> True]領域 (6)
RegionEmbeddingDimension[JoinedCurve[{BSplineCurve[{{Subscript[c, 1], Subscript[c, 2]}, {Subscript[c, 3], Subscript[c, 4]}, {Subscript[c, 5], Subscript[c, 6]}}]}]]RegionDimension[JoinedCurve[{BSplineCurve[{{Subscript[c, 1], Subscript[c, 2]}, {Subscript[c, 3], Subscript[c, 4]}, {Subscript[c, 5], Subscript[c, 6]}}]}]]{RegionMember[JoinedCurve[{BezierCurve[{{-1, 0}, {0, 1}, {1, 0}}], Line[{{0, -(2/3)}, {-1, 0}}]}], {1, 0}], RegionMember[JoinedCurve[{BezierCurve[{{-1, 0}, {0, 1}, {1, 0}}], Line[{{0, -(2/3)}, {-1, 0}}]}], {1, 2}]}ℛ = JoinedCurve[{BezierCurve[{{-1, 0}, {0, 1}, {1, 0}}], Line[{{0, -(2/3)}, {-1, 0}}]}];{ArcLength[ℛ], RegionMeasure[ℛ]}c = RegionCentroid[ℛ]Graphics[{{Gray, ℛ}, {Red, Point[c]}}]ℛ = JoinedCurve[{BezierCurve[{{-1, 0}, {0, 1}, {1, 0}}], Line[{{0, -(2/3)}, {-1, 0}}]}];{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}}]}ℛ = JoinedCurve[{BezierCurve[{{-1, 0}, {0, 1}, {1, 0}}], Line[{{0, -(2/3)}, {-1, 0}}]}];{SignedRegionDistance[ℛ, {1, 0}], SignedRegionDistance[ℛ, {0, 0}]}Plot3D[SignedRegionDistance[ℛ, {x, y}], {x, -2, 2}, {y, -2, 2}, Exclusions -> Norm[{x, y}] == 1, Mesh -> None]ℛ = JoinedCurve[{BezierCurve[{{-1, 0}, {0, 1}, {1, 0}}], Line[{{0, -(2/3)}, {-1, 0}}]}];BoundedRegionQ[ℛ]rr = RegionBounds[ℛ]Graphics[{{EdgeForm[Directive[Dashed, Red]], Opacity[0.1], Yellow, Rectangle@@Transpose[rr]}, ℛ}]オプション (1)
CurveClosed (1)
Graphics[JoinedCurve[BezierCurve[{{-1, 0}, {-1, 2}, {1, 2}, {1, 0}}]]]Graphics[JoinedCurve[BezierCurve[{{-1, 0}, {-1, 2}, {1, 2}, {1, 0}}], CurveClosed -> True]]Graphics[JoinedCurve[{{Line[{{-2, 0}, {-2, 2}, {0, 4}, {2, 2}, {2, 0}}]}, {BSplineCurve[{{-1, 1}, {-1, 2}, {0, 3}, {1, 2}, {1, 1}}]}}, CurveClosed -> {True, False}]]アプリケーション (2)
a = JoinedCurve[{{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}}]}}, CurveClosed -> True];Graphics[a]g = First[[image]] /. FilledCurve[a__] :> JoinedCurve[a];Head[g]Graphics[{Thick,
Table[{Hue[(t/2 π)], Rotate[g, t, {0, 0}]}, {t, 0, 2 π, (π/6)}]}]特性と関係 (1)
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};
path = {{BSplineCurve[2pts, SplineDegree -> 2, SplineKnots -> k, SplineWeights -> w]}, {BSplineCurve[pts, SplineDegree -> 2, SplineKnots -> k, SplineWeights -> w]}};Arrowを曲線に使って,曲がった矢印を作成する:
Graphics[{Arrow[JoinedCurve[path]]}]Arrowheadsを使って,鏃の特性を指定する:
Graphics[{Arrowheads[Table[{RandomReal[{0.05, 0.1}], i}, {i, 0.1, 1, 0.1}]], Arrow[JoinedCurve[path]]}]FilledCurveと組み合せて,曲がった曲線を境界とする形を得る:
Graphics[{EdgeForm[], FaceForm[Pink], FilledCurve[path], Arrowheads[Table[{RandomReal[{0.05, 0.1}], i}, {i, 0.1, 1, 0.1}]], Arrow[JoinedCurve[path]]}]おもしろい例題 (2)
Module[{a = JoinedCurve[{{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}}]}}, CurveClosed -> True]}, Graphics[Table[{Thick, Hue[RandomReal[]], Translate[Rotate[Scale[a, RandomReal[5]], RandomReal[2Pi]], RandomReal[20, {2}]]}, {30}]]]DynamicModule[{curve = First[First[
ImportString[ExportString[Style["M8", FontFamily -> "Times", FontSize -> 72], "PDF"], {"PDF", "PageGraphics"}, "TextOutlines" -> True]]] /.
{Thickness[_] :> {},
FilledCurve[args__] :> {FaceForm[ColorData["HTML", "Crimson"]], FilledCurve[args], Dashed, Arrow[JoinedCurve[args, CurveClosed -> True]]}}},
Animate[Graphics[{
Arrowheads[{{0.05, t}, {0.05, Mod[t + (1/3), 1]}, {0.05, Mod[t + (2/3), 1]}}], curve}], {t, 0, 1}, SaveDefinitions -> True, AnimationRunning -> False]]関連するガイド
テキスト
Wolfram Research (2010), JoinedCurve, Wolfram言語関数, https://reference.wolfram.com/language/ref/JoinedCurve.html.
CMS
Wolfram Language. 2010. "JoinedCurve." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/JoinedCurve.html.
APA
Wolfram Language. (2010). JoinedCurve. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/JoinedCurve.html
BibTeX
@misc{reference.wolfram_2026_joinedcurve, author="Wolfram Research", title="{JoinedCurve}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/JoinedCurve.html}", note=[Accessed: 07-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_joinedcurve, organization={Wolfram Research}, title={JoinedCurve}, year={2010}, url={https://reference.wolfram.com/language/ref/JoinedCurve.html}, note=[Accessed: 07-July-2026]}