BSplineFunction[{pt1,pt2,…}]
制御点 ptiで定義された曲線のBスプライン関数を表す.
BSplineFunction[array]
曲面またはより高次元の多様体のBスプライン関数を表す.
BSplineFunction
BSplineFunction[{pt1,pt2,…}]
制御点 ptiで定義された曲線のBスプライン関数を表す.
BSplineFunction[array]
曲面またはより高次元の多様体のBスプライン関数を表す.
詳細とオプション
- BSplineFunctionは,基底スプライン,あるいは不均一有理Bスプライン(NURBS)としても知られている.
- BSplineFunction[…][u]はパラメータ u に対応するBスプライン曲線上の点を返す.
- BSplineFunction[…][u,v,…]はパラメータ u, v, … に対応する一般的なBスプライン多様体上の点を返す.
- BSplineFunction[{pt1,pt2,…}]で表される曲線の埋込み次元はリスト ptiの長さによって与えられる.
- BSplineFunction[array]は任意次元の多様体を表す任意の深さの配列を扱うことができる.
- BSplineFunction[array]で表される多様体の次元はArrayDepth[array]-1で与えられる.配列の最低レベルにあるリストの長さが埋込み次元を定義する.
- BSplineFunction[array,d]は,d 変数のBスプライン関数を作成する.
- パラメータ u, v, … はデフォルトで,曲線あるいはその他の多様体の領域上で0から1の範囲に納まる.
- 使用可能なオプション
-
SplineDegree Automatic 多項式基底の次数 SplineKnots Automatic スプラインの結び目の列 SplineWeights Automatic 制御点の重み SplineClosed False スプラインを閉じるかどうか - デフォルトで,BSplineFunctionは三次スプラインを与える.
- オプション設定のSplineDegree->d はもとになる多項式基底が最高次数 d を持つように指定する.
- デフォルトで,結び目はパラメータ空間で一様に選ばれ,曲線が最初の制御点で始まり最後の制御点で終るように追加的な結び目が加えられる.
- SplineKnotsの明示的な設定で,多項式基底の次数は指定された結び目と制御点の数から決定される.
- デフォルト設定のSplineWeights->Automaticでは,すべての制御点が多項式Bスプライン関数に対応する等しい重みを持つように選ばれる.
- SplineClosed->{c1,c2,…}の設定では,境界は ciがTrueである i の方向に接続される.
例題
すべて開く すべて閉じる例 (2)
pts = {{1, 1}, {2, 3}, {3, -1}, {4, 1}, {5, 0}};f = BSplineFunction[pts]f[.5]Show[Graphics[{Red, Point[pts], Green, Line[pts]}, Axes -> True], ParametricPlot[f[t], {t, 0, 1}]]pts = Table[{ Cos[2Pi u / 6]Cos[v], Sin[2Pi u / 6]Cos[v], v}, {u, 6}, {v, -1, 1, 1 / 2}];f = BSplineFunction[pts, SplineClosed -> {True, False}]Show[Graphics3D[{PointSize[Medium], Red, Map[Point, pts]}], Graphics3D[{Gray, Line[pts], Gray, Line[Transpose[pts]]}], ParametricPlot3D[f[u, v], {u, 0, 1}, {v, 0, 1}]]スコープ (4)
f = BSplineFunction[RandomReal[1, {10, 2}]]f[.5]ParametricPlot[f[u], {u, 0, 1}]pts = Table[{i, RandomReal[10], RandomReal[10]}, {i, 10}];g = BSplineFunction[RandomReal[1, {10, 3}]]g[.5]ParametricPlot3D[g[u], {u, 0, 1}]f = BSplineFunction[RandomReal[1, {10, 10, 1}]]f[0.5, 0.5]Plot3D[f[x, y], {x, 0, 1}, {y, 0, 1}]f = BSplineFunction[RandomReal[1, {5, 5, 5, 1}]]f[.5, .5, .5]ContourPlot3D[f[u, v, w], {u, 0, 1}, {v, 0, 1}, {w, 0, 1}, Mesh -> None]一般化と拡張 (1)
SparseArrayはBSplineFunctionとともに使うことができる:
pts = SparseArray[{i_, j_} /; Abs[i - j] < 3 :> Cos[Abs[i - j]], {6, 6}]f = BSplineFunction[pts, 2]Plot3D[f[u, v], {u, 0, 1}, {v, 0, 1}]オプション (6)
SplineDegree (2)
pts = RandomReal[1, {10, 2}];ParametricPlot[BSplineFunction[pts, SplineDegree -> 1][u], {u, 0, 1}]ParametricPlot[BSplineFunction[pts, SplineDegree -> 2][u], {u, 0, 1}]pts = RandomReal[1, {7, 5, 1}];Plot3D[BSplineFunction[pts, SplineDegree -> {1, 3}][u, v], {u, 0, 1}, {v, 0, 1}, Mesh -> None]SplineKnots (3)
SplineKnots->Automaticは,曲線が全体的に滑らかになるようにして結び目を生成する:
pts = {{0, 0}, {0, 2}, {2, 3}, {4, 0}, {6, 3}, {8, 2}, {8, 0}};Graphics[{Green, Line[pts], Red, Point[pts], StandardGray, BSplineCurve[pts, SplineKnots -> Automatic]}]結び目を繰り返すことで,曲線の滑らかさを減ずることができる:
pts = {{0, 0}, {0, 2}, {2, 3}, {4, 0}, {6, 3}, {8, 2}, {8, 0}};Graphics[{Green, Line[pts], Red, Point[pts], StandardGray, BSplineCurve[pts, SplineKnots -> {0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2}]}]pts = {{0, 0}, {0, 2}, {2, 3}, {4, 0}, {6, 3}, {8, 2}, {8, 0}};Graphics[{Green, Line[pts], Red, Point[pts], StandardGray, BSplineCurve[pts, SplineKnots -> "Unclamped"]}]固定されていない結び目をSplineClosedと組み合せると一様周期Bスプライン曲線になる:
pts = {{0, 0}, {1, 0}, {1, 1}, {0, 1}};Graphics[{FaceForm[], EdgeForm[Green], Polygon[pts], Red, Point[pts], StandardGray, BSplineCurve[pts, SplineClosed -> True, SplineKnots -> "Unclamped"]}]SplineWeights (1)
pts = {{0, 0}, {1, 1}, {2, -1}, {3, 0}, {4, -2}, {5, 1}};Graphics[{Point[pts], BSplineCurve[pts, SplineWeights -> Automatic]}]Graphics[{Point[pts], BSplineCurve[pts, SplineWeights -> {1, 1, 10, 1, 1, 1}]}]関連するガイド
-
▪
- スプライン ▪
- 曲線のフィットと近似の関数
テキスト
Wolfram Research (2008), BSplineFunction, Wolfram言語関数, https://reference.wolfram.com/language/ref/BSplineFunction.html.
CMS
Wolfram Language. 2008. "BSplineFunction." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/BSplineFunction.html.
APA
Wolfram Language. (2008). BSplineFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BSplineFunction.html
BibTeX
@misc{reference.wolfram_2026_bsplinefunction, author="Wolfram Research", title="{BSplineFunction}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/BSplineFunction.html}", note=[Accessed: 13-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_bsplinefunction, organization={Wolfram Research}, title={BSplineFunction}, year={2008}, url={https://reference.wolfram.com/language/ref/BSplineFunction.html}, note=[Accessed: 13-August-2026]}