(57)【要約】【課題】本発明は建築図面に基づくベランダ自動認識方法を開示した。【解決手段】柱が位置するレイヤ、壁が位置するレイヤ、ドアと窓が位置するレイヤ及び外部ベランダが位置するレイヤの情報を読み取り；外部ベランダに対し、同じグループの外部ベランダ線を表す各グループの線分により外部ベランダの手すり線を見つけ、各手すり線により外部ベランダ板を構成する端点の座標データを見つけ一つの点集合に対応的に書き込み；内部ベランダに対し、すべての内部ベランダを異なるベランダグループに分け、各ベランダグループのEnvelope対象によりベランダグループを構成するNつの内部ベランダ板の端点の座標データを見つけNつの点集合にそれぞれ対応的に書き込み；最後に各点集合のすべての端点が見つけられた順により順次接続された閉鎖線分を外部ベランダ板輪郭線または内部ベランダ板輪郭線として出力する。【選択図】図６
2019139756.tif 000002
【特許請求の範囲】
【請求項１】
外部ベランダに適用し、
柱が位置するレイヤ、壁が位置するレイヤ、ドアと窓が位置するレイヤ及び外部ベランダが位置するレイヤの情報を読み取り、これによりすべての前記レイヤのすべてのプリミティブの属性情報及び端点の座標データを取得する；
前記外部ベランダが位置するレイヤにおいて、すべての同じグループの外部ベランダ線を表す線分を見つける；
各グループの前記外部ベランダ線によりすべての前記外部ベランダの手すり線を見つける；
各前記手すり線により、すべての前記プリミティブの端点において、外部ベランダ板を構成する端点の座標データを見つけ、一つの点集合に対応的に書き込む；
各前記点集合のすべての端点が書き込む順で順次接続された閉鎖線分を外部ベランダ板の輪郭線として出力し、
前記の前記外部ベランダが位置するレイヤのすべての同じグループの外部ベランダ線を表す線分を見つけることは、各グループの前記外部ベランダ線に対し、具体的に下記を含む：
S1201、前記外部ベランダが位置するレイヤにおいて、すべての線分の中の互いに平行し且つ距離が予め設定された距離の閾値より小さい三つの線分を見つける；
S1202、前記三つの線分の両端のすべての端点が柱線または壁線にあるかどうかを判断する；
S1203、前記三つの線分の両端のすべての端点がいずれも柱線または壁線にある場合、前記三つの線分が同じグループの前記外部ベランダ線を表す線分である；
S1204、前記三つの線分の両端のすべての端点の中には一端のすべての端点だけが柱線または壁線にある場合、一端のすべての端点と前記三つの線分のもう一端のすべての端点とが対応的に重なる第一グループの平行線分を見つける；
S1205、前記第一グループの平行線分のもう一端のすべての端点が柱線または壁線にあるかどうかを判断し、もしそうであれば、前記三つの線分と前記第一グループの平行線分とが同じグループの前記外部ベランダ線を表す線分であり、そうでない場合、一端のすべての端点と前記第一グループの平行線分のもう一端のすべての端点とが対応的に重なる第二グループの平行線分を見つける；
S1206、前記第二グループの平行線分のもう一端のすべての端点が柱線または壁線にあるかどうかを判断し、もしそうであれば、前記三つの線分、前記第一グループの平行線分及び前記第二グループの平行線分が同じグループの前記外部ベランダ線を表す線分であり、そうでない場合、前記S1201に戻る；
S1207、前記三つの線分の両端のすべての端点がいずれも柱線または壁線に位置しない場合、一端のすべての端点と前記三つの線分の一端のすべての端点とが対応的に重なる第三グループの平行線分及び一端のすべての端点と前記三つの線分のもう一端のすべての端点とが対応的に重なる第四グループの平行線分を見つける；
S1208、前記第三グループの平行線分と前記第四グループの平行線分のもう一端のすべての端点が柱線または壁線にあるかどうかを判断し、もしそうであれば、前記三つの線分、前記第三グループの平行線分及び前記第四グループの平行線分が同じグループの前記外部ベランダ線を表す線分であり、そうでない場合、前記S1201に戻り、
前記の各グループの前記外部ベランダ線によりすべての前記外部ベランダの手すり線を見つけることは、各前記手すり線に対し、具体的に下記を含む：
同じグループの前記外部ベランダ線を表す線分がいくつのグループの平行線分を含むかを判断する；
一つのグループの平行線分を含む場合、前記一つのグループの平行線分と平行し且つ距離が最も小さい第一ドア線または第一窓線を見つけ、また前記一つのグループの平行線分のすべての線分の中の前記第一ドア線または前記第一窓線までの距離が最も小さい線分を見つけ前記手すり線とする；
二つまたは三つのグループの平行線分を含む場合、前記二つまたは三つのグループの平行線分のすべての線分の長さを計算し、各グループの平行線分のすべての線分の中の長さが最も小さい線分をそれぞれ見つけ、見つけられた線分が対応的に接続された折線分を前記手すり線とし、
前記の各前記手すり線によりすべての前記プリミティブの端点の中で外部ベランダ板を構成する端点の座標データを見つけ一つの点集合に対応的に書き込むことは、各外部ベランダ板に対し、下記のステップによりすべての前記プリミティブの端点の中で前記外部ベランダ板を構成する端点の座標データを見つけ一つの点集合に対応的に書き込む：
S1401、前記手すり線のうち柱線または壁線に位置する二つの端点の任意一つの端点を最初の始点とし、そして前記最初の始点の座標データを前記点集合に書き込む；
S1402、前記手すり線との距離が最も小さい第二ドア線または第二窓線を見つけ、前記第二ドア線または前記第二窓線の任意一つの端点を補助点とし、前記最初の始点を中心点とし、前記最初の始点と前記補助点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに回転させる；
S1403、前記線分回転角度が最も小さいまたは最も大きい場合に前記線分と重なり且つ中心点と接続される線分を見つけ、また見つけられた線分の端点の座標データを前記点集合に書き込む；
S1404、現時点で前記点集合に書き込まれた前記端点が前記最初の始点であるかどうかを判断する；
S1405、現時点で前記点集合に書き込まれた前記端点が前記最初の始点でない場合、現時点で前記点集合に書き込まれた前記端点を中心点とし、現時点で前記点集合に書き込まれた前記端点と一つ前に前記点集合に書き込まれた端点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに続けて回転させ、また前記S1403に戻る；そして、
S1406、現時点で前記点集合に書き込まれた前記端点が前記最初の始点である場合、すべての前記プリミティブの端点の中で前記外部ベランダ板を構成する端点の座標データを見つけ前記点集合に書き込むという過程が終わることを含む建築図面に基づくベランダ自動認識方法である。
【請求項２】
内部ベランダに適用し、
柱が位置するレイヤ、壁が位置するレイヤ、ドアと窓が位置するレイヤ及び内部ベランダが位置するレイヤの情報を読み取ることによりすべての前記レイヤの中ですべてのプリミティブの属性情報及び端点の座標データを取得する；
前記内部ベランダが位置するレイヤですべての同じベランダグループを表す線分を見つけ；その中に、前記ベランダグループがNつの前記内部ベランダの接続により構成され、Nが1より大きい整数である；
同じ前記ベランダグループを表す各グループの線分によりすべての前記ベランダグループのEnvelope対象を求める；
各前記ベランダグループのEnvelope対象によりすべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの内部ベランダ板の端点の座標データを見つけそれぞれNつの点集合に対応的に書き込む；
各前記点集合の中のすべての端点が書き込み順により接続された閉鎖線分を内部ベランダ板輪郭線として出力し、
前記の前記内部ベランダが位置するレイヤですべての同じベランダグループを表す線分を見つけることは、各グループの同じ前記ベランダグループを表す線分に対し、具体的に下記を含む：
S2201、前記内部ベランダが位置するレイヤにおいて、すべての線分のうち一端のすべての端点が柱線または壁線に位置し、互いに平行し且つ間隔が予め設定された距離の閾値より小さい二つの線分を見つける；
S2202、前記二つの線分とそれぞれ接続されるすべての線分を見つける；
S2203、現時点で見つけられたすべての線分の中には端点が柱線または壁線に位置する線分があるかどうかを判断する；
S2204、現時点で見つけられたすべての線分の中には端点が柱線または壁線に位置する線分がない場合、現時点で見つけられたすべての線分とそれぞれ接続されるすべての線分を見つけ、そして前記S2203に戻る；
S2205、現時点で見つけられたすべての線分の中には端点が柱線または壁線に位置する線分がある場合、端点が柱線または壁線に位置しない線分とそれぞれ接続されるすべての線分を見つけ、そして前記S2203に戻る；
S2206、現時点で見つけられたすべての線分の端点がいずれも柱線または壁線に位置する場合、すべての見つけられた線分が一つのグループの同じ前記ベランダグループを表す線分であり、
前記の同じ前記ベランダグループを表す各グループの線分によりすべての前記ベランダグループのEnvelope対象を求めることは、各前記ベランダグループのEnvelope対象に対し、具体的に下記を含む：
同じ前記ベランダグループを表すすべての線分の端点の座標データの中から最小横座標、最大横座標、最小縦座標及び最大縦座標を見つける；
それぞれ前記最小横座標を横座標、前記最小縦座標を縦座標として第一補助点を生成し、前記最小横座標を横座標、前記最大縦座標を縦座標として第二補助点を生成し、前記最大横座標を横座標、前記最大縦座標を縦座標として第三補助点を生成し、前記最大横座標を横座標、前記最小縦座標を縦座標として第四補助点を生成する；
前記第一補助点、前記第二補助点、前記第三補助点及び前記第四補助点が順番に接続し生成した矩形が前記ベランダグループのEnvelope対象であり、
前記の各前記ベランダグループのEnvelope対象によりすべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの内部ベランダ板の端点の座標データを見つけそれぞれNつの点集合に対応的に書き込むことは、各前記ベランダグループに対し、下記のステップによりすべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの前記内部ベランダ板の端点の座標データを見つけそれぞれNつの点集合に対応的に書き込む：
S2401、一つ目の前記内部ベランダ板の最初の始点と一つ目の前記内部ベランダ板の補助点とを見つける；
S2402、一つ目の前記内部ベランダ板の最初の始点と一つ目の前記内部ベランダ板の補助点により一つ目の前記内部ベランダ板を構成するすべての端点の座標データを見つけ一つ目の前記点集合に書き込む；
S2403、現時点で完成された前記点集合のすべての端点により次の隣接の内部ベランダ板の最初の始点を見つけ、また次の隣接の内部ベランダ板の最初の始点により次の隣接の内部ベランダ板の補助点を見つける；
S2404、次の隣接の内部ベランダ板の補助点の座標データが前記ベランダグループのEnvelope対象の範囲を超えるかどうかを判断し、もしそうであれば、すべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの前記内部ベランダ板の端点の座標データを見つけそれぞれNつの前記点集合に対応的に書き込むという過程が終わり；そうでない場合、次の隣接の内部ベランダ板の最初の始点を中心点とし、次の隣接の内部ベランダ板の最初の始点と次の隣接の内部ベランダ板の補助点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに回転させる；
S2405、線分の回転角度が最も小さいまたは最も大きい場合に線分と重なり且つ中心点と接続される線分を見つける；
S2406、見つけられた線分の端点の座標データが前記ベランダグループのEnvelope対象の範囲を超えるかどうか、または現時点で完成された前記点集合に属するかどうかを判断し、前記ベランダグループのEnvelope対象の範囲を超え、または現時点で完成された前記点集合に属する場合、すべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの前記内部ベランダ板の端点の座標データを見つけそれぞれNつの前記点集合に対応的に書き込むという過程が終わり；前記ベランダグループのEnvelope対象の範囲を超えていなく、または現時点で完成された前記点集合に属しない場合、次の隣接の内部ベランダ板の最初の始点と次の隣接の内部ベランダ板の補助点により次の隣接の内部ベランダ板を構成するすべての端点の座標データを見つけ次の前記点集合に書き込み、そして前記S2403に戻り、
前記の一つ目の前記内部ベランダ板の最初の始点と一つ目の前記内部ベランダ板の補助点とを見つけることは、具体的に下記を含む：
前記ベランダグループのすべての端点の中で柱線または壁線に位置し且つ横座標が最も小さい第一端点を見つける；
前記ベランダグループを表すすべての線分の中で前記第一端点の位置する第一線分と平行し且つ距離が最も小さい第二線分を見つけ、そして前記第二線分の端点の中で前記第一端点との距離が最も小さい第二端点を見つける；
前記第一端点または前記第二端点との距離が最も小さい第一ドア線または第一窓線の端点を見つけ一つ目の前記内部ベランダ板の補助点とする；
前記第一端点と前記第二端点から一つ目の前記内部ベランダ板の補助点までの距離をそれぞれ計算し、一つ目の前記内部ベランダ板の補助点までの距離が最も小さい端点を一つ目の前記内部ベランダ板の最初の始点とし、
各前記内部ベランダ板に対し、前記内部ベランダ板の最初の始点と補助点により前記内部ベランダ板を構成するすべての端点の座標データを見つけ一つの前記点集合に対応的に書き込むことは、具体的に下記を含む：
S2421、前記最初の始点の座標データを前記点集合に書き込み、また前記最初の始点を中心点とし、前記最初の始点と前記補助点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに回転させる；
S2422、線分回転角度が最も小さいまたは最も大きい場合に線分と重なり且つ中心点と接続される線分を見つけ、また見つけられた線分の端点の座標データを前記点集合に書き込む；
S2423、現時点で前記点集合に書き込まれた前記端点が前記最初の始点であるかどうかを判断する；
S2424、現時点で前記点集合に書き込まれた前記端点が前記最初の始点でない場合、現時点で前記点集合に書き込まれた前記端点を中心点とし、現時点で前記点集合に書き込まれた前記端点と一つ前に前記点集合に書き込まれた端点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに続けて回転させ、また前記S2422に戻る；そして、
S2425、現時点で前記点集合に書き込まれた前記端点が前記最初の始点である場合、前記内部ベランダ板の前記最初の始点と前記補助点により前記内部ベランダ板を構成するすべての端点の座標データを前記点集合に書き込むという過程が終わり、
前記の現時点で完成された前記点集合の中のすべての端点により次の隣接の内部ベランダ板の最初の始点を見つけ、また次の隣接の内部ベランダ板の最初の始点により次の隣接の内部ベランダ板の補助点を見つけることは、具体的に下記を含む：
前記ベランダグループのすべての端点において、現時点で完成された前記点集合に属し、柱線または壁線に位置し且つ現時点で完成された点集合の最初の始点でない第三端点を見つける；
前記ベランダグループを表すすべての線分において、前記第三端点が位置する第三線分と平行し且つ距離が最も小さい第四線分を見つけ、また前記第四線分の端点において、前記第三端点との距離が最も小さい端点を見つけ次の隣接の内部ベランダ板の最初の始点とする；
前記第三端点または次の隣接の内部ベランダ板の最初の始点との距離が最も小さい次のドア線または次の窓線の端点を見つけ次の隣接の内部ベランダ板の補助点とすることを含む建築図面に基づくベランダ自動認識方法である。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は建築図面の建築対象認識技術分野を取り上げて、具体的には建築図面に基づくベランダ自動認識方法である。
【背景技術】
【０００２】
都市建設とコンピュータ技術の急速な発展に伴い、コンピュータにより建物の設計を完成することは一般的な手段になり、且つ二次元建築図面の設計から三次元建築モデルの設計に徐々に変化した。
例えばテキ鋭の「AutoCAD建築工事図の読み取り_認識と三次元再構成」、袁慶萍の「建築図三次元再構成技術研究」、劉川の「ObjectARXとGoogle Earthに基づく都市三次元モデリングシステム研究」と劉励静の「二次元図形データにより三次元シーンを構築する技術の研究」などの既存技術は、使用された技術方案が基本的に同様であり、いずれもまず建築図面を読み取り、コンピュータ画像処理のアルゴリズムによりプリミティブを認識し、建築対象の二次元データを取得し、そして予め設定された標高により、三次元エンジンに出力し建物の三次元モデルを生成する。
しかし、建築図面を認識する過程において、既存技術が建築図面の含まれる情報を十分に利用していなく、認識対象が非常に少なく、且つ建築図面のディテールを認識していないため、建築対象の認識効率が低く、認識精度が低い。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】中国特許出願公開第102693334号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施例が解決しようとする技術問題が、建築図面に基づくベランダ自動認識方法を提供し、建築対象ベランダの認識効率と認識精度を高める。
【課題を解決するための手段】
【０００５】
上記の技術問題を解決するために、本発明の実施例が建築図面に基づくベランダ自動認識方法を提供し、前記方法が外部ベランダと内部ベランダに適用し、その中には、
【０００６】
前記外部ベランダに適用する建築図面に基づくベランダ自動認識方法は下記のステップを含む：
【０００７】
柱が位置するレイヤ、壁が位置するレイヤ、ドアと窓が位置するレイヤ及び外部ベランダが位置するレイヤの情報を読み取り、これによりすべての前記レイヤのすべてのプリミティブの属性情報及び端点の座標データを取得する；
【０００８】
前記外部ベランダが位置するレイヤにおいて、すべての同じグループの外部ベランダ線を表す線分を見つける；
【０００９】
各グループの前記外部ベランダ線によりすべての前記外部ベランダの手すり線を見つける；
【００１０】
各前記手すり線により、すべての前記プリミティブの端点において、外部ベランダ板を構成する端点の座標データを見つけ、一つの点集合に対応的に書き込む；
【００１１】
各前記点集合のすべての端点が書き込む順で順次接続された閉鎖線分を外部ベランダ板の輪郭線として出力する。
【００１２】
さらに、前記の前記外部ベランダが位置するレイヤのすべての同じグループの外部ベランダ線を表す線分を見つけることは、各グループの前記外部ベランダ線に対し、具体的に下記を含む：
【００１３】
S1201、前記外部ベランダが位置するレイヤにおいて、すべての線分の中の互いに平行し且つ距離が予め設定された距離の閾値より小さい三つの線分を見つける；
【００１４】
S1202、前記三つの線分の両端のすべての端点が柱線または壁線にあるかどうかを判断する；
【００１５】
S1203、前記三つの線分の両端のすべての端点がいずれも柱線または壁線にある場合、前記三つの線分が同じグループの前記外部ベランダ線を表す線分である；
【００１６】
S1204、前記三つの線分の両端のすべての端点の中には一端のすべての端点だけが柱線または壁線にある場合、一端のすべての端点と前記三つの線分のもう一端のすべての端点とが対応的に重なる第一グループの平行線分を見つける；
【００１７】
S1205、前記第一グループの平行線分のもう一端のすべての端点が柱線または壁線にあるかどうかを判断し、もしそうであれば、前記三つの線分と前記第一グループの平行線分とが同じグループの前記外部ベランダ線を表す線分であり、そうでない場合、一端のすべての端点と前記第一グループの平行線分のもう一端のすべての端点とが対応的に重なる第二グループの平行線分を見つける；
【００１８】
S1206、前記第二グループの平行線分のもう一端のすべての端点が柱線または壁線にあるかどうかを判断し、もしそうであれば、前記三つの線分、前記第一グループの平行線分及び前記第二グループの平行線分が同じグループの前記外部ベランダ線を表す線分であり、そうでない場合、前記S1201に戻る；
【００１９】
S1207、前記三つの線分の両端のすべての端点がいずれも柱線または壁線に位置しない場合、一端のすべての端点と前記三つの線分の一端のすべての端点とが対応的に重なる第三グループの平行線分及び一端のすべての端点と前記三つの線分のもう一端のすべての端点とが対応的に重なる第四グループの平行線分を見つける；
【００２０】
S1208、前記第三グループの平行線分と前記第四グループの平行線分のもう一端のすべての端点が柱線または壁線にあるかどうかを判断し、もしそうであれば、前記三つの線分、前記第三グループの平行線分及び前記第四グループの平行線分が同じグループの前記外部ベランダ線を表す線分であり、そうでない場合、前記S1201に戻る。
【００２１】
さらに、前記の各グループの前記外部ベランダ線によりすべての前記外部ベランダの手すり線を見つけることは、各前記手すり線に対し、具体的に下記を含む：
【００２２】
同じグループの前記外部ベランダ線を表す線分がいくつのグループの平行線分を含むかを判断する；
【００２３】
一つのグループの平行線分を含む場合、前記一つのグループの平行線分と平行し且つ距離が最も小さい第一ドア線または第一窓線を見つけ、また前記一つのグループの平行線分のすべての線分の中の前記第一ドア線または前記第一窓線までの距離が最も小さい線分を見つけ前記手すり線とする；
【００２４】
二つまたは三つのグループの平行線分を含む場合、前記二つまたは三つのグループの平行線分のすべての線分の長さを計算し、各グループの平行線分のすべての線分の中の長さが最も小さい線分をそれぞれ見つけ、見つけられた線分が対応的に接続された折線分を前記手すり線とする。
【００２５】
さらに、前記の各前記手すり線によりすべての前記プリミティブの端点の中で外部ベランダ板を構成する端点の座標データを見つけ一つの点集合に対応的に書き込むことは、各外部ベランダ板に対し、下記のステップによりすべての前記プリミティブの端点の中で前記外部ベランダ板を構成する端点の座標データを見つけ一つの点集合に対応的に書き込む：
【００２６】
S1401、前記手すり線のうち柱線または壁線に位置する二つの端点の任意一つの端点を最初の始点とし、そして前記最初の始点の座標データを前記点集合に書き込む；
【００２７】
S1402、前記手すり線との距離が最も小さい第二ドア線または第二窓線を見つけ、前記第二ドア線または前記第二窓線の任意一つの端点を補助点とし、前記最初の始点を中心点とし、前記最初の始点と前記補助点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに回転させる；
【００２８】
S1403、前記線分回転角度が最も小さいまたは最も大きい場合に前記線分と重なり且つ中心点と接続される線分を見つけ、また見つけられた線分の端点の座標データを前記点集合に書き込む；
【００２９】
S1404、現時点で前記点集合に書き込まれた前記端点が前記最初の始点であるかどうかを判断する；
【００３０】
S1405、現時点で前記点集合に書き込まれた前記端点が前記最初の始点でない場合、現時点で前記点集合に書き込まれた前記端点を中心点とし、現時点で前記点集合に書き込まれた前記端点と一つ前に前記点集合に書き込まれた端点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに続けて回転させ、また前記S1403に戻る；そして、
【００３１】
S1406、現時点で前記点集合に書き込まれた前記端点が前記最初の始点である場合、すべての前記プリミティブの端点の中で前記外部ベランダ板を構成する端点の座標データを見つけ前記点集合に書き込むという過程が終わる。
【００３２】
前記内部ベランダに適用する建築図面に基づくベランダ自動認識方法は下記のステップを含む：
【００３３】
柱が位置するレイヤ、壁が位置するレイヤ、ドアと窓が位置するレイヤ及び内部ベランダが位置するレイヤの情報を読み取ることによりすべての前記レイヤの中ですべてのプリミティブの属性情報及び端点の座標データを取得する；
【００３４】
前記内部ベランダが位置するレイヤですべての同じベランダグループを表す線分を見つけ；その中に、前記ベランダグループがNつの前記内部ベランダの接続により構成され、Nが1より大きい整数である；
【００３５】
同じ前記ベランダグループを表す各グループの線分によりすべての前記ベランダグループのEnvelope対象を求める；
【００３６】
各前記ベランダグループのEnvelope対象によりすべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの内部ベランダ板の端点の座標データを見つけそれぞれNつの点集合に対応的に書き込む；
【００３７】
各前記点集合の中のすべての端点が書き込み順により接続された閉鎖線分を内部ベランダ板輪郭線として出力する。
【００３８】
さらに、前記の前記内部ベランダが位置するレイヤですべての同じベランダグループを表す線分を見つけることは、各グループの同じ前記ベランダグループを表す線分に対し、具体的に下記を含む：
【００３９】
S2201、前記内部ベランダが位置するレイヤにおいて、すべての線分のうち一端のすべての端点が柱線または壁線に位置し、互いに平行し且つ間隔が予め設定された距離の閾値より小さい二つの線分を見つける；
【００４０】
S2202、前記二つの線分とそれぞれ接続されるすべての線分を見つける；
【００４１】
S2203、現時点で見つけられたすべての線分の中には端点が柱線または壁線に位置する線分があるかどうかを判断する；
【００４２】
S2204、現時点で見つけられたすべての線分の中には端点が柱線または壁線に位置する線分がない場合、現時点で見つけられたすべての線分とそれぞれ接続されるすべての線分を見つけ、そして前記S2203に戻る；
【００４３】
S2205、現時点で見つけられたすべての線分の中には端点が柱線または壁線に位置する線分がある場合、端点が柱線または壁線に位置しない線分とそれぞれ接続されるすべての線分を見つけ、そして前記S2203に戻る；
【００４４】
S2206、現時点で見つけられたすべての線分の端点がいずれも柱線または壁線に位置する場合、すべての見つけられた線分が一つのグループの同じ前記ベランダグループを表す線分である。
【００４５】
さらに、前記の同じ前記ベランダグループを表す各グループの線分によりすべての前記ベランダグループのEnvelope対象を求めることは、各前記ベランダグループのEnvelope対象に対し、具体的に下記を含む：
【００４６】
同じ前記ベランダグループを表すすべての線分の端点の座標データの中から最小横座標、最大横座標、最小縦座標及び最大縦座標を見つける；
【００４７】
それぞれ前記最小横座標を横座標、前記最小縦座標を縦座標として第一補助点を生成し、前記最小横座標を横座標、前記最大縦座標を縦座標として第二補助点を生成し、前記最大横座標を横座標、前記最大縦座標を縦座標として第三補助点を生成し、前記最大横座標を横座標、前記最小縦座標を縦座標として第四補助点を生成する；
【００４８】
前記第一補助点、前記第二補助点、前記第三補助点及び前記第四補助点が順番に接続し生成した矩形が前記ベランダグループのEnvelope対象である。
【００４９】
さらに、前記の各前記ベランダグループのEnvelope対象によりすべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの内部ベランダ板の端点の座標データを見つけそれぞれNつの点集合に対応的に書き込むことは、各前記ベランダグループに対し、下記のステップによりすべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの前記内部ベランダ板の端点の座標データを見つけそれぞれNつの点集合に対応的に書き込む：
【００５０】
S2401、一つ目の前記内部ベランダ板の最初の始点と一つ目の前記内部ベランダ板の補助点とを見つける；
【００５１】
S2402、一つ目の前記内部ベランダ板の最初の始点と一つ目の前記内部ベランダ板の補助点により一つ目の前記内部ベランダ板を構成するすべての端点の座標データを見つけ一つ目の前記点集合に書き込む；
【００５２】
S2403、現時点で完成された前記点集合のすべての端点により次の隣接の内部ベランダ板の最初の始点を見つけ、また次の隣接の内部ベランダ板の最初の始点により次の隣接の内部ベランダ板の補助点を見つける；
【００５３】
S2404、次の隣接の内部ベランダ板の補助点の座標データが前記ベランダグループのEnvelope対象の範囲を超えるかどうかを判断し、もしそうであれば、すべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの前記内部ベランダ板の端点の座標データを見つけそれぞれNつの前記点集合に対応的に書き込むという過程が終わり；そうでない場合、次の隣接の内部ベランダ板の最初の始点を中心点とし、次の隣接の内部ベランダ板の最初の始点と次の隣接の内部ベランダ板の補助点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに回転させる；
【００５４】
S2405、線分の回転角度が最も小さいまたは最も大きい場合に線分と重なり且つ中心点と接続される線分を見つける；
【００５５】
S2406、見つけられた線分の端点の座標データが前記ベランダグループのEnvelope対象の範囲を超えるかどうか、または現時点で完成された前記点集合に属するかどうかを判断し、前記ベランダグループのEnvelope対象の範囲を超え、または現時点で完成された前記点集合に属する場合、すべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの前記内部ベランダ板の端点の座標データを見つけそれぞれNつの前記点集合に対応的に書き込むという過程が終わり；前記ベランダグループのEnvelope対象の範囲を超えていなく、または現時点で完成された前記点集合に属しない場合、次の隣接の内部ベランダ板の最初の始点と次の隣接の内部ベランダ板の補助点により次の隣接の内部ベランダ板を構成するすべての端点の座標データを見つけ次の前記点集合に書き込み、そして前記S2403に戻る。
【００５６】
さらに、前記の一つ目の前記内部ベランダ板の最初の始点と一つ目の前記内部ベランダ板の補助点とを見つけることは、具体的に下記を含む：
【００５７】
前記ベランダグループのすべての端点の中で柱線または壁線に位置し且つ横座標が最も小さい第一端点を見つける；
【００５８】
前記ベランダグループを表すすべての線分の中で前記第一端点の位置する第一線分と平行し且つ距離が最も小さい第二線分を見つけ、そして前記第二線分の端点の中で前記第一端点との距離が最も小さい第二端点を見つける；
【００５９】
前記第一端点または前記第二端点との距離が最も小さい第一ドア線または第一窓線の端点を見つけ一つ目の前記内部ベランダ板の補助点とする；
【００６０】
前記第一端点と前記第二端点から一つ目の前記内部ベランダ板の補助点までの距離をそれぞれ計算し、一つ目の前記内部ベランダ板の補助点までの距離が最も小さい端点を一つ目の前記内部ベランダ板の最初の始点とする。
【００６１】
さらに、各前記内部ベランダ板に対し、前記内部ベランダ板の最初の始点と補助点により前記内部ベランダ板を構成するすべての端点の座標データを見つけ一つの前記点集合に対応的に書き込むことは、具体的に下記を含む：
【００６２】
S2421、前記最初の始点の座標データを前記点集合に書き込み、また前記最初の始点を中心点とし、前記最初の始点と前記補助点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに回転させる；
【００６３】
S2422、線分回転角度が最も小さいまたは最も大きい場合に線分と重なり且つ中心点と接続される線分を見つけ、また見つけられた線分の端点の座標データを前記点集合に書き込む；
【００６４】
S2423、現時点で前記点集合に書き込まれた前記端点が前記最初の始点であるかどうかを判断する；
【００６５】
S2424、現時点で前記点集合に書き込まれた前記端点が前記最初の始点でない場合、現時点で前記点集合に書き込まれた前記端点を中心点とし、現時点で前記点集合に書き込まれた前記端点と一つ前に前記点集合に書き込まれた端点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに続けて回転させ、また前記S2422に戻る；そして、
【００６６】
S2425、現時点で前記点集合に書き込まれた前記端点が前記最初の始点である場合、前記内部ベランダ板の前記最初の始点と前記補助点により前記内部ベランダ板を構成するすべての端点の座標データを前記点集合に書き込むという過程が終わる。
【００６７】
さらに、前記の現時点で完成された前記点集合の中のすべての端点により次の隣接の内部ベランダ板の最初の始点を見つけ、また次の隣接の内部ベランダ板の最初の始点により次の隣接の内部ベランダ板の補助点を見つけることは、具体的に下記を含む：
【００６８】
前記ベランダグループのすべての端点において、現時点で完成された前記点集合に属し、柱線または壁線に位置し且つ現時点で完成された点集合の最初の始点でない第三端点を見つける；
【００６９】
前記ベランダグループを表すすべての線分において、前記第三端点が位置する第三線分と平行し且つ距離が最も小さい第四線分を見つけ、また前記第四線分の端点において、前記第三端点との距離が最も小さい端点を見つけ次の隣接の内部ベランダ板の最初の始点とする；
【００７０】
前記第三端点または次の隣接の内部ベランダ板の最初の始点との距離が最も小さい次のドア線または次の窓線の端点を見つけ次の隣接の内部ベランダ板の補助点とする。
【００７１】
建築図面において、すべてのベランダの一部分が柱、壁、ドア及び窓の中の少なくとも一つの種類から構成されるため、従って、本発明の実施例による建築図面に基づくベランダ自動認識方法が認識された柱、壁、ドア及び窓に基づきベランダを認識する。
【００７２】
すべての外部ベランダ板輪郭線と内部ベランダ板輪郭線が本発明の実施例による建築図面に基づくベランダ自動認識方法の認識結果であり、建築図面に基づくベランダ自動認識方法により処理し取得されたすべての外部ベランダ板輪郭線と内部ベランダ板輪郭線の端点の座標データが建築対象外部ベランダと内部ベランダの三次元モデリングのために使用される。
【発明の効果】
【００７３】
既存技術と比べて、本発明の実施例による建築図面に基づくベランダ自動認識方法は、まず柱が位置するレイヤ、壁が位置するレイヤ、ドアと窓が位置するレイヤ、外部ベランダが位置するレイヤ及び内部ベランダが位置するレイヤを読み取り；外部ベランダに対し、同じグループの外部ベランダ線を表す各グループの線分により外部ベランダの手すり線を見つけ、各手すり線により外部ベランダ板を構成する端点の座標データを見つけ一つの点集合に対応的に書き込み；内部ベランダに対し、すべての内部ベランダを異なるベランダグループに分け、各ベランダグループのEnvelope対象によりベランダグループを構成するNつの内部ベランダ板の端点の座標データを見つけNつの点集合にそれぞれ対応的に書き込み；最後に各点集合のすべての端点が見つけられた順により順次接続された閉鎖線分を外部ベランダ板輪郭線または内部ベランダ板輪郭線として出力し；既存技術の建築図面が認識過程において、建築対象に対する認識効率が低く、認識精度が低い問題を解決し、これにより建築対象ベランダの認識効率と認識精度を高める。
【図面の簡単な説明】
【００７４】
【図１】図1は本発明の実施例による建築図面に基づくベランダ自動認識方法のEnvelope対象についての定義略図である；
【図２】図2は本発明の実施例による建築図面に基づくベランダ自動認識方法の点が線分にあるかどうかを判断することについての説明略図である；
【図３】図3A~図3Bは本発明の実施例による建築図面に基づくベランダ自動認識方法の線分交差についての説明略図である；
【図４】図4A~4Bは本発明の実施例による建築図面に基づくドアと窓の自動認識方法の線分共線についての説明略図である；
【図５】図5は本発明の実施例による建築図面に基づくベランダ自動認識方法の共通端点を持つ線分角度についての説明略図である；
【図６】図6は本発明による建築図面に基づくベランダ自動認識方法の優選の実施例の方法流れ図である；
【図７】図7は本発明による建築図面に基づくベランダ自動認識方法のステップS12の優選の実施例の具体的な流れ図である；
【図８】図8A~図8Cは本発明による建築図面に基づくベランダ自動認識方法のステップS12の優選の実施例の略図である；
【図９】図9は本発明による建築図面に基づくベランダ自動認識方法のステップS13の優選の実施例の具体的な流れ図である；
【図１０】図10は本発明による建築図面に基づくベランダ自動認識方法のステップS14の優選の実施例の具体的な流れ図である；
【図１１】図11A~図11Eは本発明による建築図面に基づくベランダ自動認識方法のステップS14の優選の実施例の略図である；
【図１２】図12は本発明による建築図面に基づくベランダ自動認識方法のもう一つの優選の実施例の方法流れ図である；
【図１３】図13は本発明による建築図面に基づくベランダ自動認識方法のステップS22の優選の実施例の具体的な流れ図である；
【図１４】図14は本発明による建築図面に基づくベランダ自動認識方法のステップS23の優選の実施例の具体的な流れ図である；
【図１５】図15A~図15Bは本発明による建築図面に基づくベランダ自動認識方法のステップS23の優選の実施例の略図である；
【図１６】図16は本発明による建築図面に基づくベランダ自動認識方法のステップS24の優選の実施例の具体的な流れ図である；
【図１７】図17は本発明による建築図面に基づくベランダ自動認識方法のステップS2401の優選の実施例の具体的な流れ図である；
【図１８】図18A~図18Bは本発明による建築図面に基づくベランダ自動認識方法のステップS2401の優選の実施例の略図である；
【図１９】図19は本発明による建築図面に基づくベランダ自動認識方法の内部ベランダ板の最初の始点と補助点により内部ベランダ板を構成するすべての端点の座標データを見つけ一つの点集合に対応的に書き込むことの優選の実施例の具体的な流れ図である；
【図２０】図20は本発明による建築図面に基づくベランダ自動認識方法のステップS2403の優選の実施例の具体的な流れ図である。
【発明を実施するための形態】
【００７５】
下記に本発明の実施例の附図を交え、本発明の実施例の技術方案を明確にはっきり説明し、説明した実施例がただ本発明の一部分の実施例で、全部の実施例ではないである。本発明の実施例に基づいて、本領域の普通技術者が創造的な労働を払わないことを前提に得る全部のその他の実施例は本発明の保護範囲に所属する。
【００７６】
本発明の実施例の説明をより明確にするために、まず本発明の実施例で使用される基準および技術用語を定義し説明する。
【００７７】
1、作図標準
【００７８】
建築図面において各建築対象の描き方には一定の標準があり、建築図面に基づく屋根自動認識技術もその標準に基づき開発されたものであり、本発明の実施例に採用される国家建築作図標準が「建築作図統一標準」（GB50104-2010）である。
【００７９】
2、Envelope対象
【００８０】
図1が示すように、本発明の実施例による建築図面に基づくベランダ自動認識方法のEnvelope対象についての定義略図であり、本発明の実施例において、各スペース要件が一つのEnvelope対象に対応し、それが一つのスペース要件の空間範囲を定義し、（Xmin，Ymin）、（Xmin，Ymax）、（Xmax，Ymax）、（Xmax，Ymin）という四つの点から構成され、各要件の最小の外接矩形である。
【００８１】
3、点が線分にあるかどうかを判断する
【００８２】
数学原理によると、既知の直線の方程式がA*x+B*y+C=0であり、点A座標が（x，y）であり、点Aから直線までの距離が
2019139756.tif 000003
であり、それに基づき点と線分との関係を判断する。
【００８３】
図2が示すように、本発明の実施例による建築図面に基づくベランダ自動認識方法の点が線分にあるかどうかを判断することについての説明略図であり、まず点A（x，y）が線分のEnvelope対象の中にあるかどうかを判断し、点A（x，y）が線分のEnvelope対象の中にある場合、公式により点A（x，y）から線分までの距離dの値を求め、求めた距離dの値が閾値0.005mより小さい場合、点A（x，y）が線分にあると判断される。
【００８４】
4、線分交差
【００８５】
二つの線分が交差する場合、二つの線分が必ず互いにまたがって立っていて、あるいは二つの線分の中のある線分の端点がちょうどもう一つの線分にある。
【００８６】
図3A~図3Bが示すように、本発明の実施例による建築図面に基づくベランダ自動認識方法の線分交差についての説明略図であり、線分A1B1の端点がA1（x1，y1）とB1（x2，y2）であり、線分A2B2の端点がA2（x3，y3）とB2（x4，y4）である。
【００８７】
図3Aが示すように、ベクトルaを（x2-x1，y2-y1）、ベクトルbを（x3-x1，y3-y1）と定義し、ベクトルaとベクトルbとの外積a*b=（x2-x1）*（y3-y1）-（x3-x1）*（y2-y1）を計算し、a*b>0の場合、ベクトルaがベクトルbの時計方向にあり；a*b<0の場合、ベクトルaがベクトルbの反時計方向にあり；a*b=0の場合、ベクトルaとベクトルbとが共線する。
【００８８】
同様に、図3Bが示すように、ベクトルaを（x2-x1，y2-y1）、ベクトルcを（x4-x1，y4-y1）と定義し、ベクトルaとベクトルcとの外積a*cを計算し、a*c>0の場合、ベクトルaがベクトルcの時計方向にあり；a*c<0の場合、ベクトルaがベクトルcの反時計方向にあり；a*c=0の場合、ベクトルaとベクトルcとが共線する。
【００８９】
ベクトルaとベクトルbとの外積、ベクトルaとベクトルcとの外積の積（a*b）*（a*c）を計算すると、
【００９０】
（a*b）*（a*c）>0の場合、ベクトルbとベクトルcとがいずれもベクトルaの同じ側にあり、すなわち、線分A2B2の二つの端点が線分A1B1の同じ側にある；
【００９１】
（a*b）*（a*c）<0の場合、ベクトルbとベクトルcとがいずれもベクトルaの異なる側にあり、すなわち、線分A2B2の二つの端点が線分A1B1の異なる側にある；
【００９２】
（a*b）*（a*c）=0の場合、ベクトルbとベクトルcとの中には少なくとも一つのベクトルがベクトルaと同じ方向であり、すなわち、線分A2B2の二つの端点の中には少なくとも一つの端点が線分A1B1の位置する直線にあり、線分A2B2にはちょうど線分A1B1に位置する端点があるかどうかをさらに判断する必要がある。
【００９３】
同様に、線分A1B1の二つの端点が線分A2B2の異なる側にあるかどうかを判断する。
【００９４】
任意一つの線分の二つの端点がもう一つの線分の異なる側にある場合、二つの線分が互いにまたがって立っていて、二つの線分が交差すると判断される。
二つの線分のうちある線分のある端点がちょうどもう一つの線分にある場合、二つの線分が交差すると判断される。
【００９５】
そうでない場合、、二つの線分が交差しないと判断される。
【００９６】
5、線分共線
【００９７】
共線とは、二つの線分が同じ直線にあり、あるいは、平行する二つの線分の間の距離が一定の閾値にあることである。
【００９８】
図4A~4Bが示すように、本発明の実施例による建築図面に基づくドアと窓の自動認識方法の線分共線についての説明略図であり、線分A3B3の端点がA3（x5，y5）とB3（x6，y6）であり、線分A4B4の端点がA4（x7，y7）とB4（x8，y8）であり、端点A3（x5，y5）とB3（x6，y6）との間の横座標の差の絶対値が
2019139756.tif 000004
であり、端点A4（x7，y7）とB4（x8，y8）との間の横座標の差の絶対値が
2019139756.tif 000005
である。
【００９９】
d1とd2の値がいずれも閾値0.0001m以下の場合、二つの線分がいずれもX軸に垂直し、図4Aが示すように、二つの線分の間の距離が
2019139756.tif 000006
である。
【０１００】
d1とd2の値がいずれも閾値0.0001mより大きい場合、二つの線分がいずれもX軸に垂直しなく、図4Bが示すように、二つの線分の傾きをそれぞれ
2019139756.tif 000007
と
2019139756.tif 000008
、二つの線分の切片をそれぞれb1=y5-k1*x5とb2=y7-k2*x7で計算し、このとき二つの線分の間の距離が線分A4B4の任意一つの端点から線分A3B3までの距離であり、すなわち
2019139756.tif 000009
である。
【０１０１】
上記求めた距離Dの値が閾値0.01mより小さく、且つ任意一つの線分にある一つの点がもう一つの線分にある場合、二つの線分が共線すると判断される。
【０１０２】
6、共通端点を持つ線分角度
【０１０３】
図5が示すように、本発明の実施例による建築図面に基づくベランダ自動認識方法の共通端点を持つ線分角度についての説明略図であり、二つの線分の端点がそれぞれA5（x9，y9）とB51（x10，y10）、A5（x9，y9）とB52（x11，y11）であり、共通端点A5（x9，y9）を持ち、二つの線分の角度が：
【０１０４】
2019139756.tif 000010
である。
【０１０５】
7、プリミティブ
【０１０６】
プリミティブとは、建築図面において各建築対象を表示する図形である。
【０１０７】
8、属性情報
【０１０８】
線分については、その属性情報が主に始点、終点及び点数を含み；アークについては、その属性情報が主にアークの中心、半径、始点と終点を含み；円については、その属性情報が主に円心と半径を含む。
【０１０９】
9、点集合
【０１１０】
点集合とは、座標データを持つ点で構成される集合である。
【０１１１】
上記標準と技術用語を定義し説明した後、下記に本発明の実施例の技術方案を具体的に紹介する。
【０１１２】
図6が示すように、本発明による建築図面に基づくベランダ自動認識方法の優選の実施例の方法流れ図であり、外部ベランダに適用し、ステップS11~S15を含む：
【０１１３】
前記ステップS11、柱が位置するレイヤ、壁が位置するレイヤ、ドアと窓が位置するレイヤ及び外部ベランダが位置するレイヤの情報を読み取り、これによりすべての前記レイヤのすべてのプリミティブの属性情報及び端点の座標データを取得する；
【０１１４】
前記ステップS12、前記外部ベランダが位置するレイヤにおいて、すべての同じグループの外部ベランダ線を表す線分を見つける；
【０１１５】
前記ステップS13、各グループの前記外部ベランダ線によりすべての前記外部ベランダの手すり線を見つける；
【０１１６】
前記ステップS14、各前記手すり線により、すべての前記プリミティブの端点において、外部ベランダ板を構成する端点の座標データを見つけ、一つの点集合に対応的に書き込む；
【０１１７】
前記ステップS15、各前記点集合のすべての端点が書き込む順で順次接続された閉鎖線分を外部ベランダ板の輪郭線として出力する。
【０１１８】
具体的には、前記ステップS11において、プリミティブの属性情報と端点の座標データがプリミティブを構成する図形の属性情報と端点の座標データであり、主に線分、アーク及び円の属性情報と、線分、アーク及び円の端点の座標データを含む。
【０１１９】
具体的には、前記ステップS12は、外部ベランダの位置するレイヤのすべての線分の端点の座標データにより、どの線分が同じグループの外部ベランダ線を表すかを判断し、同じグループの外部ベランダ線を表す線分を一つのグループにまとめ、そして同じ方法で各グループの外部ベランダ線を見つける。
【０１２０】
具体的には、前記ステップS13は、同じグループの外部ベランダ線を表す線分により、外部ベランダの手すり線を見つけ、そして同じ方法ですべての手すり線を見つける。
【０１２１】
具体的には、前記ステップS14において、一つの手すり線が一つの外部ベランダを表し、手すり線によりすべてのプリミティブの端点において手すり線が表す外部ベランダの外部ベランダ板を構成する端点を見つけ、そして見つけられた異なる手すり線が表す異なる外部ベランダの外部ベランダ板の端点の座標データをそれぞれ異なる点集合に対応的に書き込む。
【０１２２】
具体的には、前記ステップS15は、異なる手すり線により取得された異なる点集合のすべての端点を順番に接続し異なる外部ベランダ板輪郭線を生成し出力する。
【０１２３】
説明する必要があるのは、建築図面において、すべての外部ベランダの一部分が柱、壁、ドア及び窓の中の少なくとも一つの種類から構成されるため、本発明の実施例による建築図面に基づくベランダ自動認識方法が認識された柱、壁、ドア及び窓に基づき外部ベランダを認識する。
【０１２４】
説明する必要があるのは、すべての外部ベランダ板輪郭線が本発明の実施例による建築図面に基づくベランダ自動認識方法の認識結果であり、建築図面に基づくベランダ自動認識方法により処理し取得されたすべての外部ベランダ板輪郭線の端点の座標データが建築対象外部ベランダの三次元モデリングのために使用される。
【０１２５】
図7が示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS12の一つの優選の実施例の具体的な流れ図であり、前記の前記外部ベランダが位置するレイヤのすべての同じグループの外部ベランダ線を表す線分を見つけることは、各グループの前記外部ベランダ線に対し、具体的にステップS1201~ステップS1208を含む：
【０１２６】
前記ステップS1201、前記外部ベランダが位置するレイヤにおいて、すべての線分の中の互いに平行し且つ距離が予め設定された距離の閾値より小さい三つの線分を見つける；
【０１２７】
前記ステップS1202、前記三つの線分の両端のすべての端点が柱線または壁線にあるかどうかを判断する；
【０１２８】
前記ステップS1203、前記三つの線分の両端のすべての端点がいずれも柱線または壁線にある場合、前記三つの線分が同じグループの前記外部ベランダ線を表す線分である；
【０１２９】
前記ステップS1204、前記三つの線分の両端のすべての端点の中には一端のすべての端点だけが柱線または壁線にある場合、一端のすべての端点と前記三つの線分のもう一端のすべての端点とが対応的に重なる第一グループの平行線分を見つける；
【０１３０】
前記ステップS1205、前記第一グループの平行線分のもう一端のすべての端点が柱線または壁線にあるかどうかを判断し、もしそうであれば、前記三つの線分と前記第一グループの平行線分とが同じグループの前記外部ベランダ線を表す線分であり、そうでない場合、一端のすべての端点と前記第一グループの平行線分のもう一端のすべての端点とが対応的に重なる第二グループの平行線分を見つける；
【０１３１】
前記ステップS1206、前記第二グループの平行線分のもう一端のすべての端点が柱線または壁線にあるかどうかを判断し、もしそうであれば、前記三つの線分、前記第一グループの平行線分及び前記第二グループの平行線分が同じグループの前記外部ベランダ線を表す線分であり、そうでない場合、前記ステップS1201に戻る；
【０１３２】
前記ステップS1207、前記三つの線分の両端のすべての端点がいずれも柱線または壁線に位置しない場合、一端のすべての端点と前記三つの線分の一端のすべての端点とが対応的に重なる第三グループの平行線分及び一端のすべての端点と前記三つの線分のもう一端のすべての端点とが対応的に重なる第四グループの平行線分を見つける；
【０１３３】
前記ステップS1208、前記第三グループの平行線分と前記第四グループの平行線分のもう一端のすべての端点が柱線または壁線にあるかどうかを判断し、もしそうであれば、前記三つの線分、前記第三グループの平行線分及び前記第四グループの平行線分が同じグループの前記外部ベランダ線を表す線分であり、そうでない場合、前記ステップS1201に戻る。
【０１３４】
具体的には、前記ステップS1201の距離閾値が一般的に0.5mであり、まず外部ベランダが位置するレイヤで任意一つの線分を見つけ、そしてこの線分と平行し且つ端点の間の距離が0.5mより小さい二つの線分を見つけ、これにより条件を満たす三つの線分を見つける。
【０１３５】
具体的には、前記ステップS1202は、三つの線分のすべての端点の座標データにより端点が柱線または壁線にあるかどうかを判断する。
【０１３６】
具体的には、前記ステップS1204から見つけられた第一グループの平行線分が三つの互いに平行する線分を含み、且つ各線分の同じ一端の端点の座標データと前記ステップS1201から見つけられた三つの線分のうち柱線または壁線に位置しない一端の端点の座標データとが対応的に同じである。
【０１３７】
具体的には、前記ステップS1205から見つけられた第二グループの平行線分が三つの互いに平行する線分を含み、且つ各線分の同じ一端の端点の座標データと前記ステップS1204から見つけられた第一グループの平行線分のうち柱線または壁線に位置しない一端の端点の座標データとが対応的に同じである。
【０１３８】
具体的には、前記ステップS1207から見つけられた第三グループの平行線分と第四グループの平行線分とがいずれも三つの互いに平行する線分を含み、且つ第三グループの平行線分の各線分の同じ一端の端点の座標データと前記ステップS1201から見つけられた三つの線分のうち柱線または壁線に位置しない一端の端点の座標データとが対応的に同じであり、第四グループの平行線分の各線分の同じ一端の端点の座標データと前記ステップS1201から見つけられた三つの線分のうち柱線または壁線に位置しないもう一端の端点の座標データとが対応的に同じである。
【０１３９】
説明する必要があるのは、外部ベランダが位置するレイヤのすべての線分に対しいずれも前記ステップS1201~前記ステップS1208を実行することにより、各グループの中の同じグループの外部ベランダ線を表す線分を見つけ、これによりすべての外部ベランダ線を認識する。
【０１４０】
図8A~図8Cが示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS12の優選の実施例の略図であり、下記に同じグループの外部ベランダ線を表す線分を見つける具体的な過程を詳しく説明する：
【０１４１】
図8Aが示すように、図中の線分L11、線分L12及び線分L13が前記ステップS1201から見つけられた互いに平行し且つ間隔が予め設定された距離の閾値より小さい三つの線分であり、且つ線分L11、線分L12及び線分L13の両端のすべての端点がいずれも壁線にあるため、線分L11、線分L12及び線分L13が同じグループの外部ベランダ線を表す線分である。
【０１４２】
図8Bが示すように、図中の線分L11、線分L12及び線分L13が前記ステップS1201から見つけられた互いに平行し且つ間隔が予め設定された距離の閾値より小さい三つの線分であり、且つ線分L11、線分L12及び線分L13の両端のすべての端点の中には一端のすべての端点だけが壁線にある場合、一端のすべての端点と線分L11、線分L12及び線分L13のもう一端のすべての端点とが対応的に重なる第一グループの平行線分を見つけ、線分L21、線分L22及び線分L23が含まれ、図中の第一グループの平行線分のもう一端のすべての端点が壁線にある場合、線分L11、線分L12、線分L13、線分L21、線分L22及び線分L23が同じグループの外部ベランダ線を表す線分である。
【０１４３】
図8Cが示すように、図中の線分L11、線分L12及び線分L13が前記ステップS1201から見つけられた互いに平行し且つ間隔が予め設定された距離の閾値より小さい三つの線分であり、且つ線分L11、線分L12及び線分L13の両端のすべての端点の中には一端のすべての端点だけが壁線にある場合、一端のすべての端点と線分L11、線分L12及び線分L13のもう一端のすべての端点とが対応的に重なる第一グループの平行線分を見つけ、線分L21、線分L22及び線分L23が含まれ、図中の第一グループの平行線分のもう一端のすべての端点が柱線または壁線に位置しない場合、一端のすべての端点と第一グループの平行線分のもう一端のすべての端点とが対応的に重なる第二グループの平行線分を見つけ、線分L31、線分L32及び線分L33が含まれ、図中の第二グループの平行線分のもう一端のすべての端点が壁線にある場合、線分L11、線分L12、線分L13、線分L21、線分L22、線分L23、線分L31、線分L32及び線分L33が同じグループの外部ベランダ線を表す線分である。
【０１４４】
図8Cが示すように、図中の線分L21、線分L22及び線分L23が前記ステップS1201から見つけられた互いに平行し且つ間隔が予め設定された距離の閾値より小さい三つの線分であり、且つ線分L11、線分L12及び線分L13の両端のすべての端点がいずれも柱線または壁線に位置しない場合、一端のすべての端点と線分L11、線分L12及び線分L13の一端のすべての端点とが対応的に重なる第三グループの平行線分及び一端のすべての端点と線分L11、線分L12及び線分L13のもう一端のすべての端点とが対応的に重なる第四グループの平行線分を見つけ、第三グループの平行線分が線分L11、線分L12及び線分L13を含み、第四グループの平行線分が線分L31、線分L32及び線分L33を含み、且つ第三グループの平行線分と第四グループの平行線分のもう一端のすべての端点が壁線にある場合、線分L11、線分L12、線分L13、線分L21、線分L22、線分L23、線分L31、線分L32及び線分L33が同じグループの外部ベランダ線を表す線分である。
【０１４５】
図9が示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS13の優選の実施例の具体的な流れ図であり、前記の各グループの前記外部ベランダ線によりすべての前記外部ベランダの手すり線を見つけることは、各前記手すり線に対し、具体的にステップS1301~ステップS1303を含む：
【０１４６】
前記ステップS1301、同じグループの前記外部ベランダ線を表す線分がいくつのグループの平行線分を含むかを判断する；
【０１４７】
前記ステップS1302、一つのグループの平行線分を含む場合、前記一つのグループの平行線分と平行し且つ距離が最も小さい第一ドア線または第一窓線を見つけ、また前記一つのグループの平行線分のすべての線分の中の前記第一ドア線または前記第一窓線までの距離が最も小さい線分を見つけ前記手すり線とする；
【０１４８】
前記ステップS1303、二つまたは三つのグループの平行線分を含む場合、前記二つまたは三つのグループの平行線分のすべての線分の長さを計算し、各グループの平行線分のすべての線分の中の長さが最も小さい線分をそれぞれ見つけ、見つけられた線分が対応的に接続された折線分を前記手すり線とする。
【０１４９】
具体的には、前記ステップS1302において、同じグループの外部ベランダ線を表す線分が一つのグループの平行線分を含む場合、まず当該グループの平行線分と平行するドア線または窓線を見つけ、そして当該グループの平行線分の任意一つの線分から見つけられたドア線または窓線までの距離を計算し、これにより当該グループの平行線分と平行し且つ距離が最も小さい第一ドア線または第一窓線を見つけ、そして当該グループの平行線分の各線分から第一ドア線または第一窓線までの距離を計算し、最後に当該グループの平行線分のすべての線分の中で第一ドア線または第一窓線までの距離が最も小さい線分を見つけ手すり線とする。
【０１５０】
具体的には、前記ステップS1303において、同じグループの外部ベランダ線を表す線分が二つまたは三つのグループの平行線分を含む場合、線分の端点の座標データにより各グループの平行線分のすべての線分の長さを計算し大きさを比較し、これにより各グループの平行線分のすべての線分の中で長さが最も小さい線分を見つけ、各グループの平行線分のすべての線分の中で長さが最も小さい線分が対応的に接続された折線分を手すり線とする。
【０１５１】
説明する必要があるのは、同じグループの外部ベランダ線を表す各グループの線分に対し、いずれも前記ステップS1301~前記ステップS1303を実行することにより、同じグループの外部ベランダ線を表す各グループの線分の中の手すり線を見つけ、これによりすべての手すり線を認識する。
【０１５２】
図10が示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS14の優選の実施例の具体的な流れ図であり、前記の各前記手すり線によりすべての前記プリミティブの端点の中で外部ベランダ板を構成する端点の座標データを見つけ一つの点集合に対応的に書き込むことは、各外部ベランダ板に対し、ステップS1401~ステップS1406によりすべての前記プリミティブの端点の中で前記外部ベランダ板を構成する端点の座標データを見つけ一つの点集合に対応的に書き込む：
【０１５３】
前記ステップS1401、前記手すり線のうち柱線または壁線に位置する二つの端点の任意一つの端点を最初の始点とし、そして前記最初の始点の座標データを前記点集合に書き込む；
【０１５４】
前記ステップS1402、前記手すり線との距離が最も小さい第二ドア線または第二窓線を見つけ、前記第二ドア線または前記第二窓線の任意一つの端点を補助点とし、前記最初の始点を中心点とし、前記最初の始点と前記補助点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに回転させる；
【０１５５】
前記ステップS1403、前記線分回転角度が最も小さいまたは最も大きい場合に前記線分と重なり且つ中心点と接続される線分を見つけ、また見つけられた線分の端点の座標データを前記点集合に書き込む；
【０１５６】
前記ステップS1404、現時点で前記点集合に書き込まれた前記端点が前記最初の始点であるかどうかを判断する；
【０１５７】
前記ステップS1405、現時点で前記点集合に書き込まれた前記端点が前記最初の始点でない場合、現時点で前記点集合に書き込まれた前記端点を中心点とし、現時点で前記点集合に書き込まれた前記端点と一つ前に前記点集合に書き込まれた端点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに続けて回転させ、また前記ステップS1403に戻る；そして、
【０１５８】
前記ステップS1406、現時点で前記点集合に書き込まれた前記端点が前記最初の始点である場合、すべての前記プリミティブの端点の中で前記外部ベランダ板を構成する端点の座標データを見つけ前記点集合に書き込むという過程が終わる。
【０１５９】
具体的には、前記ステップS1402において、最初の始点と補助点とを接続する線分を制御し中心点を中心として時計回りに回転させる場合、その後に前記ステップS1405を実行するとき、現時点で点集合に書き込まれた端点と一つ前に点集合に書き込まれた端点とを接続する線分をいずれも制御し中心点を中心として続けて時計回りに回転させ；前記ステップS1402において、最初の始点と補助点とを接続する線分を制御し中心点を中心として反時計回りに回転させる場合、その後に前記ステップS1405を実行するとき、現時点で点集合に書き込まれた端点と一つ前に点集合に書き込まれた端点とを接続する線分をいずれも制御し中心点を中心として続けて反時計回りに回転させる。
【０１６０】
具体的には、前記ステップS1403において、線分回転角度が最も小さい場合に線分と重なり且つ中心点と接続される線分を見つけたら、その後に前記ステップS1403を実行するとき、線分回転角度が最も小さい場合に線分と重なり且つ中心点と接続される線分をいずれも見つけ；前記ステップS1403において、線分回転角度が最も大きい場合に線分と重なり且つ中心点と接続される線分を見つけたら、その後に前記ステップS1403を実行するとき、線分回転角度が最も大きい場合に線分と重なり且つ中心点と接続される線分をいずれも見つける。
【０１６１】
説明する必要があるのは、前記ステップS1403において、線分回転角度が最も小さいまたは最も大きい場合に線分と重なり且つ中心点と接続される線分を見つけることについて、ここで回転線分と重なる線分を見つけることは回転線分自身が含まれていなく；見つけられた線分が中心点と接続されることは具体的に見つけられた線分の一つの端点の座標データが中心点の座標データと同じであり、見つけられた線分のもう一つの端点の座標データを点集合に書き込むことを示す。
【０１６２】
具体的には、前記ステップS1404は、現時点で点集合に書き込まれた端点の座標データが最初の始点の座標データと同じであるかどうかにより現時点で点集合に書き込まれた端点が最初の始点であるかどうかを判断する。
【０１６３】
説明する必要があるのは、各手すり線が代表する外部ベランダに対しいずれも前記ステップS1401~前記ステップS1406を実行することによりすべての手すり線が代表する外部ベランダの外部ベランダ板の端点の座標データを見つけそれぞれ一つの点集合に書き込む。
【０１６４】
図11A~図11Eが示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS14の優選の実施例の略図であり、図11Aが示すように、同じグループの外部ベランダ線を表す線分が三つのグループの平行線分を含み、線分L11、線分L12及び線分L13が第一グループの平行線分であり、線分L21、線分L22及び線分L23が第二グループの平行線分であり、線分L31、線分L32及びL33が第三グループの平行線分であり、各グループの平行線分のすべての線分の中で長さが最も小さい線分を見つけ、それぞれ線分L11、線分L21及び線分L31であり、線分L11、線分L21及び線分L31が対応的に接続される折線分L11- L21- L31を手すり線とする。
【０１６５】
図中の外部ベランダの一部分が壁、ドア及び窓により組み合わせられるため、外部ベランダに対する認識が認識された壁、ドア及び窓に基づき行われるものであり、その中には：
【０１６６】
図中の壁線と壁線とが接続し且つ共線する状況に対し、接続し且つ共線する壁線のすべての端点の横座標の大きさを比較し、すべての端点の中で横座標が最も小さい端点と横座標が最も大きい端点とが接続することにより新たな壁線を生成し、生成された新たな壁線で図中において接続し且つ共線する壁線を対応的に取り替え、図11Bが示すように、新たな壁線ABで元の接続し且つ共線する壁線を取り替える。
【０１６７】
図中において扇形ドアを表すプリミティブに対し、まずアークのうち線分と接続されない一端と、線分のうちアークと接続されない一端とを接続する線分を扇形ドアの最初のドア線とし、そしてすべての壁線のうち、最初のドア線と垂直し且つそれぞれ最初のドア線の両端との距離が最も小さい二つの壁線を見つけ、最後に最初のドア線を見つけられた二つの壁線と交差するまで延長し二つの交点を求め、二つの交点を接続する線分を扇形ドアのドア線とし、生成されたドア線で図中において扇形ドアを表すプリミティブを対応的に取り替え、図11Bが示すように、ドア線CDで元の扇形ドアを表すプリミティブを取り替える。
【０１６８】
図中においてストレート窓を表すプリミティブに対し、まずストレート窓を表すプリミティブの中の任意一つの線分を見つけストレート窓の最初の窓線とし、ここで手すり線との距離が最も小さい線分を見つけ最初の窓線とし、そしてすべての壁線のうち、最初の窓線と垂直し且つそれぞれ最初の窓線の両端との距離が最も小さい二つの壁線を見つけ、最後に最初の窓線を見つけられた二つの壁線と交差するまで延長し二つの交点を求め、二つの交点を接続する線分をストレート窓の窓線とし、生成された窓線で図中においてストレート窓を表すプリミティブを対応的に取り替え、図11Bが示すように、窓線EAで元のストレート窓を表すプリミティブを取り替える。
【０１６９】
壁、ドア及び窓を認識処理した後、外部ベランダに対する認識の具体的過程は下記の通りである：
【０１７０】
手すり線1234のうち壁線に位置する二つの端点がそれぞれ端点1と端点4であり、ここで端点1を最初の始点とし、また最初の始点1の座標データを点集合に書き込む。
【０１７１】
手すり線1234との距離が最も小さい第二ドア線がドア線56であり、ドア線56の二つの端点がそれぞれ端点5と端点6であり、ここで端点5を補助点とし、最初の始点1を中心点とし、最初の始点1と補助点5とを接続する線分15を制御し中心点1を中心として反時計回りに回転させる（時計回りに回転させる場合も同じである）。
【０１７２】
線分15と重なり且つ中心点1と接続される線分を見つけ、線分12、線分17及び線分18が含まれ、且つ線分15が反時計回りに回転する間に角度∠512、角度∠517及び角度∠518を生成し、三つの角度の大きさを比較し、角度∠512が最も小さく、線分15の回転角度が最も小さい場合（最も大きい場合も同じである）に線分15と重なり且つ中心点1と接続される線分が線分12であり、線分12の端点2の座標データを点集合に書き込み、図11Cのようである。
【０１７３】
現時点で点集合に書き込まれた端点2が最初の始点1でないと判断すると、現時点で点集合に書き込まれた端点2を中心点とし、現時点で点集合に書き込まれた端点2と一つ前に点集合に書き込まれた端点1とを接続する線分21を制御し中心点2を中心として続けて反時計回りに回転させる。
【０１７４】
線分21と重なり且つ中心点2と接続される線分が線分23しかなく、且つ線分21が反時計回りに回転する間に角度∠123を生成し、線分21の回転角度が最も小さい場合に線分21と重なり且つ中心点2と接続される線分が線分23であり、線分23の端点3の座標データを点集合に書き込み、図11Dのようである。
【０１７５】
現時点で点集合に書き込まれた端点3が最初の始点1であるかどうかを判断し、そうでない場合、現時点で点集合に書き込まれた端点が最初の始点1であるまで、同じ方法で条件を満たす次の端点の座標データを見つけ点集合に書き込み、また最初の始点1であるかどうかを判断する。
【０１７６】
現時点で点集合に書き込まれた端点が最初の始点1である場合、すべてのプリミティブの端点の中で外部ベランダ板を構成する端点の座標データを見つけて点集合に書き込む過程が終わり、見つけられたすべての端点が順に端点1、端点2、端点3、端点4、端点9、端点10、端点11、端点6、端点5、端点12、端点8及び端点1であり、図11Eのようである。
【０１７７】
同様に、各手すり線によりすべてのプリミティブの端点の中の外部ベランダ板を構成する端点の座標データを見つけてそれぞれ異なる点集合に書き込み、最後に異なる手すり線により取得された異なる点集合の中のすべての端点を見つけられた順により接続された閉鎖線分を異なる外部ベランダ板輪郭線として出力し、すべての手すり線が代表する外部ベランダの外部ベランダ板に対する認識を完成する。
【０１７８】
図12が示すように、本発明による建築図面に基づくベランダ自動認識方法のもう一つの優選の実施例の方法流れ図であり、内部ベランダに適用し、ステップS21~ステップS25を含む：
【０１７９】
前記ステップS21、柱が位置するレイヤ、壁が位置するレイヤ、ドアと窓が位置するレイヤ及び内部ベランダが位置するレイヤの情報を読み取ることによりすべての前記レイヤの中ですべてのプリミティブの属性情報及び端点の座標データを取得する；
【０１８０】
前記ステップS22、前記内部ベランダが位置するレイヤですべての同じベランダグループを表す線分を見つけ；その中に、前記ベランダグループがNつの前記内部ベランダの接続により構成され、Nが1より大きい整数である；
【０１８１】
前記ステップS23、同じ前記ベランダグループを表す各グループの線分によりすべての前記ベランダグループのEnvelope対象を求める；
【０１８２】
前記ステップS24、各前記ベランダグループのEnvelope対象によりすべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの内部ベランダ板の端点の座標データを見つけそれぞれNつの点集合に対応的に書き込む；
【０１８３】
前記ステップS25、各前記点集合の中のすべての端点が書き込み順により接続された閉鎖線分を内部ベランダ板輪郭線として出力する。
【０１８４】
具体的には、前記ステップS21において、プリミティブの属性情報と端点の座標データがプリミティブを構成する図形の属性情報と端点の座標データであり、主に線分、アーク及び円の属性情報と、線分、アーク及び円の端点の座標データを含む。
【０１８５】
具体的には、前記ステップS22は内部ベランダの位置するレイヤのすべての線分の端点の座標データにより、どの線分が同じベランダグループを表すかを判断し、同じベランダグループを表す線分を一つのグループにまとめ、そして同じ方法で各ベランダグループを見つける。
【０１８６】
具体的には、前記ステップS23は同じベランダグループを表す線分の端点の座標データによりベランダグループのEnvelope対象を求め、そして同じ方法ですべてのベランダグループのEnvelope対象を求める。
【０１８７】
具体的には、前記ステップS24において、一つのベランダグループがNつの内部ベランダを含むため、ベランダグループのEnvelope対象によりすべてのプリミティブの端点の中でNつの内部ベランダを構成する内部ベランダ板の端点の座標データを見つけ、また見つけられた異なるNつの内部ベランダ板の端点の座標データをそれぞれNつの異なる点集合に対応的に書き込む。
【０１８８】
具体的には、前記ステップS25は異なるベランダグループにより取得された異なる点集合のすべての端点を順番に接続し異なる内部ベランダ板輪郭線を生成し出力する。
【０１８９】
説明する必要があるのは、建築図面において、すべての内部ベランダの一部分が柱、壁、ドア及び窓の中の少なくとも一つの種類から構成されるため、従って、本発明の実施例による建築図面に基づくベランダ自動認識方法は認識された柱、壁、ドア及び窓に基づき内部ベランダを認識する。
【０１９０】
説明する必要があるのは、すべての内部ベランダ板輪郭線が本発明の実施例による建築図面に基づくベランダ自動認識方法の認識結果であり、建築図面に基づくベランダ自動認識方法により取得したすべての内部ベランダ板輪郭線の端点の座標データが建築対象内部ベランダの三次元モデリングのために使用される。
【０１９１】
図13が示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS22の優選の実施例の具体的な流れ図であり、前記の前記内部ベランダが位置するレイヤですべての同じベランダグループを表す線分を見つけることは、各グループの同じ前記ベランダグループを表す線分に対し、具体的にステップS2201~ステップS2206を含む：
【０１９２】
前記ステップS2201、前記内部ベランダが位置するレイヤにおいて、すべての線分のうち一端のすべての端点が柱線または壁線に位置し、互いに平行し且つ間隔が予め設定された距離の閾値より小さい二つの線分を見つける；
【０１９３】
前記ステップS2202、前記二つの線分とそれぞれ接続されるすべての線分を見つける；
【０１９４】
前記ステップS2203、現時点で見つけられたすべての線分の中には端点が柱線または壁線に位置する線分があるかどうかを判断する；
【０１９５】
前記ステップS2204、現時点で見つけられたすべての線分の中には端点が柱線または壁線に位置する線分がない場合、現時点で見つけられたすべての線分とそれぞれ接続されるすべての線分を見つけ、そして前記ステップS2203に戻る；
【０１９６】
前記ステップS2205、現時点で見つけられたすべての線分の中には端点が柱線または壁線に位置する線分がある場合、端点が柱線または壁線に位置しない線分とそれぞれ接続されるすべての線分を見つけ、そして前記ステップS2203に戻る；
【０１９７】
前記ステップS2206、現時点で見つけられたすべての線分の端点がいずれも柱線または壁線に位置する場合、すべての見つけられた線分が一つのグループの同じ前記ベランダグループを表す線分である。
【０１９８】
具体的には、前記ステップS2201の距離の閾値が一般的に0.5mとされ、まず内部ベランダが位置するレイヤで一つの端点が柱線または壁線に位置する任意一つの線分を見つけ、そしてこの線分と平行し且つ端点の間の距離が0.5mより小さい一つの線分を見つけ、これにより条件を満たす二つの線分を見つける。
【０１９９】
具体的には、前記ステップS2202は、内部ベランダが位置するレイヤにおいてすべての線分の中で二つの線分とそれぞれ接続されるすべての線分を見つける。
【０２００】
具体的には、前記ステップS2203は線分の端点の座標データにより端点が柱線または壁線に位置するかどうかを判断する。
【０２０１】
具体的には、前記ステップS2204~前記ステップS2206は、見つけられたすべての線分には柱線または壁線に位置する端点があるかどうかにより同じベランダグループを表す線分を見つけたかどうかを判断し、柱線または壁線に位置する端点がないすべての線分に対し、内部ベランダが位置するレイヤの中でこれらの線分とそれぞれ接続されるすべての線分を見つけ、そして現時点で見つけられたすべての線分には柱線または壁線に位置する端点があるまで、現時点で見つけられたすべての線分には柱線または壁線に位置する端点があるかどうかを判断し、前記ステップS2201~前記ステップS2205においてすべての見つけられた線分が同じベランダグループを表す一つのグループの線分である。
【０２０２】
説明する必要があるのは、同じベランダグループを表す線分が内部ベランダの位置するレイヤのすべての線分のうち接続された一つのグループの線分であり、且つ当該グループの線分のうち接続されていない一端の端点がいずれも柱線または壁線に位置する。
【０２０３】
説明する必要があるのは、内部ベランダが位置するレイヤのすべての線分に対し前記ステップS2201~前記ステップS2206を実行することにより、同じベランダグループを表す各グループの線分を見つけ、これによりすべてのベランダグループを認識する。
【０２０４】
図14が示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS23の優選の実施例の具体的な流れ図であり、前記の同じ前記ベランダグループを表す各グループの線分によりすべての前記ベランダグループのEnvelope対象を求めることは、各前記ベランダグループのEnvelope対象に対し、具体的にステップS2301~ステップS2303を含む：
【０２０５】
前記ステップS2301、同じ前記ベランダグループを表すすべての線分の端点の座標データの中から最小横座標、最大横座標、最小縦座標及び最大縦座標を見つける；
【０２０６】
前記ステップS2302、それぞれ前記最小横座標を横座標、前記最小縦座標を縦座標として第一補助点を生成し、前記最小横座標を横座標、前記最大縦座標を縦座標として第二補助点を生成し、前記最大横座標を横座標、前記最大縦座標を縦座標として第三補助点を生成し、前記最大横座標を横座標、前記最小縦座標を縦座標として第四補助点を生成する；
【０２０７】
前記ステップS2303、前記第一補助点、前記第二補助点、前記第三補助点及び前記第四補助点が順番に接続し生成した矩形が前記ベランダグループのEnvelope対象である。
【０２０８】
説明する必要があるのは、同じベランダグループを表す各グループの線分に対しいずれも前記ステップS2301~前記ステップS2303を実行することにより、各ベランダグループのEnvelope対象を見つけ、これによりすべてのベランダグループのEnvelope対象を認識する。
【０２０９】
図15A~図15Bが示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS23の優選の実施例の略図であり、図15Aが示すように、図中のベランダグループが四つの内部ベランダの接続により構成され、それぞれ内部ベランダB1、内部ベランダB2、内部ベランダB3及び内部ベランダB4である。
【０２１０】
当該ベランダグループを表すすべての線分の端点の座標データを見つけ、すべての端点の横座標の大きさと縦座標の大きさをそれぞれ比較し、すべての端点の座標データの中の最小横座標Xminを見つけ端点1の横座標とし、最大横座標Xmaxを見つけ端点4の横座標とし、最小縦座標Yminを見つけ端点3の縦座標とし、最大縦座標Ymaxを見つけ端点2の縦座標とする。
【０２１１】
端点1の横座標を横座標とし、端点3の縦座標を縦座標として第一補助点A（Xmin，Ymin）を生成し、端点1の横座標を横座標とし、端点2の縦座標を縦座標として第二補助点B（Xmin，Ymax）を生成し、端点4の横座標を横座標とし、端点2の縦座標を縦座標として第三補助点C（Xmax，Ymax）を生成し、端点4の横座標を横座標とし、端点3の縦座標を縦座標として第四補助点D（Xmax，Ymin）を生成する。
【０２１２】
第一補助点A（Xmin，Ymin）、第二補助点B（Xmin，Ymax）、第三補助点C（Xmax，Ymax）及び第四補助点D（Xmax，Ymin）が順番に接続し生成した矩形ABCDが当該ベランダグループのEnvelope対象であり、図15Bのようである。
【０２１３】
同様に、同じベランダグループを表す各グループの線分の端点の座標データにより各ベランダグループのEnvelope対象を求め、すべてのベランダグループのEnvelope対象に対する認識を完成する。
【０２１４】
図16が示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS24の優選の実施例の具体的な流れ図であり、前記の各前記ベランダグループのEnvelope対象によりすべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの内部ベランダ板の端点の座標データを見つけそれぞれNつの点集合に対応的に書き込むことは、各前記ベランダグループに対し、ステップS2401~ステップS2406によりすべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの前記内部ベランダ板の端点の座標データを見つけそれぞれNつの点集合に対応的に書き込む：
【０２１５】
前記ステップS2401、一つ目の前記内部ベランダ板の最初の始点と一つ目の前記内部ベランダ板の補助点とを見つける；
【０２１６】
前記ステップS2402、一つ目の前記内部ベランダ板の最初の始点と一つ目の前記内部ベランダ板の補助点により一つ目の前記内部ベランダ板を構成するすべての端点の座標データを見つけ一つ目の前記点集合に書き込む；
【０２１７】
前記ステップS2403、現時点で完成された前記点集合のすべての端点により次の隣接の内部ベランダ板の最初の始点を見つけ、また次の隣接の内部ベランダ板の最初の始点により次の隣接の内部ベランダ板の補助点を見つける；
【０２１８】
前記ステップS2404、次の隣接の内部ベランダ板の補助点の座標データが前記ベランダグループのEnvelope対象の範囲を超えるかどうかを判断し、もしそうであれば、すべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの前記内部ベランダ板の端点の座標データを見つけそれぞれNつの前記点集合に対応的に書き込むという過程が終わり；そうでない場合、次の隣接の内部ベランダ板の最初の始点を中心点とし、次の隣接の内部ベランダ板の最初の始点と次の隣接の内部ベランダ板の補助点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに回転させる；
【０２１９】
前記ステップS2405、線分の回転角度が最も小さいまたは最も大きい場合に線分と重なり且つ中心点と接続される線分を見つける；
【０２２０】
前記ステップS2406、見つけられた線分の端点の座標データが前記ベランダグループのEnvelope対象の範囲を超えるかどうか、または現時点で完成された前記点集合に属するかどうかを判断し、前記ベランダグループのEnvelope対象の範囲を超え、または現時点で完成された前記点集合に属する場合、すべての前記プリミティブの端点の中で前記ベランダグループを構成するNつの前記内部ベランダ板の端点の座標データを見つけそれぞれNつの前記点集合に対応的に書き込むという過程が終わり；前記ベランダグループのEnvelope対象の範囲を超えていなく、または現時点で完成された前記点集合に属しない場合、次の隣接の内部ベランダ板の最初の始点と次の隣接の内部ベランダ板の補助点により次の隣接の内部ベランダ板を構成するすべての端点の座標データを見つけ次の前記点集合に書き込み、そして前記ステップS2403に戻る。
【０２２１】
説明する必要があるのは、一つのベランダグループがNつの内部ベランダを含むため、横座標が最も小さい端点（横座標が同じ且ついずれも最も小さい端点が複数ある場合、その中から縦座標が最も小さい端点を選択する）の位置する内部ベランダを一つ目の内部ベランダとし、まず一つ目の内部ベランダの内部ベランダ板を認識し、そして、ベランダグループに含まれるNつの内部ベランダの内部ベランダ板を認識したまで、現時点で認識完了された内部ベランダ板に基づき次の隣接の内部ベランダの内部ベランダ板を認識する。
【０２２２】
具体的には、前記ステップS2401がベランダグループを表す線分の端点の座標データにより一つ目の内部ベランダ板の最初の始点と補助点とを見つける。
【０２２３】
具体的には、前記ステップS2402は、見つけられた一つ目の内部ベランダ板を構成するすべての端点の座標データを一つ目の内部ベランダ板の対応する点集合に書き込む。
【０２２４】
具体的には、前記ステップS2403は、現時点で既に認識された内部ベランダ板の対応する点集合の端点により現時点で既に認識された内部ベランダ板の隣接の次の内部ベランダの内部ベランダ板の最初の始点を見つける。
【０２２５】
具体的には、前記ステップS2404~前記ステップS2406は、まず見つけられた次の隣接の内部ベランダ板の補助点の座標データがベランダグループのEnvelope対象の範囲を超えるかどうかを判断することによりベランダグループのNつの内部ベランダの内部ベランダ板が認識完了されたかどうかを判断し、超える場合、認識が完了されたことを示し；超えない場合、次の隣接の内部ベランダ板の最初の始点と補助点により一つ目の条件を満たす端点を見つけ、また当該端点の座標データがベランダグループのEnvelope対象の範囲を超えるかどうかまたは現時点で既に認識完了された内部ベランダ板の対応する点集合に属するかどうかを判断し、当該端点の座標データがベランダグループのEnvelope対象の範囲を超えるまたは当該端点の座標データが現時点で既に認識完了された内部ベランダ板の対応する点集合に属する場合、認識が完了されたことを示し；当該端点の座標データがベランダグループのEnvelope対象の範囲を超えなく、現時点で既に認識完了された内部ベランダ板の対応する点集合にも属しない場合、次の隣接の内部ベランダ板の最初の始点と補助点により次の隣接の内部ベランダ板を構成するすべての端点の座標データを見つけ次の隣接の内部ベランダ板の対応する点集合に書き込み；次の隣接の内部ベランダ板の対応する点集合を現時点で既に認識された内部ベランダ板の対応する点集合とし、そして、次の隣接の内部ベランダの内部ベランダ板を認識し、Nつ目の内部ベランダの内部ベランダ板を認識すれば、認識が完了されることを示す。
【０２２６】
説明する必要があるのは、前記ステップS2405において、見つけられた線分が中心点と接続されることは、具体的に、見つけられた線分の一つの端点の座標データと中心点の座標データとが同じであることを指す。
【０２２７】
説明する必要があるのは、各ベランダグループのEnvelope対象にいずれも前記ステップS2401~前記ステップS2406を実行することにより、すべてのベランダグループに含まれる内部ベランダの内部ベランダ板の対応する点集合を見つける。
【０２２８】
図17が示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS2401の優選の実施例の具体的な流れ図であり、前記の一つ目の前記内部ベランダ板の最初の始点と一つ目の前記内部ベランダ板の補助点とを見つけることは、具体的にステップS2411~ステップS2414を含む：
【０２２９】
前記ステップS2411、前記ベランダグループのすべての端点の中で柱線または壁線に位置し且つ横座標が最も小さい第一端点を見つける；
【０２３０】
前記ステップS2412、前記ベランダグループを表すすべての線分の中で前記第一端点の位置する第一線分と平行し且つ距離が最も小さい第二線分を見つけ、そして前記第二線分の端点の中で前記第一端点との距離が最も小さい第二端点を見つける；
【０２３１】
前記ステップS2413、前記第一端点または前記第二端点との距離が最も小さい第一ドア線または第一窓線の端点を見つけ一つ目の前記内部ベランダ板の補助点とする；
【０２３２】
前記ステップS2414、前記第一端点と前記第二端点から一つ目の前記内部ベランダ板の補助点までの距離をそれぞれ計算し、一つ目の前記内部ベランダ板の補助点までの距離が最も小さい端点を一つ目の前記内部ベランダ板の最初の始点とする。
【０２３３】
具体的には、前記ステップS2411は、ベランダグループを表す線分のすべての端点の中で柱線または壁線に位置する端点を見つけ、そしてこれらの端点の横座標の大きさを比較し、横座標が最も小さい端点を第一端点とする。
【０２３４】
説明する必要があるのは、横座標が同じ且ついずれも最も小さい端点が複数ある場合、その中の縦座標が最も小さい端点を選択し第一端点とする。
【０２３５】
具体的には、前記ステップS2412は、まずベランダグループを表すすべての線分の中で第一端点の位置する線分を見つけ第一線分とし、そしてベランダグループを表すすべての線分の中で第一線分と平行し且つ距離が最も小さい線分を見つけ第二線分とし、第二線分の二つの端点から第一端点までの距離をそれぞれ計算し、二つの端点の中で第一端点との距離が最も小さい端点を第二端点とする。
【０２３６】
具体的には、前記ステップS2413はまず第一端点または第二端点との距離が最も小さい第一ドア線または第一窓線を見つけ、そして第一端点または第二端点からこれらの第一ドア線または第一窓線の端点までの距離を計算し、その中から最も小さい距離が対応する第一ドア線または第一窓線の端点を選択し一つ目の内部ベランダ板の補助点とする。
【０２３７】
説明する必要があるのは、各ベランダグループのEnvelope対象に対しいずれも前記ステップS2411~前記ステップS2414を実行することにより、すべてのベランダグループの中の一つ目の内部ベランダの内部ベランダ板の最初の始点と補助点を見つける。
【０２３８】
図18A~図18Bが示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS2401の優選の実施例の略図であり、図18Aが示すように、図中には壁線と柱の柱線との共線の状況及びストレート窓に対しそれぞれ認識処理を行い、生成された新たな線分により図中の共線の壁線と柱線を対応的に取り替え、生成された窓線で図中のストレート窓を表すプリミティブを対応的に取り替える。
【０２３９】
図18Bが示すように、ベランダグループを表す線分のすべての端点の中で柱線または壁線に位置する端点を見つけ、またこれらの端点の横座標の大きさを比較し、横座標が最も小さい端点が端点1であれば、第一端点が端点1である。
【０２４０】
ベランダグループを表すすべての線分において、第一端点1が位置する線分を線分L1とすれば、第一線分が線分L1であり、ベランダグループを表すすべての線分において、第一線分L1と平行し且つ距離が最も小さい線分を見つけ線分L2とすれば、第二線分が線分L2であり、第二線分L2の二つの端点から第一端点1までの距離をそれぞれ計算し、二つの端点の中で第一端点1までの距離が最も小さい端点が端点2であれば、第二端点が端点2である。
【０２４１】
第一端点1（第二端点2の場合も同様である）との距離が最も小さい第一窓線を見つけ、窓線W1、窓線W2、窓線W3及び窓線W4が含まれ、第一端点1から窓線W1、窓線W2、窓線W3及び窓線W4の端点までの距離をそれぞれ計算し、その中に距離が最も小さいのが窓線W1の端点3であり、端点3を一つ目の内部ベランダ板の補助点とする。
【０２４２】
第一端点1と第二端点2から補助点3までの距離をそれぞれ計算し、その中に距離が最も小さいのが第一端点1であり、第一端点1を一つ目の内部ベランダ板の最初の始点とする。
【０２４３】
同様に、各ベランダグループに対し、同じ方法によりすべてのベランダグループが対応する一つ目の内部ベランダの内部ベランダ板の最初の始点と補助点を見つけることができる。
【０２４４】
図19が示すように、本発明による建築図面に基づくベランダ自動認識方法の内部ベランダ板の最初の始点と補助点により内部ベランダ板を構成するすべての端点の座標データを見つけ一つの点集合に対応的に書き込むことの優選の実施例の具体的な流れ図であり、各前記内部ベランダ板に対し、前記内部ベランダ板の最初の始点と補助点により前記内部ベランダ板を構成するすべての端点の座標データを見つけ一つの前記点集合に対応的に書き込むことは、具体的にステップS2421~ステップS2425を含む：
【０２４５】
前記ステップS2421、前記最初の始点の座標データを前記点集合に書き込み、また前記最初の始点を中心点とし、前記最初の始点と前記補助点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに回転させる；
【０２４６】
前記ステップS2422、線分回転角度が最も小さいまたは最も大きい場合に線分と重なり且つ中心点と接続される線分を見つけ、また見つけられた線分の端点の座標データを前記点集合に書き込む；
【０２４７】
前記ステップS2423、現時点で前記点集合に書き込まれた前記端点が前記最初の始点であるかどうかを判断する；
【０２４８】
前記ステップS2424、現時点で前記点集合に書き込まれた前記端点が前記最初の始点でない場合、現時点で前記点集合に書き込まれた前記端点を中心点とし、現時点で前記点集合に書き込まれた前記端点と一つ前に前記点集合に書き込まれた端点とを接続する線分を制御し中心点を中心として時計回りまたは反時計回りに続けて回転させ、また前記ステップS2422に戻る；そして、
【０２４９】
前記ステップS2425、現時点で前記点集合に書き込まれた前記端点が前記最初の始点である場合、前記内部ベランダ板の前記最初の始点と前記補助点により前記内部ベランダ板を構成するすべての端点の座標データを前記点集合に書き込むという過程が終わる。
【０２５０】
具体的には、前記ステップS2421において、最初の始点と補助点とを接続する線分を制御し中心点を中心として時計回りに回転させる場合、その後に前記ステップS2424を実行するとき現時点で点集合に書き込まれた端点と一つ前に点集合に書き込まれた端点とを接続する線分をいずれも制御し中心点を中心として続けて時計回りに回転させ；前記ステップS2421において、最初の始点と補助点とを接続する線分を制御し中心点を中心として反時計回りに回転させる場合、その後に前記ステップS2424を実行するとき現時点で点集合に書き込まれた端点と一つ前に点集合に書き込まれた端点とを接続する線分をいずれも制御し中心点を中心として続けて反時計回りに回転させる。
【０２５１】
具体的には、前記ステップS2422において、線分回転角度が最も小さい場合に線分と重なり且つ中心点と接続される線分を見つけたら、その後に前記ステップS2422を実行するとき線分回転角度が最も小さい場合に線分と重なり且つ中心点と接続される線分をいずれも見つけ；前記ステップS2422において、線分回転角度が最も大きい場合に線分と重なり且つ中心点と接続される線分を見つけたら、その後に前記ステップS2422を実行するとき線分回転角度が最も大きい場合に線分と重なり且つ中心点と接続される線分をいずれも見つける。
【０２５２】
説明する必要があるのは、前記ステップS2422において、線分回転角度が最も小さいまたは最も大きい場合に線分と重なり且つ中心点と接続される線分を見つけることについて、ここで回転線分と重なる線分を見つけることは回転線分自身が含まれていなく；見つけられた線分が中心点と接続されることは具体的に見つけられた線分の一つの端点の座標データが中心点の座標データと同じであれば、見つけられた線分のもう一つの端点の座標データを点集合に書き込むことを指す。
【０２５３】
具体的には、前記ステップS2423は、現時点で点集合に書き込まれた端点の座標データが最初の始点の座標データと同じであるかどうかにより現時点で点集合に書き込まれた端点が最初の始点であるかどうかを判断する。
【０２５４】
説明する必要があるのは、各内部ベランダ板に対しいずれも前記ステップS2421~前記ステップS2425を実行することによりすべての内部ベランダ板の端点の座標データを見つけそれぞれ一つの点集合に対応的に書き込む。
【０２５５】
図20が示すように、本発明による建築図面に基づくベランダ自動認識方法の前記ステップS2403の優選の実施例の具体的な流れ図であり、前記の現時点で完成された前記点集合の中のすべての端点により次の隣接の内部ベランダ板の最初の始点を見つけ、また次の隣接の内部ベランダ板の最初の始点により次の隣接の内部ベランダ板の補助点を見つけることは、具体的にステップS2431~ステップS2433を含む：
【０２５６】
前記ステップS2431、前記ベランダグループのすべての端点において、現時点で完成された前記点集合に属し、柱線または壁線に位置し且つ現時点で完成された点集合の最初の始点でない第三端点を見つける；
【０２５７】
前記ステップS2432、前記ベランダグループを表すすべての線分において、前記第三端点が位置する第三線分と平行し且つ距離が最も小さい第四線分を見つけ、また前記第四線分の端点において、前記第三端点との距離が最も小さい端点を見つけ次の隣接の内部ベランダ板の最初の始点とする；
【０２５８】
前記ステップS2433、前記第三端点または次の隣接の内部ベランダ板の最初の始点との距離が最も小さい次のドア線または次の窓線の端点を見つけ次の隣接の内部ベランダ板の補助点とする。
【０２５９】
具体的には、前記ステップS2431は、まずベランダグループを表す線分のすべての端点において、現時点で既に認識完了された点集合に属する端点を見つけ、そして現時点で既に認識完了された点集合に属する端点において、柱線または壁線に位置する端点を見つけ、最後に柱線または壁線に位置する端点において、現時点で既に認識完了された点集合が対応する最初の始点でない端点を見つけ第三端点とする。
【０２６０】
具体的には、前記ステップS2432は、まずベランダグループを表すすべての線分において、第三端点が位置する線分を見つけ第三線分とし、そしてベランダグループを表すすべての線分において、第三線分と平行し且つ距離が最も小さい線分を見つけ第四線分とし、第四線分の二つの端点から第三端点までの距離をそれぞれ計算し、二つの端点の中で第三端点との距離が最も小さい端点を次の隣接の内部ベランダ板の最初の始点とする。
【０２６１】
具体的には、前記ステップS2433は、まず第三端点または次の隣接の内部ベランダ板の最初の始点との距離が最も小さい次のドア線または次の窓線を見つけ、そして第三端点または次の隣接の内部ベランダ板の最初の始点からこれらの次のドア線または次の窓線の端点までの距離を計算し、その中で最も小さい距離が対応する次のドア線または次の窓線の端点を選択し次の隣接の内部ベランダ板の補助点とする。
【０２６２】
説明する必要があるのは、各ベランダグループにおいて、一つ目の内部ベランダ板以外の内部ベランダ板に対しいずれも前記ステップS2431~前記ステップS2433を実行することにより、すべてのベランダグループにおいて、一つ目の内部ベランダ板以外のすべての内部ベランダ板の最初の始点と補助点を見つける。
【０２６３】
以上により、本発明の実施例による建築図面に基づくベランダ自動認識方法は、柱が位置するレイヤ、壁が位置するレイヤ、ドアと窓が位置するレイヤ、外部ベランダが位置するレイヤ及び内部ベランダが位置するレイヤを読み取ることにより；外部ベランダに対し、同じグループの外部ベランダ線を表す各グループの線分により外部ベランダの手すり線を見つけ、各手すり線により外部ベランダ板を構成する端点の座標データを見つけ一つの点集合に対応的に書き込み；内部ベランダに対し、すべての内部ベランダを異なるベランダグループに分け、各ベランダグループのEnvelope対象によりベランダグループを構成するNつの内部ベランダ板の端点の座標データを見つけNつの点集合にそれぞれ対応的に書き込み；最後に各点集合のすべての端点が見つけられた順により順次接続された閉鎖線分を外部ベランダ板輪郭線または内部ベランダ板輪郭線として出力し；既存技術の建築図面が認識過程において、建築対象に対する認識効率が低く、認識精度が低い問題を解決し、これにより建築対象ベランダの認識効率と認識精度を高める。
【０２６４】
以上に述べたのはただ本発明の具体的な実施方式で、本分野の技術者が明確できるのは、本発明の総体精神や発想から離脱しない場合で、以上の実施例に各種な変形ができ、それらの変形がすべて本発明の保護範囲にある。
【図１】
2019139756.tif 000011
【図２】
2019139756.tif 000012
【図３】
2019139756.tif 000013
【図４】
2019139756.tif 000014
【図５】
2019139756.tif 000015
【図６】
2019139756.tif 000016
【図７】
2019139756.tif 000017
【図８】
2019139756.tif 000018
【図９】
2019139756.tif 000019
【図１０】
2019139756.tif 000020
【図１１】
2019139756.tif 000021
【図１２】
2019139756.tif 000022
【図１３】
2019139756.tif 000023
【図１４】
2019139756.tif 000024
【図１５】
2019139756.tif 000025
【図１６】
2019139756.tif 000026
【図１７】
2019139756.tif 000027
【図１８】
2019139756.tif 000028
【図１９】
2019139756.tif 000029
【図２０】
2019139756.tif 000030