指定範囲の点を凸包結線

範囲指定による結線処理

座標点間に直線を描き、路線図や画地を作成するには、
結線/結線/追加で表に結線構成点の点番を手入力する
プロット画面で構成点をクリックする
という作業が必要で、構成点数が多いと時間がかかり面倒です。
この機能で結線したい点をマウスのドラッグ操作で囲むだけで、多少制約はありますが短時間で結線処理ができます。下記の「代表的なエラー例」に記載しているように常に「正解」が得られる保証はありませんが、メリットは大きいと思いますので是非お試しください。


原理と制約

解析幾何学では凸包という点群に対する処理で、基礎的で有名な手法です。
ネットで「凸包」を検索すればいろいろ解説が見つかりますが、要は座標点群を平面に打たれた釘とすると、凸包はその釘に輪ゴムを掛けた時に生まれるゴムの線形のことです。
GioLine pro では厳密な解析ではなく単純に座標点間を結ぶことが目的なので、ギフト包装法を参考にした簡易な方法で結線しています。
点群を凸包するという基本的な「条件」から、凹型の画地の結線には対応できませんが、手入力で対応が可能です。


主な仕様
  • マウスのドラッグで選択した範囲に含まれる座標点数は200点
  • その後の処理で重複点を除外(後から登録された点)し、最終的に凸包の構成点(頂点)数が99点以下
  • 選択点が2点の時は直線、3点では3点が直線上にあるときは直線、そうでないときは三角形に結線
  • 正しく結線できない可能性があるときはメッセージを表示
    注意結線が未登録の時は機能しません。1本だけでも通常の方法で結線を登録してください
    注意:[○範囲取得の時はプロット画面で「右クリック」でポップアップメーニューを表示させないでください
操作の基本

凸包による結線を実行するときは、下図のように
・メイン画面:[結線]/[結線]で連続にチェックがあり、[追加]が選択されている状態にしてください。
・プロット操作:[画面]を選択
の状態で、[×範囲取得]をクリックして[○範囲取得]に変更します。

操作例
    1. Gioプロットで点群(2点以上)をマウスの左ボタンを押しながらドラッグで選択します
      ドラッグ方向は任意です(左下→右上等)
    2. マウスの左ボタンを放すと処理選択画面が開きます(Form9・Form4.FormMouseUp)
    3. 選択範囲に座標重複点が含まれていた時は点番の若い点が結線の構成点に採用されます。[OK]をクリックしてください。

      凸包処理が実行されプロット画面とメイン画面の表部分(青枠)に結果(仮)が出力されます。プロット画面の赤線は確定前の確認用です。画面の移動等で消えてしまいます
      ※[確認]をクリックすれば仮線を再描画します
      凹型画地などで構成点が選ばれなかった時は、表部分に行を追加して構成点の点番を手入力します
      同様に、閉合させたくないときは最後の点番を削除します
      線名を入力すこともできます
      実行しないときは、[○範囲取得]クリックで選択が全て削除されます
      結線を登録するときは[連続確定]をクリックしてください(緑枠内の設定で結線が登録されます)
      ※ 下図にある[高速処理]のチェックボックスは現在ありません

      確定した画地
    4. [○範囲取得]ボタンは有効のままですので連続して結線作業が可能です。
      終了する時は[○範囲取得]をクリックし[×範囲取得]にします。

特例仕様
・3点選択:3点が直線上に並んでいたときは AーBーC と結線し、AーBーCーA のように閉合はさせません

代表的なエラー例

選択範囲に3点以上が直線上に連続して存在していると、以下の取得例のような不具合が生じますのでご注意ください
バグですが、今のところ対応ができないのでご了承ください。
なお、不具合が出る可能性がある時は、以下のメッセージが出ますので、その後に出力されるプロット画面の線形とメインページの表部分の座標点の順番をご確認ください。

TOP