55
X 7107 : 2005 (ISO 19107 : 2003)
(x1 x0 , y1y0 )
u (u0 ,u1 ) 2 2
(x1 x0 ) (y1 y0 )
u
[{v }] が右手系局所座標系を満たすためには,二つのベクトルは,ベクトルの内積が0,外積が1でな
ければならない。このことから,この対を満たす左向きの法線は,次のとおりとする。
v (v0 ,v1 )(u1 ,u0 )
弦の中点から膨らみの分だけ移動した円弧の中点は,次のとおりとする :
P0 P1
m bv
2
これは,b > 0 の場合左向き,b < 0 の場合右向きとする。
6.4.15.3 center “center”(中心点取得)操作は,この弧を含む円の中心を直接位置として計算する。返
されるDirectPositionの座標参照系は,GMArcの座標参照系と同じものでよい。幾つかの極端な(特に元
の弧が非常に大きい半径を有する)場合,計算されたDirectPositionは,GMArcで用いた座標参照系の有
効な定義域の外であってもよい。応用スキーマは,そのような場合の適切な動作方針を選んでよい。
GMArc::center() : DirectPosition
6.4.15.4 radius “radius”(半径取得)操作は,この弧を含む円の半径を計算する。
GMArc::radius() : Distance
6.4.15.5 startOfArc “startOfArc”(弧開始方向取得)操作は,この弧を含む円の中心から弧の始点への
線の方向を計算する。二次元の場合これは始角となる。三次元の場合,法線の方向角は,弧が参照円と平
行であることを示す。そうでない場合,方向は,高さの情報を含まなければならない。
GMArc::startArc() : Bearing
6.4.15.6 endOfArc “endOfArc”(弧終了方向取得)操作は,この弧を含む円の中心から弧の終点への線
の方向を計算する。二次元の場合これは終角となる。三次元の場合,法線の方向角は弧が参照円と平行で
あることを示す。そうでない場合,方向は,高さの情報を含まなければならない。
GMArc::endOfArc() : Bearing
6.4.16 GMCircle GMArc(円)と同様だが,完全な円を形成するよう閉じたもの。“start”及び“end”
の方向は等しく,示された最初のcontrolPointの方向とする。
備考 これには,さらに少なくとも同一直線上にない異なる三つの点を明確に定義する必要がある。
弧は,最初の点に出会うまで単純に延長される。
6.4.17 GMArcStringByBulge
6.4.17.1 意味 弧の変種であるGMArcStringByBulge(膨らみ弧列)は,構成要素のGMArcの二つ目の
コンストラクタのパラメタをそのまま保持し,標準的な弧の他の属性については再計算する。controlPoint
列はGMArcStringの列と類似しているが,中点のGMPositionは計算で求められるためため不必要とする。
制御点列は,各弧の始点及び終点からなる。
6.4.17.2 bulge 膨らみとは,各弧の中点の変位量を制御する。“bulge”(膨らみ)属性は,各弧の中点の
変位方向を決定する法線に対する実数の倍率とする。膨らみは,制御点配列の隣接点の各対に必要なため,
膨らみ列の長さは制御点配列の長さより1だけ小さい。
GMArcByBulge::bulge : Sequence<Real>
膨らみは,単に法線に対する倍率であるため,距離としては扱わず,変位の距離の単位は,その座標参
――――― [JIS X 7107 pdf 61] ―――――
56
X 7107 : 2005 (ISO 19107 : 2003)
照系のベクトルのlength関数によって決まる。この規格の例では,しばしば法線をユークリッドの単位ベ
クトルとして扱うが,その長さを座標参照系で用いる距離公式の一つに依存するよう定めてもよく,定め
なくてもよい。
結果として生成される弧の中点は,次のとおりになる。
midPoint = ((startPoint + endPoint)/2.0) + bulge*normal
6.4.17.3 numArc “numArc”(弧数)属性は,この列の円弧の数とする。内挿法は二つの位置の重複のあ
る集合が必要なため,弧の数はcontrolPointの数を決定する。
GMArcStringByBulge:numArc : Integer = ((controlPoint.length ‐ 1))
6.4.17.4 normal “normal”(法線)属性は,弧の始点と終点とを結ぶ線である弧の弦に対する法線ベク
トル(垂線)とする。二次元座標系では,法線は,二つの方向しかなく,しばしば弦の線から左向き角を
示す正号又は右方向を示す負号を伴った長さを示す符号付き実数で表す。三次元では法線は弧のstartPoint
とendPointに沿った弧の面を決定する。
法線は,通常,単位ベクトルだが,これは絶対に要求されるわけではない。法線が0ベクトルの場合,
幾何オブジェクトは二つの端点間の直線と等しくなる。法線列の長さは膨らみ列の長さと正確に等しく,
制御点列の長さより1だけ小さい。
GMArcByBulge::normal : Sequence<Vector>
備考 “midPoint”(中点)派生属性を,“bulge”(膨らみ)属性及び“normal”(法線)属性によって
決定された弧の中点として定義してよい。
/ GMArcByBulge::midPoint : Sequence<GMPosition>
midpoint(n) = (controlPoint(n) + contolPoint(n))/2.0) + bulge*normal
各controlPoint対にそれに関連した中点を配置すると,結果としてこのGMArcStringByBulgeと幾何的
に同値な(3点内挿法を用いた)GMArcStringの制御点の有効な集合が得られる。
6.4.17.5 interpolation GMArcStringByBulgeの“interpolation”(内挿法)属性は,常に
“circularArc2PointWithBulge”とする。
6.4.17.6 GMArcStringByBulge(コンストラクタ) コンストラクタは膨らみの表現をオブジェクトの内
部で保持することを除き,GMArcの二つ目のコンストラクタに等しい。
GMArcByBulge::GMArcByBulge(point[2..n] : GMPosition, bulge[1..n] : Real,
: Vector ) : GMArcStringByBulge
normal[1..n]
得られる弧の中点は,次のとおりとなる :
midPoint(n) = ((point(n) + point(n+1))/2.0) + (bulge * normal)
6.4.17.7 asGMArcString 各GMArcStringByBulgeは,“asGMArcString”(弧列型変換)操作を使用して
基本となるGMArcStringとして再変換できる。
GMArcStringByBulge::asGMArcString() : GMArcString;
6.4.18 GMArcByBulge
6.4.18.1 意味 GMArcByBulge(膨らみ弧)は,GMArcStringByBulge(6.4.17参照)を制約したものと
する。GMArcByBulgeのインスタンスは,すべての制御点を同一の円上にもつ。
6.4.18.2 GMArcByBulge(コンストラクタ) コンストラクタは,膨らみの表現が保持されることを除
きGMArcの二つ目のコンストラクタに等しい。
GMArcByBulge::GMArcByBulge(point[2] : GMPosition, bulge : Real,
normal : Vector ) : GMArcByBulge
――――― [JIS X 7107 pdf 62] ―――――
57
X 7107 : 2005 (ISO 19107 : 2003)
得られる弧の中点は,次のとおりとなる :
Midpoint = ((startPoint + endPoint)/2.0) + (bulge * normal)
6.4.19 GMConic
6.4.19.1 意味 GMConic(円すい曲線)型(図18参照)は,あらゆる一般的な円すい曲線を表現する。
すべての円すい切断曲線は,極座標 ( ‰罵 して次のように標準的に表現される。
P
for
1ecos 2 2
ここで“P”は半通径,“e”は離心率とする。この式は,極(原点)における焦点及びこの焦点に最も
近い極軸( 向の(極座標表示で
, P 0, となる)頂点をもつ円すい曲線を定める。
1 e
この式でe = 0の場合は円,0 < e < 1の場合はだ(楕)円,e = 1の場合は放物線,e > 1の場合は双曲線の分
枝の一つとなる。
これらの一般的な円すい曲線は,通常の座標変換 u = びv= 椀 ‰
パラメタ空間 (u,v) に写像することができる。さらに,これを次式によって定義したアフィン変換 (u,v) →
(x,y,z) によって三次元座標参照系に変換することができる。
x ux vx x0
u
y uy vy y0
v
z uz vz z0
ここで, ‰ 構造パラメタとして用いることができる。 (x0,y0,z0)で指定したDirectPositionは,局
所座標空間 (u,v) の原点の写像となる。
一方,原点を次の式によって円すい曲線の頂点に移してもよい。
u' cos( ) P 及び v' sin( )
1
これによって,vは構造パラメタとして使用することができる(GMGenericCurveの定義については
6.4.7.7による。)。
一般に,離心率及びPが共に小さい円すい曲線では,最初に示した“中心”表現を使用する。離心率又
はPが大きい円すい曲線では,二つ目に示した“線型”表現を用いる傾向がある。
Abstruct Interface
GMCurveSegment GMPlacement
+ inDimension() : Integer
+ outDimesion() : Integer
Type + transform(in : Vector) : Vector
GMConic
+ position : GMAffinePlacement
+ shifted : Boolean Type
+ eccentricity : Real GMAffinePlacement
+ semiLatusRectum : Real
+ startConstrParam : Real + location : GMPosition
+ endConstrParam : Real + refDirection[1..n] : Vector
[{interpolation = "conic"}] [{refDirection->dimension = outDimension}]
[{refDirection.count = inDimension}]
図 18 円すい曲線及び配置
――――― [JIS X 7107 pdf 63] ―――――
58
X 7107 : 2005 (ISO 19107 : 2003)
6.4.19.2 position “position”(位置)属性は,パラメタ空間による円すい曲線を,GMObjectの座標参照
系に対応した円すい曲線の対象となる空間参照系の座標空間へ写像するアフィン変換オブジェクトとする。
このアフィン変換は,前の箇条の式で与えられる。
GMConic::position : GMAffinePlacement
6.4.19.3 shifted “shifted”(平行移動)属性は,(u,v)を平行移動せずにアフィン変換を使用した場合に
FALSEとし,平行移動したパラメタ(u',v')にアフィン変換を使用した場合にはTRUEとする。これは,パ
ラメタ空間の原点にあるのが円すい曲線の焦点と頂点とのいずれかを制御する。
GMConic::shifted : Boolean
6.4.19.4 eccentricity “eccentricity”(離心率)属性は,前記の定義式で使用する離心率パラメタ“e”の
値とする。これは,曲線の全体的な形状を制御し,曲線が円,だ(楕)円,放物線又は双曲線のいずれにな
るかを決定する。
GMConic::eccentricity : Real
6.4.19.5 semiLatusRectum “semiLatusRectum”(半通径)属性は,前記の定義式で使用するパラメタ“P”
の値とする。これは,円すい曲線がその各焦点においてどの程度広がっているかを制御する。
GMConic::semiLatusRectum : Real
6.4.19.6 startConstrParam,endConstrParam “startConstrParam”(始点構造パラメタ)属性及び
“endConstrParam”(終点構造パラメタ)属性は,6.4.19.1で定めた構造パラメタ化で使用される,startPoint
及びendPointにそれぞれ対応したパラメタを示す。
GMConic::startConstrParam : Real
GMConic::endConstrParam : Real
GMConic:
constrParam(startConstrParam) = startPoint();
constrParam(endConstrParam) = endPoint();
前提としてstartConstrParamがendConstrParamよりも小さいとは限らないが,このパラメタ化は,狭義
単調(狭義単調増加又は狭義単調減少)でなければならない。
6.4.20 GMPlacement
6.4.20.1 意味 配置(placement)は,ある標準的な幾何構造を取り出し,それを地理的空間に配置する。
これは,構造パラメタ空間から使用している座標参照系の座標空間への変換を定義する。この規格では,
式におけるパラメタ空間は二次元では(u,v),三次元では(u,v,w)として示す。この規格では,式におけ
る座標参照系の位置は,二次元では(x,y),三次元では(x,y,z)として示す。
6.4.20.2 inDimension “inDimension()”(入力次元取得)操作は,入力パラメタ空間の次元を返す。
GMPlacement::inDimension() : Integer
6.4.20.3 outDimension “outDimension()”(出力次元取得)操作は,出力座標参照系の次元を返す。
GMPlacement::outDimension() : Integer
備考 通常,outDimension(座標参照系の次元)は,inDimensionより大きい。そうでない場合,この
変換は,おそらく異常で,より小さい次元のパラメタ空間からの単純な変換で置き換えてよい。
6.4.20.4 transform “transform”(変換)操作は,パラメタ座標点を出力直交空間における座標点に写像
する。
GMPlacement::transform(in :Vector [{size = inDimension()}]) : Vector [{size = outDimension()}]
――――― [JIS X 7107 pdf 64] ―――――
59
X 7107 : 2005 (ISO 19107 : 2003)
6.4.21 GMAffinePlacement
6.4.21.1 意味 GMAffinePlacement(アフィン配置)は,パラメタ空間から対象の座標空間への線形変換
として定義する。二次元の直交パラメタ空間(u,v)を三次元座標参照系(x,y,z)に変換する場合,次に規
定するアフィン変換(u,v) → (x,y,z)を使用する。
x ux vx x0
u
y uy vy y0
v
z uz vz z0
この際,この式の定めるGMAffinePlacement::locationは,(u,v)における原点に対する像の位置となる
直接位置(x0,y0,z0)とする。二つの参照ベクトル(ux,uy,uz)及び(vx,vy,vz)は(u,v)の原点における単位基
底ベクトルに対する像の方向とする。
6.4.21.2 location “location”(所在)属性は,パラメタ空間原点に対する像を示す。これは6.4.21.1の式
におけるベクトル(x0,y0,z0)とする。
GMAffinePlacement::location : GMPosition
6.4.21.3 refDirection “refDirection”(基準方向)属性は,パラメタ空間の座標基底ベクトルに対する像
の方向を与える。これらは,上記の式における行列の列とする。与えられる方向ベクトルの数は,
inDimensionと一致する。方向ベクトルの次元は,outDimensionと一致する。
GMAffinePlacement::refDirection [inDimension] : Vector [{size = outDimension}]
6.4.22 GMClothoid
6.4.22.1 意味 GMClothoid(クロソイド)(図19参照)は,曲率が長さに対する固定関数となる平面曲
線とするクロソイド(又はらせん)を実装する。座標系を適切に選択すると,クロソイドは次のようにフ
レネル積分で表現できる。
t 2 t 2
A A
x(t) cos( ) d 及び t
y)( sin( ) d
0 2 0 2
クロソイド曲線及び区間クロソイド曲線のより詳しい特性についての文献は,16)による。
この幾何は,主に直線・円弧又は円弧・円弧の型の曲線間の移行曲線として使用する。この曲線型によ
って前述の曲線型の間でのC2級連続移行を実現することができる。クロソイドの式の1例は,Aを定数,
Rを曲線に沿った可変曲率半径及びtを曲線に沿ったフレネル積分で得られる長さとして,A2 = R×tとす
る。
6.4.22.2 refLocation “refLocation”(基準所在)属性はフレネル積分によって定義した曲線をこのオブジ
ェクトの座標参照系に配置するアフィン写像とする。
GMClothoid::refLocation : GMAffinePlacement
6.4.22.3 scaleFactor “scaleFactor”(縮尺率)属性は6.4.22.1の式のAの値を与える。
GMClothoid::scaleFactor : Number
6.4.22.4 startParameter “startParameter”(開始パラメタ)属性は,この曲線分の始点となる変曲点から
の弧長距離とする。これはフレネル積分で使用する“t”の下限とし,この曲線分の始点における構造パラ
メタの値とする。“startParameter”は,正負のいずれにもなりうる。パラメタ“t”は,構造パラメタとし
て振る舞う(6.4.7.8参照)。
GMClothoid::startParameter : Real
――――― [JIS X 7107 pdf 65] ―――――
次のページ PDF 66
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
- 地理情報―座標による空間参照