目次ページ  前ページ   次ページ

11. 二平面の交差計算と応用

11.3 二面の交差線を計算するアルゴリズム


11.3.11 辺の交差位置の座標と区間ステータスコードを求める

 二面が交差する可能性があるのは、図11.5で、交差が始まるIMK=16と交差が終るIMK=4の交差モードの辺がある場合です。やや特別な場合は、交差の始まりとしてIMK=18の辺の次にIMK=8の辺が続き、また交差終了としてIMK=2の辺の次にIMK=12の辺が続く場合です。途中にIMK=10の辺が挟まることもありますが、この扱いは次章で取り上げます。交差直線と接して直ぐに折り返す場合は、交差しないと判定します。交差の可能性を表すパラメータとして、面Aと面Bそれぞれの辺について、交点単位で作業用のセルを作成し、これを一続きにリンクさせておきます。この作業用セルは、交点の交差直線上の符号付距離Uをパラメータとして、その昇順にリンクを構成します。図11.6は、交差直線上に交点が並ぶ状態を模式的に示したものです。IMK=16とIMK=4の辺は、交点の座標Uを計算して作業用セルに保存しますが、まだ頂点セルは作成していません。面Aについては交点が6箇所、面Bでは4箇所です。作業用セルには、交差する辺セルのポインタと、その辺の交点ステータスコードJSTA, JSTBを約束します。0は交差が無い状態、1は交差の可能性が発生した交点であるとし、辺のIMK情報(図11.5)から求めます。

・JSTA:面Aに属する辺が交差直線を越えて面Bの裏側に入ると1、表側に出ると0
・JSTB:面Bに属する辺が交差直線を越えて面Aの裏側に入ると1、表側に出ると0

交点ステータスコードは、辺について調べますので、IMK=16とIMK=4の辺以外の辺を調べると、頂点セルの情報が重複して作業用セルに作られますので、それを避けるために、IMK=18とIMK=2の辺は、IMK=12とIMK=8の辺の判定のときに合わせて判定させます。交差面を周回する辺の交差の可能性を相手側面との間で調べ、どちらの面も交差の可能性がなければ、面の交差がないと判定します。
2008.11 橋梁&都市PROJECT

前ページ  次ページ