60
X 7107 : 2005 (ISO 19107 : 2003)
備考 0.0(零)がstartConstrParamとendConstrParamとの間にある場合,この曲線はクロソイドの変
曲点を通り,二階微分ベクトルによって得られる曲率半径の方向は接線ベクトルに対する方向
を変える。パラメタ“t”に対する“長さ”という用語は,パラメタ空間でだけ有効であり,配
置後の弧長との関係及び曲線の座標参照系との関係は規定しない。
6.4.22.5 endParameter “endParameter”(終了パラメタ)属性は,この曲線分の終点となる変曲点からの
弧長距離である。これはフレネル積分で使用する“t”の上限であり,この曲線分の終点における構造パラ
メタである。“endConstrParam”は正負のいずれにもなりうる。
GMClothoid:: endParameter : Real
6.4.23 GMOffsetCurve
6.4.23.1 意味 変位曲線(offset curve)は,基準曲線から一定の距離にある曲線とする。これは,定義か
ら変位した曲線を構築する簡易で単純な代替手段として用いる。
6.4.23.2 baseCurve “baseCurve”(基準曲線)属性は,この曲線が変位として定義されている曲線への参
照である。
GMOffsetCurve::baseCurve : Reference<GMCurve>
6.4.23.3 distance “distance”(距離)属性は,生成した変位曲線における基準曲線からの距離とする。二
次元座標系では正のdistanceは基準曲線の左側とし,負のdistanceは基準曲線の右側とする。
GMOffsetCurve::distance : Length
Abstruct + baseCurve
GMCurveSegment
1
[{interpolation = clothoid}]
1..n
Type Type Type
GMClothoid GMSplineCurve GM OffsetCurve
+ + degree : Integer
refLocation : GMAffinePlacement + distance : Length
+scaleFactor : Number + knot : Sequence<GMKnot> + refDirection[0..1] : Vector
+startParameter : Real + controlPoints : GMPointArray
+endParameter : Real
CodeList
GMSplineCurveForm
+polylineForm
Type Type +circularArc
GMBSplineCurve GMPolynomialSpline +ellipticArc
+parabolicArc
+ curveForm[0,1] : GMSplineCurveForm +hyperbolicArc
+ vectorAtStart : Sequence<Vector>
+ knotSpec[0,1] : GMKnotType + vectorAtEnd : Sequence<Vector>
+ isPolynomial : Boolean
+ GMBSplineCurve(
deg : Integer,
pts : GMPointArray, Type [{degree = 3}]
k[0,1] : Sequence<GMKnot>, GMCubicSpline [{interpolation = "cubicSpline"}]
ks[0,1] : GMKnotType
) : GMBSplineCurve
[{degree > 0}]
Type [{interpolation = "polynomialSpline"}]
GMBezier [{vectorAtEnd. count = vectorAtStart. count = degree - 2}]
[{degree = controlPoint.count - 1}] DataType CodeList
[{interpolation = "polynomial"}] GMKnot GMKnotType
+ value : Real + uniform
+ quasiUniform
+ multiplicity : Integer
+ weight : Real + piecewiseBezier
[{(interpolation = "polynomialSpline") R (interpolation = "rationalSpline)}]
図 19 スプライン及び特殊曲線
――――― [JIS X 7107 pdf 66] ―――――
61
X 7107 : 2005 (ISO 19107 : 2003)
6.4.23.4 refDirection “refDirection”(基準方向)属性は,基準曲線からの変位曲線のベクトル方向を定
義するのに使用する。これは,座標系が二次元でdistanceが正又は負の値をもちうる場合,省略できる。
この場合,distanceは,基準曲線の接線に対して左側(正のdistance)又は右側(負のdistance)を定義す
る。
三次元において,基準曲線はすべての点で明確に定義された接線方向をもつ。基準曲線“c”上の任意の
点(パラメタ)における変位曲線は,次の方向に存在する。
s v t ただし v c.refDirection() かつ t c.tangent()
変位方向を矛盾なく定めるためには,v 爰 曲線上のすべての点でt 爰桔 じ又は反対の方向であっては
ならない。
GMOffsetCurve::refDirection : Vector
refDirectionの規定値は,地理的意味で曲線の上方を示す高さに対する局所座標軸ベクトルとする。
備考 refDirectionが局所高度軸(“上方指示”)の正の接線の場合,変位ベクトルは上方から曲線の左
方を指す。
6.4.24 GMKnot
6.4.24.1 意味 GMKnot(ノットデータ)は,スプライン曲線及びスプライン曲面のための構造パラメタ
空間を制御するのに使用する。各ノット列は,スプラインのパラメタ空間の一つの次元に対して使用され
る。このため,曲面スプラインでは,パラメタ (u,v) のそれぞれの値となる二つのノット列が存在する。
片方をi番目,もう一方をj番目のパラメタは,元のノット列からのパラメタをそれぞれ (ui) 及び (vj) と
表すと (ui,vj) となる。スプライン曲線及びスプライン曲面の各ノットは,GMKnotを使用して記述する。
6.4.24.2 value “value”(値)属性は,スプラインのノットにおけるパラメタの値とする。ノットの列は
非減少列とする。すなわち,列における各ノットの値は,直前のノットの値と等しいかより大きくなけれ
ばならない。等しいノットを連続して用いる場合,通常は,多重度を用いて処理する。
GMKnot::value : Real
6.4.24.3 multiplicity “multiplicity”(多重度)属性は,スプラインの定義に使用する(重みが等しい)ノ
ットの多重度とする。
GMKnot::multiplicity : Integer
6.4.24.4 weight “weight”(重み)属性は,スプラインのこのノットに使用する平均の重みの値とする。
GMKnot::weight : Real
6.4.25 GMNotType Bスプラインが一様であるとは,すべてのノットの多重度が1で,先行するノット
と正定数だけが異なる場合をいう。Bスプラインが疑似一様であるとは,すべてのノットが,両端では多
重度が(degree + 1)かつ他の場所では多重度が1で,先行するノットと正定数だけが異なる場合をいう。こ
のGMNotType(ノット)符号リストは,様々なスプラインのパラメタ空間におけるノットの分布を記述
するのに使用する。これは,次の値をとってよい。
− uniform : ノットの形状が一様Bスプラインを満たす。
− quasiUniform : ノットの形状が擬似一様Bスプラインを満たす。
− piecewiseBezier : ノットの形状が区間ベジェ曲線を満たす。
GMKnotType::
uniform
――――― [JIS X 7107 pdf 67] ―――――
62
X 7107 : 2005 (ISO 19107 : 2003)
quasiUniform
piecewiseBezier
6.4.26 GMSplineCurve
6.4.26.1 意味 GMSplineCurve(スプライン曲線)(図19)は,多項式又は有理式のいずれかの形式のス
プラインを使用するGMCurveSegmentの下位型に対する基底型として振る舞う。
6.4.26.2 knot “knot” (ノット)属性は,スプライン基底関数を定義するのに使用する異なるノットの
列とする。ノットデータ型がノットの多重度に関する情報を保持することに注意する。
GMSplineCurve::knot : Sequence<GMKnot>
6.4.26.3 degree “degree”(次数)属性は,このGMPolynomialSplineの内挿に使用する多項式の次数と
する。
GMSplineCurve::degree : Integer
6.4.26.4 controlPoints “controlPoints”(制御点)属性はこのGMSplineCurveの内挿に使用する点の配列
とする。
GMSplineCurve::controlPoints : GMPointArray
6.4.27 GMPolynomialSpline
6.4.27.1 意味 n次多項式スプライン(polynominal spline)は,定義多項式が切り替わる制御点において
Cn-1級連続性を保持するような,n次多項式をつなげたものとして定義する。この連続性の水準は
“numDerivativesInterior”属性によって制御する。パラメタは,その曲線分の始点及び終点に,多項式の
(degree - 2)次までの導関数と同じだけの方向を含む。GMLineStringは,一次多項式スプラインと等し
い。これはそのcontrolPointに単純な連続性(C0級)をもつが,導関数の情報は必要としない(degree - 2 =
-1)。
備考 多項式スプラインとBスプライン(基底スプライン)との主な相違点は,多項式スプラインは,
自身の制御点を通過し,制御点と標本点配列とが一致することである。
6.4.27.2 interpolation GMPolynomialSplineの内挿法は,“polynomialSpline”とする。
GMPolynomialSpline::
interpolation : GMInterpolationMethod = “polynomialSpline”
6.4.27.3 vectorAtStart “vectorAtStart”(始点ベクトル)属性は,このGMPolynomialSplineにおいて内
挿に使用する最初の(degree - 2)次までの導関数に使用するスプラインの始点での値とする。
GMPolynomialSpline::vectorAtStart : Sequence<Vector> [{size = degree - 2}]
6.4.27.4 vectorAtEnd “vectorAtEnd”(終点ベクトル)属性は,このGMPolynomialSplineにおいて内挿
に使用する最後の(degree - 2)次までの導関数に使用するスプラインの終点での値とする。
GMPolynomialSpline::vectorAtEnd :Sequence<Vector> [{size = degree - 2}]
6.4.28 GMCubicSpline 三次スプライン(cubic spline)は,折れ線と同様に曲線分の列であるが,各々
の曲線分は,その定義関数を伴う。三次スプラインは,三次多項式による区間内挿を定義する制御点及び
導関数パラメタの集合を用いる。折れ線とは異なり,弧長によってパラメタ化したものも多項式である必
要はない。スプラインには,この規格で使用する二つのパラメタ化は,定義式による表現(構造パラメタ)
及びGMGenericCurveの要件を満たす弧長による再パラメタ化表現とする。
曲線を記述する関数はC2級,すなわち,すべての点で一次及び二次導関数をもち,定められた順に
controlPointを通過しなければならない。制御点間の曲線分は,三次多項式によって定義する。多項式は,
制御点において一次及び二次導関数ベクトルがいずれの側からも同一となるように切り替わる。制御パラ
――――― [JIS X 7107 pdf 68] ―――――
63
X 7107 : 2005 (ISO 19107 : 2003)
メタレコードは,vectorAtStart及びvectorAtEndを含まなければならない。それらは, n = controlPoint.count
とするとそれぞれ controlPoint[1]及びcontrolPoint[n] における単位接ベクトルとなる。
“vectorAtStart”及び“vectorAtEnd”は,その列がそれぞれ単一の接ベクトルとなるよう制約される。
GMCubicSpline::vectorAtStart : Vector // “degree 2” は 1
GMCubicSpline::vectorAtEnd : Vector // “degree 2” は 1
備考 三次多項式の実際の実装は様々だが,このように生成した曲線の一意性が保証される。実装例
に関しては,2),10),12),18)及び19)による。
GMCubiclSplineの内挿法は“cubicSpline”とする。
GMCubicSpline::interpolation : GMInterpolationMethod = “cubicSpline”
GMCubiclSplineの次数は,“3”とする。
GMCubicSpline::degree : Integer = “3”
6.4.29 GMSplineCurveForm このGMSplineCurveForm(スプライン曲線形式)符号リストは,特定の
Bスプラインにより近似してよい曲線を示すために使用する。これは,次の値をとってよい。
− polylineForm : 一次Bスプライン(折れ線)によって表される線分の連結した列。
− circularArc : 円弧又は円。
− ellipticArc : だ(楕)円弧又はだ(楕)円。
− parabolicArc : 放物線の有界な弧。
− hyperbolicArc : 双曲線の一方の枝の有界な弧
GMSplineCurveForm::
polylineForm
circularArc
ellipticalArc
parabolicArc
hyperbolicArc
6.4.30 GMBSplineCurve
6.4.30.1 意味 Bスプライン(図19参照)は制御点及び基底関数によって記述された区間パラメタ多項
式曲線又は区間パラメタ有理曲線である。ノットにおける重みが等しい場合には,多項式スプラインとな
る。そうでない場合には,有理関数スプラインとなる。“isPolynomial”真偽値が真の場合,重みはすべて
1とする。Bスプライン曲線が区間ベジェ曲線であるとは,内部ノットが多重度1ではなく“degree”をも
ち,それ以外の疑似一様の要件を満たすことをいう。この下位型では,ノットは 0.0 で始まり,その間隔
は 1.0 となる。個々の多重度が (degree + 1)となる 0.0 及び 1.0 の二つのノットだけをもつ区間ベジェ
曲線は,単純ベジェ曲線に等しい。
6.4.30.2 degree “degree”(次数)属性は,基底関数の代数的次数とする。
GMBSplineCurve::degree : Integer
6.4.30.3 curveForm “curveForm”(曲線形式)属性は,このスプラインを使用して近似しようとする本
来の曲線がいずれの型かを識別するために使用する。これは,参考情報であり,本来の意図をとらえるた
めに使用される。このような近似を意図していない場合,この属性の値は,NULLとする。
GMBSplineCurve::curveForm : GMSplineCurveForm
6.4.30.4 knotSpec “knotSpec”(ノット仕様)属性は,このスプラインの定義に使用するノット分布の型
を定める。これは,参考情報とし,構成関数の違いに応じて設定される。
――――― [JIS X 7107 pdf 69] ―――――
64
X 7107 : 2005 (ISO 19107 : 2003)
GMBSplineCurve::knotSpec[0,1] : GMKnotType
6.4.30.5 isPolynomial “isPolynomial”(多項式判定)属性は,多項式スプラインの場合“True”とする。
GMBSplineCurve::isPolynomial : Boolean
6.4.30.6 GMBSplineCurve(コンストラクタ) “GMBSplineCurve”クラスのコンストラクタは,6.4.30.2
6.4.30.5の属性値に対応する情報を得て,Bスプライン曲線を構築する。knotSpecが存在しない場合,
knotTypeはuniformとし,ノットは均等に配置され,最初と最後とを除き,多重度は1とする。両端にお
いてノットは,multiplicity = degree + 1とする。knotTypeがuniformの場合,それらを指定する必要はない。
GMBSplineCurve::GMBSplineCurve(deg : Integer, pts : GMPointArray, k [0,1] :
Sequence<GMKnot>, ks [0,1] : GMKnotType) : GMBSplineCurve
備考 Bスプライン曲線がuniformで次数が1の場合,Bスプラインは,折れ線(GMLineString)に等
しい。knotTypeが“piecewiseBezier”の場合,ノットは既定値として均等に配置し,最初と最
後とを除き,次数に等しい多重度をもつ。両端においてノットの多重度は,次数に1を加えた
ものとなる。
6.4.31 GMBezier GMBezier(ベジェ)は,内挿のためにベジェ多項式又はバーンスタイン多項式を使
用する多項式スプラインとする。長さnの制御点配列は,曲線分全体を定義するn次多項式曲線を生成す
る。これらの曲線は,次のベジェ多項式又はバーンスタイン多項式と呼ぶ一連の基底関数に基づき定義す
る。
n i n i n n!
Jn,i (t) t 1 t ただし i = 0, 1, 2 ··· n で
i i i! n i
“n + 1”の制御点P0, P1...Pnの集合は,次の式によって曲線分を決定する :
n
(
c t) PiJn,i(t) ただし t [0,1].
i 0
この曲線分の標本点は,各多項式 (i/n) の最大値で定義される曲線の値とする :
i
Si c ただし i = 0, 1, 2 ··· n
n
備考 n = 1の場合,次の二つの重み関数となる :
1 0 1 1 1 1 1
t
J0,1 )( t 1 t 1( t) 及び t
J1,1 )( t1 t t
0 1
P0及びP1によって,曲線分は,次のようになる :
c(t) 1( t) P0 tP1 ただし, t [0,1].
言い換えると,n = 1の場合,ベジェ多項式は,単純な線分と幾何的に等しい。
6.4.32 GMSurfaceInterpolation GMSurfaceInterpolation(曲面内挿法符号リスト)(図20)は,応用ス
キーマが指定する内挿法を識別するのに使用してよい符号リストとする。“interpolation”の有効な値は,
次を含むが,これらに制限されるわけではない。
a) なし(none) この曲面の内部は,指定されない。この曲面は,座標参照系の定義する基準面に従う
ものと仮定する。
b) 平面(planar) この内挿法は,単一の平面上の点を返す。この場合の境界は,この平面上に含まれ
――――― [JIS X 7107 pdf 70] ―――――
次のページ PDF 71
JIS X 7107:2005の引用国際規格 ISO 一覧
- ISO 19107:2003(IDT)
JIS X 7107:2005の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.240 : 情報技術(IT)の応用 > 35.240.70 : 自然科学へのITの応用
JIS X 7107:2005の関連規格と引用規格一覧
- 規格番号
- 規格名称
- JISX7111:2014
- 地理情報―座標による空間参照