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

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

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


11.3.12 辺の分割と交差辺の追加処理

図11.6 交差が複数あるときの交差モード
 図11.6を使って、交差辺を決定する方法を説明します。図では、面A、面Bの辺が交差直線を横切る個所(交点)が全部で10箇所あります。交差直線に沿って、左から交点を見て行きます。面Aと面Bの辺は、それぞれ複数の箇所で交差直線を横切り、交点の位置で、交点ステータスコードがJSTA, JSTBが更新されます。そこからの区間が同じステータスコードを持つとして、面ごとの区間ステータスコードと約束します。この交差出入りは、相手の面が無限に広がっているとしたときのコードを与えていますので、相手側多面体の図形範囲を外れているときも示しています。この区間ステータスコードのどちらかでも0であれば、交差がありません。区間ステータスコードが両方とも1に変った交点から交差辺が始まります。この交点に属する辺がIMK=16またはIMK=4の場合には、この交点の座標を元に頂点セルを追加し、辺をこの頂点で分割します。この交点で、相手側の辺の頂点と同じ座標であるとき、新しく追加する頂点は、座標が同じであってデータが重複しますが、面を周回する辺と頂点のウイング情報を正しく保つために重複定義します。この重複は、データの整合性を検査するときに調整します。分割された辺の一方は、互いに相手側の面の下にもぐり込み、もぐりこんだ部分の辺が削除の対象です。どちらかの区間ステータスコードが0になったところで交差辺が終了します。交差点が複数あっても、交差辺ができる区間は図11.6では二箇所しかありません。交差辺は、面Aと面Bを左右につなぐ辺です。この辺のデータセルは、当該の面の周回辺に組み込まないで、別データとして積み上げておき、個別の多面体すべての辺で分割処理が済んだ後で、全体を一体化するように集約します。
2008.11 橋梁&都市PROJECT

前ページ  次ページ