(57)【特許請求の範囲】
【請求項１】
操作者がコンピュータの画面上でマウスなどの入力装置を用いて屋根の外形形状を入力する屋根輪郭線定義手段と、入力した屋根輪郭線のそれぞれの線分に対して操作者がコンピュータの画面上でマウスなどの入力装置を用いて屋根の分割の仕方を設定する屋根形状属性設定手段と、与えられた屋根輪郭線を構成する各頂点において、その頂点に接続する２つの輪郭線線分の角度とそれぞれの輪郭線線分の屋根形状属性によって自動的に屋根を分割する方向を決定する輪郭線分割方向決定手段と、輪郭線分割方向決定手段で決定された分割方向と各方向成分の有効無効を判定し自動的に分割距離を決定する輪郭線分割距離決定手段と、輪郭線頂点、その頂点における分割方向と有効な分割方向成分、分割距離を用いて、立体の屋根図形を構成する多角形の一部を自動的に抽出する立体屋根図形構成要素抽出手段と、立体屋根図形要素を抽出した後の未分割部分を新しい屋根輪郭線として自動的に抽出する未分割屋根輪郭線抽出手段と、抽出された新しい輪郭線に対して、再度屋根形状属性を自動的に設定する屋根形状属性再設定手段と、未分割屋根輪郭線抽出手段と屋根形状属性再設定手段によって抽出・再設定された屋根輪郭線と屋根形状属性を用いて、輪郭線分割方向決定手段から屋根形状属性再設定手段を再帰的に繰り返すことによって作成された立体屋根図形の構成要素を、より大きな単位の構成要素に自動的に結合する屋根結合手段と、屋根結合手段により結合された屋根の高さのズレを自動的に調整する屋根高さ調整手段と、生成された立体屋根図形と、住宅間取りの外壁との隙間を埋める妻壁図形を自動的に生成する妻壁生成手段とからなる屋根立体図形自動作成システム
【請求項２】
請求項１の屋根立体図形自動作成システムにおいて、屋根輪郭線定義手段の代わりに、操作者がコンピュータの画面上でマウスなどの入力装置を用いて、矩形や多角形を組み合わせたり、壁や床などの部品を組み合わせたりして、住宅の間取りを作成する住宅間取り定義手段と、入力された住宅間取りの各階毎の外形形状の差分から屋根が作成されるべき部分を自動的に抽出する屋根部分抽出手段と、抽出された屋根部分の周囲を拡張し、軒先となる部分を自動的に追加する軒先拡張手段により、屋根輪郭線定義手段を用いて入力したものと同等な屋根輪郭線を自動生成する手段とからなる屋根立体図形自動作成システム
【請求項３】
請求項１又は請求項２の屋根立体図形自動作成システムにおいて、屋根形状属性設定手段を用いて操作者が屋根輪郭線の線分毎に屋根形状属性を設定する代わりに、操作者が「切妻」、「寄棟」などの分割の仕方を屋根全体に対して指定し、指定された分割の仕方に従ってそれぞれの輪郭線線分に自動的に属性を設定する屋根形状属性自動設定手段とからなる屋根立体図形自動作成システム
【請求項４】
請求項１〜３の何れかのシステムをコンピュータによって実現するためのプログラムを記憶した記録媒体
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、２次元の間取り図から立体の住宅間取りを生成し表示するシステム、もしくは３次元の壁や床などの形状を組み合わせて立体の住宅間取りを生成し表示するシステムに於いて、屋根の立体図形を自動的に作成するシステムに関するものである。
【０００２】
【従来の技術】
例えば、住宅販売会社の営業マンが顧客との間取り検討に使用する立体間取り作成表示システム、もしくは住宅内装および外装のシミュレーションを行うシステムなど、立体の住宅間取りを作成し表示するシステムにおいて、間取りだけでなく屋根についても立体図形を作成もしくは自動生成し、表示が行われる。
現状では、あらかじめ用意された屋根部品を変形させて配置することで、屋根の作成を実現しているが、非常に単純な屋根しか表現できない。
【０００３】
屋根輪郭線や屋根の尾根・谷を設定して立体屋根図形を作成するシステムもあるが、操作が煩雑となる。
【０００４】
屋根を構成する輪郭線に於いて、それぞれ隣り合う輪郭線線分が成す角の２等分線を伸ばし、それぞれの交点を求める事により、屋根の立体図形を自動作成するシステムもある。２等分線の交点は比較的簡単に求めることができるが、輪郭線が複雑な屋根では、尾根となる２等分線と谷となる２等分線が交わる場合も多く発生し、適正な図形にするためには複雑な判定が必要である。判定が不十分だと、思うような立体屋根図形が作成できないだけでなく、幾何学的にありえない図形を作成してしまう場合もある。
【０００５】
システムによっては立体間取り図形のみで立体屋根図形は作成・表示できないものもある。
【０００６】
【発明が解決しようとする課題】
本発明は、前記問題を解決するため、住宅間取りを元に、妥当な立体屋根図形を自動作成するシステム及び、簡単な設定により、切妻、寄棟、片流れ、およびこれらの組み合わせなどの様々な形状の屋根を自動作成できるシステムの実現を課題とした。
【０００７】
【課題を解決するための手段】
本発明は、前期課題を解決するために以下の構成とした。
すなわち、本発明の立体屋根図形作成・表示システムは、ＣＲＴや液晶等の画面表示装置を備えたコンピュータで実現することができ、実現される構成要素は、屋根輪郭線定義手段、屋根形状属性設定手段、屋根分割・立体化処理、屋根結合処理、屋根高さ調整処理、妻壁図形生成処理とからなる。
【０００８】
屋根輪郭線定義手段は、マウスやキーボードなどの入力装置を用い、コンピュータの画面上で多角形の頂点などを指定するなどの手段を用い、屋根の外形形状（屋根を上から見た時の屋根の外周を示す閉じた折れ線）を入力することができる。
住宅の立体間取りを作成・表示するシステムと組み合わせて使用する場合は、屋根輪郭線定義手段に替えて、住宅間取り定義手段、屋根部分抽出処理、軒先拡張処理を用い、間取りの外壁形状から自動的に屋根輪郭線を生成するようにしてもよい。
【０００９】
住宅間取り定義手段は、矩形や多角形を組み合わせたり、壁や床などの部品を組み合わせたりして、住宅の間取りを作成することができる。
必要に応じて、１階、２階、３階・・・、もしくは地下などを作成できる様にしてもよい。
住宅間取り定義手段は、住宅の立体間取りとあわせて立体屋根図形を作成する場合には必要であるが、立体屋根図形のみ作成する場合には、必ずしも必要ではない。
【００１０】
屋根部分抽出処理は、住宅間取り定義手段によって定義された住宅間取りから、各階毎に屋根が作成されるべき部分を自動的に抽出する。
屋根部分抽出処理は、住宅間取り定義手段を備えた立体間取り作成・表示システムとあわせて立体屋根図形を作成する場合には必要であるが、立体屋根図形のみ作成する場合には、必要ではない。
【００１１】
軒先拡張処理は、屋根部分抽出処理によって抽出された屋根が作成されるべき部分の周囲を拡張し、軒先となる部分を自動的に追加する。
軒先拡張処理は、住宅間取り定義手段および屋根部分抽出処理を備えた立体間取り作成・表示システムとあわせて立体屋根図形を作成する場合には必要であるが、立体屋根図形のみ作成する場合には、必要ではない。
【００１２】
屋根形状属性設定手段は、屋根輪郭線定義手段により定義した屋根輪郭線線分それぞれに対し、分割の方向を示す属性を設定することができる。
屋根全体に対して、一括して属性を設定できる様にしてもよい。
住宅間取り定義手段、屋根部分抽出処理、軒先拡張処理を用いた場合には、属性を自動的に設定することもできる。
【００１３】
屋根分割・立体化処理は、屋根輪郭線とそれぞれの輪郭線線分に設定された属性を用い、屋根を分割し、高さ情報を付加して立体図形を作成する。複雑な輪郭線を持つ屋根は、一度では分割・立体化できず、元の輪郭線から立体化された部分を差し引いた輪郭線について、輪郭線線分の属性を再設定した後、再度屋根分割・立体化手段によって分割・立体化を立体化されなかった部分がなくなるまで繰り返す。
【００１４】
屋根結合処理は、屋根分割・立体化手段の繰り返しによって作成された立体屋根図形の構成要素を、同じ傾斜方向で、かつ連続したものについてまとめ、より大きな単位の構成要素に結合する。
【００１５】
屋根高さ調整処理は、屋根結合処理により結合された屋根の構成要素ごとの隣接関係を調べ、高さにずれがある部分に関して、高さの調整を行う。
【００１６】
この他に、住宅の立体間取りを作成・表示するシステムと組み合わせて使用する場合は、立体屋根図形と住宅立体間取り図形の間に、妻壁などを作成できる様に、もしくは自動作成する様にしてもよい。
【００１７】
【発明の実施の形態】
以下、本発明の実施例について図面に沿って説明する。
１．全体構成
図１は、実施形態の構成の一例を示す図である。処理を行なう計算機１には、屋根の輪郭などを入力するためのマウス２やキーボード３が接続されている。４は結果を表示するための表示装置である。また、必要に応じてデータの読み込みや保存を行なうための外部記憶装置５、印刷装置６などを接続しても良い。
【００１８】
図２は、実施形態における処理の流れを示した図である。
処理は、屋根輪郭線定義手段１１、屋根形状属性設定手段１２、屋根分割・立体化処理１３、屋根結合処理１４、屋根高さ調整処理１５、妻壁図形生成処理１６とからなる。
【００１９】
住宅の立体間取りとあわせて立体屋根図形を作成する場合には、屋根輪郭線定義手段１１に替えて、住宅間取り定義手段２１、屋根部分抽出処理２２、軒先拡張処理２３を用いて住宅の間取り形状から屋根輪郭線を自動的に作成してもよい。
【００２０】
その場合、屋根形状属性設定手段１２は、屋根形状属性自動設定処理３１を用いて住宅の間取り形状などから自動的に設定するようにしてもよい。
【００２１】
屋根輪郭線定義手段１１では、屋根の外形を表す閉じた折れ線を用いて定義する。折れ線の情報は、各線分の頂点を反時計周りに辿る様な頂点の座標列として保持する。図３はその操作イメージを示す図である。（▲１▼▲２▼…▲７▼の順にマウスを用いて屋根を構成する頂点を指示する）
屋根輪郭線の入力の際には、大きさの目安になるような正方格子（グリッド）を表示しておいても良い。
【００２２】
また、屋根に開けられた開口部は、屋根外形線と同様に閉じた折れ線で定義され、頂点を時計回りに辿る様な頂点の座標列として保持する。（図４で、例えば▲１▼▲２▼▲３▼▲４▼の順にマウスを用いて屋根開口部を構成する頂点を指示する）
【００２３】
屋根輪郭線および屋根開口部を構成する頂点の辿る方向は、操作者には意識せずに入力させ、自動的に辿る向きを調整するようにしてもよい。
【００２４】
住宅間取り定義手段２１は、矩形や多角形を組み合わせたり、壁や床などの部品を組み合わせたりして、住宅の間取りを作成することができる。図５はその例である。
必要に応じて、１階、２階、３階・・・、もしくは地下などを作成できる様にしてもよい。
【００２５】
屋根部分抽出処理２２は、住宅間取り定義手段２１によって定義された住宅間取りから、各階毎に屋根が作成されるべき部分を自動的に抽出する。
図６はその例である。１階天井部分から２階間取り部分を差し引いた部分を屋根部分とする。２階以上も同様の処理を行なう。また、最上階に関しては、その階の天井部分がそのまま屋根部分となる。
【００２６】
屋根部分抽出処理２２において、求められた屋根部分を構成する輪郭線毎に、下階の天井部分の輪郭線に一致する部分（図７実線部分）と上階の間取り部分で切り取られた断面部分（図７点線部分）との区別がつけられるように、属性が設定される。
【００２７】
軒先拡張処理２３は、屋根部分抽出処理２２によって抽出された屋根が作成されるべき部分の周囲を拡張し、軒先となる部分を自動的に追加する処理である。図８は、軒先部分の拡張の例である。屋根部分抽出処理２２によって、下階と一致する輪郭線線分はそれぞれの輪郭線線分に対して垂直方向に輪郭線が拡張される。拡張する大きさは、数値などで指定する。下階の天井が上階によって切り取られた部分は、軒先の拡張は行われない。
【００２８】
また、軒先の拡張において、図９の様に凹部分の間隔が狭く、拡張した軒先の輪郭線線分が重なってしまう場合（図９ア）、輪郭線線分が交差してしまう場合（図９イ）などの不整合が発生する場合には、自動的に輪郭線の頂点を調節する。
【００２９】
屋根形状属性設定手段１２では、屋根輪郭線定義手段１１もしくは軒先拡張処理２３で得られた屋根の輪郭を構成する１本１本の線分に対して、屋根の形状を特定するための属性を設定する。
【００３０】
屋根形状属性は、屋根の傾斜方向を表す２つの状態を持つ。１つは輪郭線線分に対して垂直方向に屋根が傾斜する状態（図１０中Ａの矢印、以下「属性Ａ」と記述）と、もう１つは輪郭線線分に沿って屋根が傾斜する状態（図１０中Ｂの矢印、以下「属性Ｂ」と記述）である。
【００３１】
設定の方法は、輪郭線線分をマウスなどで選択し、その輪郭線線分についての属性設定パネルを表示したり、マウスでクリックした輪郭線線分の属性が順に切り替わるようにするなどして、属性を設定することができる。
【００３２】
屋根全体に対し、「切妻」、「寄棟」などの指定をすることにより、それぞれの輪郭線線分に属性を一括して設定する様にしてもよい。この場合、一括して属性を設定した後、個別に輪郭線線分を指定して属性を変更することもできる。
【００３３】
「切妻」の場合は縦横の方向を指定し、縦の場合は垂直方向の輪郭線線分には属性Ａを、水平方向の輪郭線線分には属性Ｂを設定する。（図１０ア）
横の場合は垂直方向の輪郭線線分には属性Ｂを、水平方向の輪郭線線分には属性Ａを設定する。（図１０イ）
【００３４】
「寄棟」の場合には、全ての輪郭線線分に属性Ａを設定する。（図１１）
【００３５】
屋根形状属性自動設定処理３１は、軒先拡張処理２３によって作成された屋根輪郭線に対して、自動的に屋根形状属性を設定する機能を有する。
【００３６】
屋根全体に対し、「切妻」、「寄棟」などの指定を行い、【００３３】【００３４】と同様に輪郭線線分に属性を設定する。ただし、軒先拡張処理２３によって、拡張されなかった輪郭線線分には無条件で属性Ｂを設定する。（図１２は寄せ棟の例）
【００３６】
屋根形状属性の自動設定後に、個別に輪郭線線分を指定して属性を変更することもできる。
【００３７】
屋根分割・立体化処理１３は、設定された屋根形状属性に従って、屋根を分割し、立体化を行なう処理で、輪郭線分割方向決定処理４１、輪郭線分割距離決定処理４２、立体屋根図形構成要素抽出処理４３、未分割屋根輪郭線抽出処理４４、屋根形状属性再設定処理４５から成る。
【００３８】
輪郭線分割方向決定処理４１は、各輪郭線頂点において、その頂点に接続する２つの輪郭線線分の角度とそれぞれの輪郭線線分の屋根形状属性によって、屋根を分割する方向を決定する。この分割方向は、屋根の尾根や谷の部分となる。
【００３９】
２つの輪郭線線分の成す角が９０度で、輪郭線の凸部分を構成する場合、それぞれの屋根形状属性の組み合わせにより、以下の様に分割方向を設定する。
共に属性Ａ（図１３ア）の場合
２つの輪郭線線分の成す角の２等分線方向を分割方向とする。
片方は属性Ａでもう片方が属性Ｂ（図１３イ）の場合
属性Ｂの輪郭線線分に平行な方向を分割方向とする。
共に属性Ｂ（図１３ウ）の場合
この頂点では分割方向を設定しない。（方向なし）
【００４０】
２つの輪郭線線分の成す角が９０度（２７０度）で、輪郭線の凹部分を構成する場合、それぞれの屋根形状属性の組み合わせにより、以下の様に分割方向を設定する。
共に属性Ａ（図１４ア）の場合
２つの輪郭線線分の成す角の２等分線方向（屋根内側向き）を分割方向とする。
どちらか片方（図１４イ）もしくは両方が属性Ｂ（図１４ウ）の場合
この頂点では分割方向を設定しない。（方向なし）
【００４１】
２つの輪郭線線分が一直線状になっている場合、それぞれの屋根形状属性の組み合わせにより、以下の様に分割方向を設定する。
共に属性Ａ（図１５ア）の場合
輪郭線線分に垂直な方向（屋根内側向き）を分割方向とする。
どちらか片方（図１５イ）もしくは両方が属性Ｂ（図１５ウ）の場合
この頂点では分割方向を設定しない。（方向なし）
【００４２】
すべての屋根輪郭線頂点について分割方向を設定したら、各輪郭線線分について両端の頂点での分割方向の調整を行なう。
輪郭線線分の両端の頂点において、それぞれの分割方向の輪郭線線分に垂直な方向の成分が共に同じ方向を向いていたら、この方向成分は有効とする。方向が異なる場合は、この方向成分は無効とする。
図１６ア及びイは、ある輪郭線線分の両端の頂点での分割方向の例を示しており、頂点Ａ，、Ｂのそれぞれにおける分割方向をＶａ、Ｖｂと表している。Ｖａは輪郭線線分に対して斜め方向であるため、輪郭線線分に垂直な方向の線分Ｖａｙ、水平な方向の線分Ｖａｘに分解して判断する。
図１６アでは、ＶａｙとＶｂは同じ方向であるため、これらの分割方向（Ｖａの場合はＶａｙ成分）は有効である。
図１６イでは、ＶａｙとＶｂは異なる方向であるため、これらの分割方向（Ｖａの場合はＶａｙ成分）は無効となる。
【００４３】
図１７ア、イの様に複数の輪郭線線分が一直線状に並ぶ場合には、それらの全ての頂点について調整をおこなう。図１７アでは、Ｖａｙ、Ｖｂ、Ｖｃ、Ｖｄｙの全てが同一方向なので、これらの分割方向（Ｖａ、ＶｄはそれぞれＶａｙ、Ｖｄｙ成分）は有効と判断される。図１７イでは、Ｂ、Ｃでの分割方向が設定されていないので、Ｖａｙ、Ｖｄｙ成分は無効と判断される。
【００４４】
これらの方向成分の有効性の判定方法は、最終的な屋根形状に影響を及ぼす。希望の屋根形状にするために、判定方法を変更してもよい。
たとえば、図１７イにおいて、Ｖａｙ、Ｖｄｙを無効としたことにより、この後の輪郭線分割距離決定処理４２において分割距離が０となってしまう場合などには、Ｖａｙ、Ｖｄｙを有効にするだけでなく、途中点Ｂ、Ｃにおけるｙ方向成分を強制的に付加することもできる。
【００４５】
輪郭線分割距離決定処理４２は、輪郭線分割方向決定処理で決定された分割方向および各方向成分の有効無効の判定をもとに、分割距離を決定する。
【００４６】
各輪郭線線分の両端の頂点において、線分に水平な方向成分が共に有効で、かつ互いに向かい合う向きの場合、その線分の長さの半分（Ｌ／２）を分割距離候補とする。（図１８ア）
また、片方の頂点のみ線分に水平な方向成分が有効で、かつもう片方の頂点に向かう向きの場合、その線分の長さ（Ｌ）を分割距離候補とする。（図１８イ）ただし、両方の頂点で線分に水平な方向成分が有効で、どちらも同じ向きの場合、その線分の長さ（Ｌ）は分割距離候補に加えなくてもよい。（図１８ウ）
【００４７】
輪郭線頂点において、その頂点での有効な方向成分が接続する線分上のもう片方の頂点に向かっていない場合、それぞれの方向成分毎にベクトルを延長していき、別の頂点もしくは別の輪郭線線分に到達するまでの距離（ｄ１、ｄ２）をもとめ、それを分割距離候補とする。（図１９ア）
ただし、到達した別の頂点もしくは別の輪郭線線分の両端の頂点における有効な方向成分が、もとの頂点の方向を向いている場合には、到達距離の半分の長さ（ｄ１／２、ｄ２／２）を分割距離候補とする。（図１９イ）
【００４８】
輪郭線頂点の内、凹部分にあたる頂点では、その頂点における分割方向の無効な成分方向にベクトルを延長していき、到達した別の頂点もしくは別の輪郭線線分の両端の頂点での有効な方向成分が、もとの頂点の方向を向いている場合は、その到達距離を分割距離候補とする。（図２０ア、イ）
【００４９】
【００４６】【００４７】【００４８】のそれぞれの処理で得られた分割距離候補の内、もっとも短いものを分割距離とする。
【００５０】
立体屋根図形構成要素抽出処理４３では、輪郭線頂点、その頂点における分割方向と有効な分割方向成分、分割距離を用いて、立体の屋根図形を構成する多角形の一部を抽出する。
【００５１】
輪郭線を構成する各頂点を、それぞれの頂点における有効な分割方向成分の方向にそれぞれ分割距離分だけ移動させる。
図２１はその例である。図２１アは屋根形状属性を表しており、図２１イではその属性をもとに各頂点での有効な分割方向を矢印で、有効な分割方向が無い場合は×印で示している。また、輪郭線を構成する１０個の頂点（▲１▼、▲２▼、・・・、▲１０▼）をそれぞれの有効成分方向に分割距離分移動させたものが、▲１▼’、▲２▼’、・・・、▲１０▼’である。図２１イの例では、頂点▲６▼または▲７▼から下方向へベクトルを延ばした場合の、線分▲２▼▲３▼までの距離が分割距離候補の中でもっとも短く、これが分割距離となる。
【００５２】
頂点の移動後、輪郭線を構成する各線分毎に、その両端の頂点およびそれらの移動後の頂点からなる４角形を立体屋根図形構成要素として抽出する。（図２２）
ただし、移動後の頂点が同一位置で重なる場合には、３角形として抽出する。
また、有効な分割方向成分が無く、頂点の移動が行なわれなかった部分では、立体屋根図形構成要素として抽出しない。（図２１で４角形▲７▼▲８▼▲８▼’▲７▼’、４角形▲６▼▲７▼▲７▼’▲６▼’など）
なお、移動後の点の高さは、屋根の傾斜角を別途指定し、その角度と移動距離とから自動的に計算する。
【００５３】
未分割屋根輪郭線抽出処理４４は、立体屋根図形要素を抽出した後の未分割部分を新しい屋根輪郭線として抽出する。
その際、新しい屋根輪郭線を移動後の頂点が、他の頂点もしくは他の輪郭線線分と重なる場合には、頂点の調整を行なう。
【００５４】
移動後の頂点が輪郭線線分上にある場合、その頂点位置に新たな頂点を作成し、輪郭線線分を分割する。図２３アはその例で、線分ＡＢ、ＣＤの頂点Ａ、Ｂ、Ｃ、Ｄを移動した後の頂点をＡ’、Ｂ’、Ｃ’、Ｄ’とすると、Ａ’、Ｂ’は線分Ｃ’Ｄ’上に位置する。この場合、線分Ｃ’Ｄ’上に新たな頂点ＥおよびＦを作成し、線分Ｃ’Ｅ、ＥＦ、ＦＤ’の３つの線分に分割する。
【００５５】
頂点が、隣り合う頂点と重なる場合、どちらか片方を残す。図２３イはその例で、頂点Ｇ、Ｈが共に同じ位置に移動されているので、頂点Ｈ’を削除する。
【００５６】
２つの輪郭線が重なり合うとき、それらの両端点同士を接続し、２つの屋根輪郭線に分割する。図２４は図２１の屋根輪郭線から頂点を拡張し、図２２の立体屋根図形構成要素を抽出した後の新しい屋根輪郭線である。線分▲２▼’▲３▼’は、頂点▲６▼’、▲７▼’が重なるため、頂点▲６▼”、▲７▼”が作成され、線分▲２▼’▲７▼”、▲７▼”▲６▼”、▲６▼”▲３▼’に分割されている。ここで線分▲６▼’▲７▼’は線分▲７▼”▲６▼”と重なるため、その両端の頂点▲７▼’と▲７▼”、▲６▼’と▲６▼”を接続し、頂点▲１▼’▲２▼’▲７▼”▲８▼’▲９▼’および頂点▲６▼”▲３▼’▲４▼’▲５▼’で構成される２つの屋根輪郭線に分割する。（頂点▲７▼’と▲７▼”、頂点▲６▼’と▲６▼”は隣り合う同一位置頂点のため、それぞれ▲７▼”、▲６▼”に統合される）
【００５７】
この処理によって、最初の屋根輪郭線より一回り小さく、より簡素な屋根輪郭線が抽出される。
【００５８】
屋根形状属性再設定処理４５は、未分割屋根輪郭線抽出処理４４で抽出された新しい輪郭線に対して、再度屋根形状属性を設定する。
【００５９】
新しい輪郭線線分における屋根形状属性は、その線分のもとになった線分、すなわち立体屋根図形構成要素抽出処理４３において頂点を移動する前の輪郭線線分の屋根形状属性をそのまま引き継ぐ。【００５６】の処理により、線分が分割される場合には、分割後の線分全てに分割前の線分の屋根形状属性を引き継ぐ。図２５は図２４イの例の屋根形状属性を示している。
【００６０】
新しい屋根輪郭線に対し、屋根形状属性の再設定処理を行なったら、再び輪郭線分割方向決定処理４１、輪郭線分割距離決定処理４２、立体屋根図形構成要素抽出処理４３、未分割屋根輪郭線抽出処理４４を、未分割屋根輪郭線がなくなるまで繰り返す。【００５６】の処理で屋根輪郭線が複数に分割された場合は、それぞれの屋根輪郭線に対して、繰り返し処理を行なう。図２６は、図２１の屋根輪郭線を未分割屋根輪郭線がなくなるまで繰り返し処理をした結果である。
【００６１】
屋根結合処理１４は、立体屋根図形構成要素抽出処理４３によって抽出された立体屋根図形構成要素を、意味のあるグループごとに結合し、１つの図形要素とする。
【００６２】
抽出された立体屋根図形構成要素に対し、隣接する図形要素（辺を共有）の内、傾斜方向が同一のものを探し、図形要素同士を結合して１つの図形要素に結合する。図２７は図２６の図形要素を結合したものであり、結合部分を点線で示している。
【００６３】
屋根高さ調整処理１５では、屋根結合処理１４を経て結合された図形要素の高さを調整する。
【００６４】
屋根分割・立体化処理１３および屋根結合処理１４では、屋根輪郭線の外側から内側に向かって図形構成要素を抽出していくため、それぞれの図形構成要素の高さが図形構成要素下端でそろえられている。図２８アの屋根輪郭線を図中で示した屋根形状属性に従って分割・立体化処理を行なったものが、図２８イである。分割・立体化は▲１▼−▲２▼、▲３▼−▲４▼から始め、▲５▼−▲６▼の分割方向が設定されていないため、２回目の分割・立体化処理では▲３▼’−▲４▼’側からのみ分割が行なわれる。図２８ウは、結合後の立体屋根図形を側面方向から見た図であり、線分▲２▼’−▲１▼’と線分▲４▼”−▲３▼”の高さが異なっていることがわかる。
【００６５】
最初に、各立体屋根図形構成要素のもっとも高い位置にある頂点を探す。図２８ウの例では、▲３▼”、▲４▼”がそれにあたる。
【００６６】
次に、真上から見た状態で、これらの最も高い位置にある頂点を含む図形構成要素の各辺と重なり合う位置にある他の図形構成要素を探す。図２８イでは、辺▲４▼”−▲３▼”と辺▲２▼’−▲１▼’が重なり合う位置にある。
【００６７】
辺が重なり合う図形構成要素が見つかったら、その辺同士の高さの差分を低い方の図形構成要素の各頂点に加算し、２つの図形構成要素の辺の高さを一致させる。図２９は、図２８ウにおける辺▲４▼”−▲３▼”と辺▲２▼’−▲１▼’の高さの差分を▲１▼▲２▼▲２▼’▲１▼’の図形構成要素の各頂点に加算し、高さを調整した例である。
【００６８】
最初に見つかったもっとも高い位置にある頂点を含む図形構成要素の周辺の図形構成要素の高さ調整が終了したら、次はさらにそれらと辺を共有する図形構成要素に対して同様の処理を繰り返す。ただし、一度、高さを調整した図形構成要素に関しては、この処理の対象から外す。
【００６９】
ある屋根輪郭線の中に、開口部が存在する場合、次の２つの方法のどちらかを用いて立体屋根図形に開口部を作成する事ができる。図３０の様な屋根輪郭線▲１▼▲２▼▲３▼▲４▼とその中に開口部▲５▼▲６▼▲７▼▲８▼が含まれる場合で説明する。
【００７０】
１つの方法は、屋根輪郭線の分割立体化処理において、開口部も含めて処理を行なう方法である。有効な分割方向成分が設定されている輪郭線から、分割距離を求める際に、開口部もチェック対象として処理を行なう。
【００７１】
図３１は図３０の屋根をこの方法で分割した例である。図３１アにおいて、最初の分割では、線分▲１▼−▲２▼から開口部線分▲７▼−▲８▼への到達距離を分割距離として分割処理が行なわれ、図形▲１▼▲２▼▲２▼’▲１▼’、▲３▼▲４▼▲４▼’▲３▼’ができる。このとき、線分▲１▼’−▲２▼’は開口部の頂点▲７▼▲８▼で分割され、線分▲２▼’−▲７▼、▲８▼−▲１▼’となる。２回目の分割では、線分▲２▼’−▲７▼、▲８▼−▲１▼’の分割方向成分が、開口部頂点▲７▼▲８▼の影響により共に無効となる。従って、線分▲３▼’−▲４▼’からのみ分割が行なわれ、図形▲３▼’▲４▼’▲４▼”▲３▼”ができる。このとき、線分▲３▼”−▲４▼”は開口部の頂点▲５▼▲６▼で分割され、線分▲３▼”−▲６▼、▲５▼−▲４▼”となる。
３回目の分割では、線分▲３▼”−▲６▼、▲５▼−▲４▼”の分割方向成分が、開口部頂点▲５▼▲６▼の影響により共に無効となる。しかし、このとき未分割屋根輪郭線が残っているにもかかわらず、全ての分割方向成分が無効であるため、分割を続けられない。そこで、この場合は例外処理として、方向成分が無効の頂点の影響を受けないようにし、分割を続ける。結果として、図形▲７▼▲２▼’▲２▼”▲７▼’、▲１▼’▲８▼▲８▼’▲１▼”、▲６▼▲３▼”▲３▼’’’▲６▼’、▲４▼”▲５▼▲５▼’▲４▼’’’ができる。
図３１イはこれを俯瞰で示したものである。
【００７２】
もう１つの方法は、屋根輪郭線の分割立体化処理において、開口部も含めずに処理を行ない、後から開口部分を削除する方法である。
【００７３】
図３２は図３０の屋根をこの方法で分割した例である。図３２アにおいて、最初の分割では、線分▲１▼−▲２▼、▲３▼−▲４▼の距離の半分の長さが分割距離となり、図形▲１▼▲２▼▲２▼’▲１▼’、▲３▼▲４▼▲４▼’▲３▼’ができる。未分割屋根輪郭線が無いので、分割処理はここで終了である。
次に、ここで求められた立体屋根図形から開口部▲５▼▲６▼▲７▼▲８▼の部分を削除する。
図３２イはこれを俯瞰で示したものである。
【００７４】
開口部がある場合の立体屋根図形作成処理は、これら２つの方法のどちらを用いてもよく、開口部毎に処理方法を選択できるようにしても良い。
【００７５】
妻壁図形生成処理１６は、作成された立体屋根図形と、住宅間取りの外壁との隙間を埋める妻壁図形を生成する。
【００７６】
住宅間取りの外壁上端を構成する頂点列に対し、各頂点から立体屋根図形までの高さを求める。図３３アは、立体屋根図形Ａと住宅間取りの外壁Ｂを真上から見た図である。外壁Ｂを構成する頂点▲１▼▲２▼…▲６▼に対し、それぞれの位置における立体屋根図形までの高さを求める。
【００７７】
また、真上から見た状態で、外壁を構成する線分と各立体屋根図形構成要素の辺とが交点を持つ場合、外壁を構成する線分をその交点位置で分割し、この位置での立体屋根図形までの高さを求める。図３３イの例では、外壁線分▲２▼−▲３▼、▲６▼−▲１▼がそれぞれ頂点▲７▼、▲８▼で分割され、それぞれの位置における立体屋根図形までの高さを求めるられる。
【００７８】
外壁を構成する頂点列と、それぞれの立体屋根図形までの高さを用い、妻壁図形を生成する。図３４は、図３３イの状態から妻壁図形を生成した様子を俯瞰で示している。（▲１▼’、▲２▼’…▲８▼’）は、頂点▲１▼、▲２▼…▲８▼をそれぞれの位置での立体屋根図形の高さ分だけ上に移動させた点である。順に▲１▼▲２▼▲２▼’▲１▼’、▲２▼▲７▼▲７▼’▲２▼’、…、▲８▼▲１▼▲１▼’▲８▼’というように４角形図形を生成していく。ただし、▲３▼と▲３▼’の様に高さが０の部分に関しては、▲７▼▲３▼▲７▼’の様に３角形図形として生成する。
【００７９】
【発明の効果】
本発明に係る屋根立体図形自動作成方法を用いることによって、立体住宅間取り表示システムにおける屋根形状の作成を自動化する。また、間取りの鳥瞰図表示と組み合わせる事で、より具体的な住宅の表現が可能となる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る屋根立体図形作成装置の概略構成を示す図。
【図２】図１に示した屋根立体図形作成装置のシステム構成を示すブロック図。
【図３】屋根の外形となる閉じた折れ線を定義している途中の状態を示した図。
【図４】屋根に開けられた開口部を閉じた折れ線で定義している途中の状態を示した図。
【図５】住宅の立体間取りを作成・表示することができるシステムの例。
【図６】図５の例において、本発明の屋根部分抽出処理によって屋根が作成される場所を示した図。
【図７】図５の例において、屋根部分抽出処理によって抽出された屋根部分の輪郭線。
【図８】図７の屋根部分輪郭線に対し、軒先拡張処理によって拡張された屋根輪郭線。
【図９】屋根輪郭線の不整合が起こる場合の調節の例。
【図１０】切妻屋根を作成する場合の、屋根形状属性を示す図。
【図１１】寄棟屋根を作成する場合の、屋根形状属性を示す図。
【図１２】図８の例において、屋根形状属性自動設定処理を用いて寄棟と指定をした場合に設定される屋根形状属性の例。
【図１３】屋根輪郭線の凸部分における属性のパターンを示す図。
【図１４】屋根輪郭線の凹部分における属性のパターンを示す図。
【図１５】屋根輪郭線の直線部分の途中の頂点における属性のパターンを示す図。
【図１６】屋根輪郭線線分の両端における分割方向のパターンを示す図。
【図１７】屋根輪郭線の内、直線部分の途中点における分割方向のパターンを示す図。
【図１８】輪郭線線分の両端の頂点における分割方向のパターンと分割距離を示す図。
【図１９】屋根輪郭線の内、凹部分の頂点における分割方向（有効な方向成分方向）のパターンと分割距離を示す図。
【図２０】屋根輪郭線の内、凹部分の頂点における分割方向（無効な方向成分方向）のパターンと分割距離を示す図。
【図２１】（ア）屋根輪郭線と屋根形状属性の例。（イ）屋根形状属性から求めた各頂点の分割方向に分割距離分だけ頂点を移動した図。
【図２２】図２１イの移動後頂点によって、もとの屋根輪郭線から抽出された図形構成要素を示した図。
【図２３】（ア）移動後の頂点が他の線分と重なる場合を示した図。（イ）隣り合う頂点が移動によって重なる場合を示した図。
【図２４】（ア）図２１の屋根輪郭線から、図２２の図形構成要素を差し引いた未分割屋根輪郭線を示す図。（イ）輪郭線線分の重なった部分を除外した未分割屋根輪郭線を示す図。
【図２５】未分割屋根輪郭線の屋根形状属性を示した図。
【図２６】屋根分割処理を未分割屋根輪郭線がなくなるまで繰り返した結果を示した図。
【図２７】図２６において、辺を共有し、傾斜方向が同じ図形構成要素同士結合した後の図形構成要素を示した図。
【図２８】（ア）屋根輪郭線と屋根形状属性の例。（イ）分割後の図形構成要素を示した図。図形構成要素の結合部分を点線で示している。（ウ）結合直後の図形構成要素を側面から見た図。
【図２９】図２８ウにおいて、高さを調整した後の図形構成要素を示す図。
【図３０】屋根輪郭線内に開口部がある例。
【図３１】開口部の輪郭線も含めて分割処理を行なった場合の例。（ア）分割後の図形構成要素。（イ）俯瞰で見た図。
【図３２】開口部の輪郭線もは含めずに分割処理を行ない、分割後に開口部分を刳り貫いた場合の例。（ア）分割後の図形構成要素。（イ）俯瞰で見た図。
【図３３】（ア）住宅間取りの外壁と立体屋根図形の例。（イ）屋根図形の境界部分と重なる外壁輪郭線に頂点を作成した状態を示した図。
【図３４】外壁輪郭線と屋根の間に作成した妻壁を示した図。
【符号の説明】
１．計算機
２．マウス
３．キーボード
４．表示装置
５．外部記憶装置
６．印刷装置
【図１】
0004277244.tif 000002
【図２】
0004277244.tif 000003
【図３】
0004277244.tif 000004
【図４】
0004277244.tif 000005
【図５】
0004277244.tif 000006
【図６】
0004277244.tif 000007
【図７】
0004277244.tif 000008
【図８】
0004277244.tif 000009
【図９】
0004277244.tif 000010
【図１０】
0004277244.tif 000011
【図１１】
0004277244.tif 000012
【図１２】
0004277244.tif 000013
【図１３】
0004277244.tif 000014
【図１４】
0004277244.tif 000015
【図１５】
0004277244.tif 000016
【図１６】
0004277244.tif 000017
【図１７】
0004277244.tif 000018
【図１８】
0004277244.tif 000019
【図１９】
0004277244.tif 000020
【図２０】
0004277244.tif 000021
【図２１】
0004277244.tif 000022
【図２２】
0004277244.tif 000023
【図２３】
0004277244.tif 000024
【図２４】
0004277244.tif 000025
【図２５】
0004277244.tif 000026
【図２６】
0004277244.tif 000027
【図２７】
0004277244.tif 000028
【図２８】
0004277244.tif 000029
【図２９】
0004277244.tif 000030
【図３０】
0004277244.tif 000031
【図３１】
0004277244.tif 000032
【図３２】
0004277244.tif 000033
【図３３】
0004277244.tif 000034
【図３４】
0004277244.tif 000035