(57)【要約】【課題】調和のとれた位置にオブジェクトを配置すること。【解決手段】本発明は、各々画像またはテキストを示すデータである複数のオブジェクトであって対象オブジェクトおよび非対象オブジェクトを含む複数のオブジェクト、レイアウト領域を示すレイアウト領域情報、および非対象オブジェクトにおいて他のオブジェクトが重ねられて配置されることが禁止された領域を示す禁止領域情報を含む文書を取得する文書取得手段と、文書のレイアウト領域から禁止領域情報により示される領域を除いた領域である配置可能領域に含まれる矩形領域であって、対象オブジェクトの全部を内部に納めることができる矩形領域を算出する領域算出手段と、矩形領域の境界線のうち平行な２辺の間を黄金比に分割する黄金分割線を生成する分割線生成手段と、黄金分割線に従って矩形領域内に前記対象オブジェクトを配置する配置手段とを有する文書編集装置を提供する。【選択図】図１
2008021087.tif 000002
【特許請求の範囲】
【請求項１】
各々画像またはテキストを示すデータである複数のオブジェクトであって編集対象となる対象オブジェクトおよび編集対象ではない非対象オブジェクトを含む複数のオブジェクト、前記複数のオブジェクトが配置される領域であるレイアウト領域を示すレイアウト領域情報、および前記非対象オブジェクトにおいて他のオブジェクトが重ねられて配置されることが禁止された領域を示す禁止領域情報を含む文書を取得する文書取得手段と、
前記文書取得手段により取得された文書のレイアウト領域から前記禁止領域情報により示される領域を除いた領域である配置可能領域に含まれる矩形領域であって、前記対象オブジェクトの全部を内部に納めることができる矩形領域を算出する領域算出手段と、
前記領域算出手段により算出された矩形領域の境界線のうち平行な２辺の間を黄金比に分割する黄金分割線を生成する分割線生成手段と、
前記分割線生成手段により算出された黄金分割線に従って前記矩形領域内に前記対象オブジェクトを配置する配置手段と
を有する文書編集装置。
【請求項２】
前記配置手段により配置された対象オブジェクトが、前記矩形領域からはみ出すか判断する判断手段をさらに有し、
前記判断手段により前記対象オブジェクトが前記矩形領域からはみ出すと判断された場合、前記領域算出手段が新たな矩形領域を算出する
ことを特徴とする請求項１に記載の文書編集装置。
【請求項３】
前記配置可能領域内の位置を示し、等間隔で配置された点を設定する点設定手段と、
前記点設定手段により設定された点のうち、１つの点を基準点として特定する基準点特定手段と
をさらに有し、
前記矩形領域が、前記基準点特定手段により特定された基準点を含み、かつ前記配置可能領域に内接する矩形のうち、面積が最大となる最大矩形により特定される領域である
ことを特徴とする請求項１に記載の文書編集装置。
【請求項４】
前記最大矩形のサイズが前記対象オブジェクトのサイズより小さいか判断する判断手段をさらに有し、
前記判断手段により前記最大矩形のサイズが前記対象オブジェクトのサイズより小さいと判断された場合、前記基準点特定手段が、前記最大矩形に含まれていた点以外の点を、新たな基準点として特定する
ことを特徴とする請求項３に記載の文書編集装置。
【請求項５】
コンピュータ装置を、
各々画像またはテキストを示すデータである複数のオブジェクトであって編集対象となる対象オブジェクトおよび編集対象ではない非対象オブジェクトを含む複数のオブジェクト、前記複数のオブジェクトが配置される領域であるレイアウト領域を示すレイアウト領域情報、および前記非対象オブジェクトにおいて他のオブジェクトが重ねられて配置されることが禁止された領域を示す禁止領域情報を含む文書を取得する文書取得手段と、
前記文書取得手段により取得された文書のレイアウト領域から前記禁止領域情報により示される領域を除いた領域である配置可能領域に含まれる矩形領域であって、前記対象オブジェクトの全部を内部に納めることができる矩形領域を算出する領域算出手段と、
前記領域算出手段により算出された矩形領域の境界線のうち外形の平行な２辺の間を黄金比に分割する黄金分割線を生成する分割線生成手段と、
前記分割線生成手段により算出された黄金分割線に従って前記矩形領域内に前記対象オブジェクトを配置する配置手段と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書の編集を支援する技術に関する。
【背景技術】
【０００２】
コンピュータ装置を用いて、ある領域内にオブジェクト（デジタルコンテンツ）を配置して文書を編集または作成する技術が知られている。ここで、複数のオブジェクトが重ねて配置される場合において、これらのオブジェクトの配置をどのように決定するかは、文書の美観に大きな影響を与える。例えば、画像のオブジェクトに重ねてテキスト（文字列）のオブジェクトが配置される文書において、テキストを配置する方法は、文書の美観に大きな影響を与える。文書において画像と重ねてテキストを配置する技術として、例えば特許文献１および２に記載された技術が知られている。
【０００３】
特許文献１に記載の技術によれば、文字列を配置する際の書体、サイズなどの文字組情報が事前に設定される。ユーザがディスプレイ上にマウスで矩形を描くと、その矩形の中に文字組情報を考慮した文字列が配置される。画像などのオブジェクトが重ねて配置される場合、文字は部分的に消去されることができる。特許文献２に記載の技術によれば、テキストに重なるようにテキスト配置禁止の矩形が重ねられると、その矩形領域を避けるようにテキストの配置が変更される。
【０００４】
【特許文献１】特開２００１−００５９８５号公報
【特許文献２】特開平８−１１５３１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１において、テキストの配置に関してユーザの手動操作が必要で、テキストを自動配置することができないという問題があった。また、テキストと文字列が混在する場合、テキスト領域の形状が不規則になり、文字が読みににくくなるという問題もあった。特許文献２においても、テキスト領域の形状が不規則になり、文字が読みにくくなるという問題があった。
【０００６】
本発明は、複数のオブジェクトが重ねられる場合でも見やすい、すなわち調和のとれた位置にオブジェクトを自動的に配置する技術を提供する。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明は、各々画像またはテキストを示すデータである複数のオブジェクトであって処理対象となる対象オブジェクトおよび処理対象ではない非対象オブジェクトを含む複数のオブジェクト、前記複数のオブジェクトが配置される領域であるレイアウト領域を示すレイアウト領域情報、および前記非対象オブジェクトにおいて他のオブジェクトが重ねられて配置されることが禁止された領域を示す禁止領域情報を含む文書を取得する文書取得手段と、前記文書取得手段により取得された文書のレイアウト領域から前記禁止領域情報により示される領域を除いた領域である配置可能領域に含まれる矩形領域であって、前記対象オブジェクトの全部を内部に納めることができる矩形領域を算出する領域算出手段と、前記領域算出手段により算出された矩形領域の境界線のうち平行な２辺の間を黄金比に分割する黄金分割線を生成する分割線生成手段と、前記分割線生成手段により算出された黄金分割線に従って前記矩形領域内に前記対象オブジェクトを配置する配置手段とを有する文書編集装置を提供する。この文書編集装置によれば、非対象オブジェクトに対して調和のとれた位置に対象オブジェクトを配置することができる。
【０００８】
好ましい態様において、この文書編集装置は、前記配置手段により配置された対象オブジェクトが、前記矩形領域からはみ出すか判断する判断手段をさらに有し、前記判断手段により前記対象オブジェクトが前記矩形領域からはみ出すと判断された場合、前記領域算出手段が新たな矩形領域を算出してもよい。
【０００９】
別の好ましい態様において、この文書編集装置は、前記配置可能領域内の位置を示し、等間隔で配置された点を設定する点設定手段と、前記点設定手段により設定された点のうち、１つの点を基準点として特定する基準点特定手段とをさらに有し、前記矩形領域が、前記基準点特定手段により特定された基準点を含み、かつ前記配置可能領域に内接する矩形のうち、面積が最大となる最大矩形により特定される領域であってもよい。
【００１０】
さらに別の好ましい態様において、この文書編集装置は、前記最大矩形のサイズが前記対象オブジェクトのサイズより小さいか判断する判断手段をさらに有し、前記判断手段により前記最大矩形のサイズが前記対象オブジェクトのサイズより小さいと判断された場合、前記基準点特定手段が、前記最大矩形に含まれていた点以外の点を、新たな基準点として特定してもよい。
【００１１】
また、本発明は、コンピュータ装置を、各々画像またはテキストを示すデータである複数のオブジェクトであって処理対象となる対象オブジェクトおよび処理対象ではない非対象オブジェクトを含む複数のオブジェクト、前記複数のオブジェクトが配置される領域であるレイアウト領域を示すレイアウト領域情報、および前記非対象オブジェクトにおいて他のオブジェクトが重ねられて配置されることが禁止された領域を示す禁止領域情報を含む文書を取得する文書取得手段と、前記文書取得手段により取得された文書のレイアウト領域から前記禁止領域情報により示される領域を除いた領域である配置可能領域に含まれる矩形領域であって、前記対象オブジェクトの全部を内部に納めることができる矩形領域を算出する領域算出手段と、前記領域算出手段により算出された矩形領域の境界線のうち平行な２辺の間を黄金比に分割する黄金分割線を生成する分割線生成手段と、前記分割線生成手段により算出された黄金分割線に従って前記矩形領域内に前記対象オブジェクトを配置する配置手段として機能させるプログラムを提供する。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の一実施形態に係る文書編集装置１００の機能構成を示す図である。文書取得部１０１は、外部の装置または文書編集装置１００の記憶部（ともに図示略）から、文書を取得する。「文書」とは、少なくとも１つのオブジェクト、レイアウト領域を示すレイアウト領域情報、およびレイアウト領域におけるオブジェクトの配置を示すレイアウト情報を含むデータ、またはそのデータに従って出力される結果物をいう。「オブジェクト」とは、少なくとも画像もしくはテキスト（文字列）のいずれか一方を示すデータまたはそのデータにより示される画像もしくはテキストをいう。「レイアウト領域」とは、出力される文書の物理的な境界をいう。レイアウト領域は、例えば、文書が印刷される１または複数の紙、１つのページ、連続する複数のページをいう。オブジェクトは、対象オブジェクトと非対象オブジェクトに分類される。「対象オブジェクト」とは、本実施形態において配置を決定する処理の対象となるオブジェクトをいう。「非対象オブジェクト」とは、対象オブジェクト以外のオブジェクトをいう。本実施形態において、文書は、禁止領域を示す禁止領域情報を含んでいる。「禁止領域」とは、非対象オブジェクトにおいて他のオブジェクトが重ねられて配置されることが禁止された領域をいう。また、レイアウト領域における非対象オブジェクトの配置はあらかじめ決められている。
【００１３】
領域算出部１０２は、レイアウト領域における最大矩形により特定される最大矩形領域を算出する。「最大矩形」とは、配置可能領域に内接する矩形のうち、面積が最大のものをいう。「配置可能領域」とは、レイアウト領域から禁止領域を除いた領域をいう。分割線生成部１０３は、最大矩形領域内において黄金分割線を算出する。「黄金分割線」とは、平行な２つの基準線の間を黄金比に分割する線をいう。最大矩形の黄金分割線とは、最大矩形（領域の境界線あるいは外周）の平行な２辺の間を黄金比に分割する線をいう。配置部１０４は、黄金分割線に従って、レイアウト領域における対象オブジェクトの配置を決定する。入出力部１０５は、対象オブジェクトの配置が決定された文書を出力する。また、ユーザは、入出力部１０５を介して文書編集装置１００に対し指示を入力することができる。すなわち、入出力部１０５はユーザインターフェースを提供する。なお、「黄金比」とは、次式（１）で示される比をいう。なお、式（１）の右項と左項を入れ替えてもよい。
【数１】
2008021087.tif 000003
【００１４】
図２は、文書編集装置１００のハードウェア構成を示す図である。ＣＰＵ（Central Processing Unit）１１０は、文書編集装置１００の各構成要素を制御する制御装置である。ＲＯＭ（Read Only Memory）１２０は、文書編集装置１００の起動に必要なデータおよびプログラムを記憶する記憶装置である。ＲＡＭ（Random Access Memory）１３０は、ＣＰＵ１１０がプログラムを実行する際の作業領域として機能する記憶装置である。Ｉ／Ｆ（Interface）１４０は、種々の入出力装置や記憶装置との間でデータおよび制御信号の入出力をするインターフェースである。ＨＤＤ（Hard Disk Drive）１５０は、各種プログラムおよびデータを記憶する記憶装置である。本実施形態に関して、ＨＤＤ１５０は、文書の編集をする文書編集プログラムを記憶している。キーボード・マウス１６０は、ユーザが文書編集装置１００に対して指示入力を行うための入力装置である。ディスプレイ１７０は、データの内容あるいは処理の状況などを表示する出力装置である。ネットワークＩＦ１８０は、ネットワーク（図示略）を介して接続された他の装置との間でデータの送受信を行うためのインターフェースである。文書編集装置１００は、例えば、ネットワークおよびネットワークＩＦ１８０を介して文書（正確には、文書を示す電子データ）を受信することができる。ＣＰＵ１１０、ＲＯＭ１２０、ＲＡＭ１３０、およびＩ／Ｆ１４０は、バス１９０を介して接続されている。ＣＰＵ１１０が文書編集プログラムを実行することにより、文書編集装置１００は、図１に示される機能構成を備える。なお、文書編集装置１００は、図１に示される機能構成を実現可能なハードウェア構成を含むものであれば、どのような装置であってもよい。例えば、文書編集装置１００は、いわゆるパーソナルコンピュータであってもよい。あるいは、文書編集装置１００は、これらの機能を有するプリンタなどの画像形成装置であってもよい。
【００１５】
図３は、文書編集処理を示すフローチャートである。ステップＳ１００において、ＣＰＵ１１０は、文書を取得する。文書は、ＨＤＤ１５０すなわち文書編集装置１００自身から取得される。あるいは、文書は、ネットワークを介して接続された他の装置から取得されてもよい。さらにあるいは、文書は、キーボード・マウス１６０を介してユーザにより入力されてもよい。文書は、オブジェクト、レイアウト領域情報およびレイアウト情報を含んだ状態で取得される。あるいは、オブジェクト、レイアウト領域情報およびレイアウト情報は、それぞれ異なる経路で取得されてもよい。この場合、これらの情報は、文書編集装置１００において、単一の文書を示すデータとして関連付けられる。次に、ＣＰＵ１１０は、本実施形態において配置を決定する対象となる対象オブジェクトを特定する。対象オブジェクトは、例えば、文書に含まれるオブジェクトの中から選択される。あるいは、対象オブジェクトは、取得された文書以外のところから新たに指定されてもよい。この場合、新たに追加された対象オブジェクトも含めて「文書」という。対象オブジェクトは、例えば、あらかじめ決められたアルゴリズムに基づいてＣＰＵ１１０により決定される。あるいは、対象オブジェクトは、キーボード・マウス１６０を介してユーザにより指定されてもよい。ＣＰＵ１１０は、取得した文書をＲＡＭ１３０に記憶する。
【００１６】
図４は、処理対象となる文書を例示する図である。図４は、レイアウト領域Ｄに、ロゴＬを示す画像のオブジェクトと、画像Ｉを示す画像のオブジェクトと、文字列Ｃを示すテキストのオブジェクトが配置されている例を示している。すなわち、ロゴＬ、画像Ｉおよび文字列Ｃは非対象オブジェクトである。文字列Ｔを示すテキストのオブジェクトが対象オブジェクトである。対象オブジェクトの配置は決定されていない。対象オブジェクトの形および大きさはあらかじめ決められている。
【００１７】
再び図３を参照して説明する。ステップＳ２００において、ＣＰＵ１１０は、最大矩形領域を算出する。
【００１８】
図５は、領域算出処理の詳細を示すフローチャートである。ステップＳ２１０において、ＣＰＵ１１０は、配置可能領域内に点を設定する。すなわち、まず、ＣＰＵ１１０は、配置可能領域を特定する。
【００１９】
図６は、配置可能領域を例示する図である。本実施形態において、ロゴＬおよび文字列Ｃの全体、ならびに画像Ｉの一部分（禁止領域Ｉａ）が禁止領域として指定されている。配置可能領域は、レイアウト領域から禁止領域を除いた領域である。配置可能領域は、図６において斜線で示されている。
次に、ＣＰＵ１１０は、配置可能領域内に点を設定する。
【００２０】
図７は、設定された点を例示する図である。点は、例えば、一定の間隔で規則的に配置される。点が配置される間隔は任意設計事項である。点の配置は、格子状、千鳥状など、どのようなものでもよい。あるいは、点は、ランダムに配置されてもよい。
【００２１】
再び図５を参照して説明する。ステップＳ２２０において、ＣＰＵ１１０は、配置可能領域内に設定された点のうち、基準点となる点を選択する。基準点を選択するアルゴリズムは、任意のものを用いることができる。例えば、ＣＰＵ１１０は、あらかじめ決められた座標系においてｘ座標またはｙ座標の小さいものから順に基準点として選択してもよい。あるいは、ＣＰＵ１１０は、ランダムに基準点を選択してもよい。本実施形態においては、まず最も左上に位置する点が基準点として選択される（図７の点Ｐ１）。次に、ステップＳ２３０において、ＣＰＵ１１０は、基準点を内部に含む最大矩形を算出する。
【００２２】
図８は、最大矩形算出処理の詳細を示すフローチャートである。ステップＳ２３１において、ＣＰＵ１１０は、基準点を通る垂直線および水平線を求める。すなわち、ＣＰＵ１１０は、レイアウト領域において設定されたｘｙ座標系において、垂直線および水平線の式を算出する。図７に示されるように、ｘ軸およびｙ軸はそれぞれ水平方向および垂直方向に定義される。さらに、ＣＰＵ１１０は、得られた垂直線および水平線において、ｘ座標およびｙ座標の取りうる値の範囲を算出する。ここで、「ｘ座標およびｙ座標の取りうる値」とは、配置可能領域にあるｘ座標およびｙ座標を意味する。例えば、ｘ座標およびｙ座標の取りうる値の範囲として、ｘ１≦ｘ≦ｘ２およびｙ１≦ｙ≦ｙ２が得られる。
【００２３】
ステップＳ２３２において、ＣＰＵ１１０は、垂直座標ｙの最大値ｙｍａｘおよび最小値ｙｍｉｎを求める。すなわち、ＣＰＵ１１０は、ステップＳ２３１において算出されたｘ座標の範囲において、ｙ座標の取りうる値の範囲を算出する。例えば、ｘ＝ｘｉのとき、ｙｉｍｉｎ≦ｙｉ≦ｙｉｍａｘが得られる。ＣＰＵ１１０は、ｘ１≦ｘ≦ｘ２を満たす範囲内においてあらかじめ決められた変化量でｘ座標の値を変化させ、それぞれのｘ座標に対してｙ座標の取りうる値の範囲を算出する。ＣＰＵ１１０は、算出されたｙ座標の最大値ｙｉｍａｘのうち最小の値を、垂直座標ｙの最大値ｙｍａｘとして決定する。同様に、ＣＰＵ１１０は、算出されたｙ座標の最小値ｙｉｍｉｎのうち最大の値を、垂直座標ｙの最小値ｙｍｉｎとして決定する。
【００２４】
ステップＳ２３３において、ＣＰＵ１１０は、水平座標ｘの最大値ｘｍａｘおよび最小値ｘｍｉｎを求める。すなわち、ＣＰＵ１１０は、ステップＳ２３１において算出されたｙ座標の範囲において、ｘ座標の取りうる値の範囲を算出する。例えば、ｙ＝ｙｉのとき、ｘｉｍｉｎ≦ｘｉ≦ｘｉｍａｘが得られる。ＣＰＵ１１０は、ｙ１≦ｙ≦ｙ２を満たす範囲内においてあらかじめ決められた変化量でｙ座標の値を変化させ、それぞれのｙ座標に対してｘ座標の取りうる値の範囲を算出する。ＣＰＵ１１０は、算出されたｘ座標の最大値ｘｉｍａｘのうち最小の値を、垂直座標ｘの最大値ｘｍａｘとして決定する。同様に、ＣＰＵ１１０は、算出されたｘ座標の最小値ｘｉｍｉｎのうち最大の値を、垂直座標ｘの最小値ｘｍｉｎとして決定する。
【００２５】
ステップＳ２３４において、ＣＰＵ１１０は、以上の処理で算出された座標に基づいて最大矩形を決定する。すなわち、ＣＰＵ１１０は、点（ｘｍｉｎ，ｙｍｉｎ）、点（ｘｍｉｎ，ｙｍａｘ）、点（ｘｍａｘ，ｙｍｉｎ）、点（ｘｍａｘ，ｙｍａｘ）の４点を頂点とする矩形を、最大矩形Ｋとして決定する。
【００２６】
図９は、最大矩形Ｋを例示する図である。最大矩形Ｋは、基準点Ｐ１を内部に含み、かつ、配置可能領域に内接する矩形のうち、面積が最大となる最大矩形である。
【００２７】
再び図３を参照して説明する。ステップＳ３００において、ＣＰＵ１１０は、黄金分割線を生成する。すなわち、ＣＰＵ１１０は、ｘｙ座標平面において黄金分割線を特定するパラメータを算出する。生成された黄金分割線は、図９において破線で例示されている。本実施形態において、黄金分割線は、水平方向および垂直方向にそれぞれ２本ずつ生成される。次に、ステップＳ４００において、ＣＰＵ１１０は、黄金分割線に従って対象オブジェクトを配置する。
【００２８】
図１０は、対象オブジェクトを配置する処理の詳細を示すフローチャートである。ステップＳ４１０において、ＣＰＵ１１０は、垂直方向の黄金分割線と水平方向の黄金分割線の交点を基準として、対象オブジェクトを配置することができるか判断する。「交点を基準として対象オブジェクトを配置」とは、次のような意味である。図９の例において、垂直方向の黄金分割線と水平方向の黄金分割線の交点は４つ存在する（Ｃ１〜Ｃ４）。ＣＰＵ１１０は、交点Ｃ１〜Ｃ４から選択された１つの点の位置と、対象オブジェクトの４つの頂点のうちいずれか１つの頂点の位置とが一致するように、対象オブジェクトを配置する。交点Ｃ１〜Ｃ４から１つの点を選択するアルゴリズムおよび対象オブジェクトの４つの頂点から１つの頂点を選択するアルゴリズムとしては、任意のものが用いられる。例えば、交点Ｃ１〜Ｃ４を１つずつ順番に選択するアルゴリズムが用いられる。あるいは、交点Ｃ１〜Ｃ４をのうち一部、例えば、左上に位置する交点Ｃ１および右下に位置する交点Ｃ４を、１つずつ順番に選択するアルゴリズムが用いられてもよい。さらにあるいは、交点Ｃ１〜Ｃ４をのうちあらかじめ決められた条件を満たすいずれか１つの交点のみが選択されるアルゴリズムが用いられてもよい。対象オブジェクトの４つの頂点から選択される１つの頂点は、交点Ｃ１〜Ｃ４のうち選択された交点に応じて決定されてもよい。例えば、左上に位置する交点Ｃ１が選択された場合、対象オブジェクトの４つの頂点のうち左上に位置するものが選択されるアルゴリズムが用いられてもよい。あるいは、交点Ｃ１〜Ｃ４のうち選択された交点とは無関係に、４つの頂点から１つの頂点が１つずつ順番に選択されるアルゴリズムが用いられてもよい。
【００２９】
ＣＰＵ１１０は、以上のようにして配置された対象オブジェクトが、最大矩形領域からはみ出しているか判断する。すなわち、ＣＰＵ１１０は、４つの頂点のすべてが最大矩形領域内に位置するか判断する。４つの頂点のすべてが最大矩形領域内に位置すると判断された場合、ＣＰＵ１１０は、垂直方向の黄金分割線と水平方向の黄金分割線の交点を基準として対象オブジェクトを配置することができると判断する。４つの頂点のうち少なくとも１つの頂点が最大矩形領域外に位置すると判断された場合、ＣＰＵ１１０は、垂直方向の黄金分割線と水平方向の黄金分割線の交点を基準として対象オブジェクトを配置することができないと判断する。なお、採用されるアルゴリズムによっては、交点を基準として対象オブジェクトを配置するレイアウトは複数パターン存在する場合がある。ステップＳ４１０の判断は、各パターンについて行われる。
【００３０】
垂直方向の黄金分割線と水平方向の黄金分割線の交点を基準として対象オブジェクトを配置することができないと判断された場合（Ｓ４１０：ＮＯ）、ＣＰＵ１１０は、処理をステップＳ４２０に移行する。垂直方向の黄金分割線と水平方向の黄金分割線の交点を基準として対象オブジェクトを配置することができると判断された場合（Ｓ４１０：ＹＥＳ）、ＣＰＵ１１０は、処理をステップＳ４３０に移行する。
【００３１】
ステップＳ４２０において、ＣＰＵ１１０は、垂直方向の黄金分割線または水平方向の黄金分割線を基準として、対象オブジェクトを配置することができるか判断する。「黄金分割線を基準として対象オブジェクトを配置」とは、次のような意味である。図９の例において、黄金分割線は４本存在する。ＣＰＵ１１０は、対象オブジェクトの４辺のうちいずれか１つの辺が、４本の黄金分割線から選択された１本の黄金分割線と重なるように、対象オブジェクトを配置する。４本の黄金分割線から１本の黄金分割線を選択するアルゴリズムおよび対象オブジェクトの４つの辺から１つの辺を選択するアルゴリズムとしては、任意のものが用いられる。以下、詳細な説明は省略するが、ステップＳ４１０と同様に処理が行われる。
【００３２】
垂直方向の黄金分割線または水平方向の黄金分割線を基準として対象オブジェクトを配置することができると判断された場合（Ｓ４２０：ＹＥＳ）、ＣＰＵ１１０は、処理をステップＳ４３０に移行する。垂直方向の黄金分割線または水平方向の黄金分割線を基準として対象オブジェクトを配置することができないと判断された場合（Ｓ４２０：ＮＯ）、ＣＰＵ１１０は、処理をステップＳ４４０に移行する。
【００３３】
図１１は、対象オブジェクトの配置を例示する図である。図１１は、最大矩形領域内に対象オブジェクトを配置することができない例を示している。
【００３４】
再び図１０を参照して説明する。ステップＳ４３０において、ＣＰＵ１１０は、最大矩形領域内に対象オブジェクトを配置することが可能であることを示すフラグをＲＡＭ１３０に記憶する。ステップＳ４４０において、ＣＰＵ１１０は、最大矩形領域内に対象オブジェクトを配置することができないことを示すフラグをＲＡＭ１３０に記憶する。
【００３５】
再び図３を参照して説明する。ステップＳ５００において、ＣＰＵ１１０は、最大矩形領域内に対象オブジェクトを配置することができるか判断する。ここでは、ＣＰＵ１１０は、図１０に示される処理によって記憶されたフラグに基づいて判断を行う。最大矩形領域内に対象オブジェクトを配置することができると判断された場合（Ｓ５００：ＹＥＳ）、ＣＰＵ１１０は、処理をステップＳ６００に移行する。ステップＳ６００において、ＣＰＵ１１０は、対象オブジェクトが配置された文書を出力する。例えば、ディスプレイ１７０に文書を示す画面が表示される。あるいは、文書は、プリンタ等の外部装置に出力されてもよい。
【００３６】
最大矩形領域内に対象オブジェクトを配置することができないと判断された場合（Ｓ５００：ＮＯ）、ＣＰＵ１１０は、処理をステップＳ７００に移行する。ステップＳ７００において、ＣＰＵ１１０は、未試用の点が存在するか判断する。ここで、「未試用の点」とは、まだ基準点として設定されていない点をいう。ＣＰＵ１１０は、基準点として設定されていない点であっても、算出された最大矩形Ｋの内部に含まれる点については、試用済みの点、すなわち、既に基準点として設定された点として取り扱ってもよい。例えば、図９の例では、点Ｐ２、Ｐ３およびＰ４が最大矩形Ｋに含まれている。この場合、ＣＰＵ１１０は、点Ｐ２〜Ｐ４は試用済みであるとして取り扱ってもよい。未試用か試用済みかという判断は、例えば、フラグに基づいて行われる。すなわち、ＣＰＵ１１０は、最大矩形Ｋを算出した際に、その内部に含まれる点のフラグを「試用済み」に書き換える。フラグの初期値は「未試用」である。
【００３７】
未試用の点が無いと判断された場合（Ｓ７００：ＮＯ）、ＣＰＵ１１０は、処理をステップＳ８００に移行する。ステップＳ８００において、ＣＰＵ１１０は、対象オブジェクトをレイアウト領域に配置することはできないことを示す画面を、ディスプレイ１７０に表示させる。対象オブジェクトをレイアウト領域に配置することはできないことを示す画面を表示すると、ＣＰＵ１１０は、図３に示される処理を終了する。
【００３８】
未試用の点があると判断された場合（Ｓ７００：ＹＥＳ）、ＣＰＵ１１０は、処理をステップＳ９００に移行する。ステップＳ９００において、ＣＰＵ１１０は、未試用の点のうち１つの点を、新たな基準点として選択する。こうして、基準点が更新される。基準点を更新すると、ＣＰＵ１１０は、処理を再びステップＳ２００に移行する。ＣＰＵ１１０は、更新された基準点に基づいて新たな最大矩形Ｋを算出する。
【００３９】
図１２は、新たな最大矩形Ｋを例示する図である。今度は図１２に示される最大矩形Ｋに対して、図３のステップＳ３００以降の処理が行われる。図１２において、生成された黄金分割線は破線で示されている。
【００４０】
図１３および図１４は、黄金分割線に従って配置された対象オブジェクトを例示する図である。図１３および図１４は、黄金分割線の交点と対象オブジェクトの頂点とが一致するように、対象オブジェクトが配置される例を示している。このように、可能なレイアウトのパターンが複数存在する場合、ＣＰＵ１１０は、これらのパターンを全てディスプレイ１７０に表示させてもよい。この場合、ＣＰＵ１１０は、いずれか１つのパターンをユーザに選択させる画面をディスプレイ１７０に表示させる。ＣＰＵ１１０は、ユーザの選択に応じて、対象オブジェクトの配置を決定する。あるいは、ＣＰＵ１１０は、あらかじめ決められたアルゴリズムに従って、これらのパターンの中から１つのパターンを選択してもよい。例えば、２つのオブジェクトの重なり部分の面積が最小となるパターンを選択するアルゴリズムが採用されてもよい。
【００４１】
図１５は、対象オブジェクトが配置された文書を例示する図である。このように本実施形態によれば、２つ以上のオブジェクトが重ねて配置される場合においても、既に配置が決定されたオブジェクトと調和の取れる位置に、対象となるオブジェクトを配置することができる。
【００４２】
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。
上述の実施形態においては、対象オブジェクトがテキストのオブジェクトである例について説明したが、対象オブジェクトは画像のオブジェクトであってもよい。
【００４３】
上述の実施形態においては、最大矩形領域において、垂直方向および水平方向においてそれぞれ２本ずつ黄金分割線が生成される例について説明した。しかし、黄金分割線は、垂直方向および水平方向において１本だけ生成されてもよい。あるいは、黄金分割線は、垂直方向および水平方向のいずれか一方向のみにおいて生成されてもよい。
【００４４】
また、図３の処理において、黄金分割線が生成された後で、最大矩形領域に対象オブジェクトを配置することができるかが判断された。しかし、黄金分割線が生成される前に、対象オブジェクトの形および大きさ、ならびに最大矩形領域の形および大きさに基づいて、最大矩形領域に対象オブジェクトを配置することができるか判断されてもよい。
【００４５】
また、図３の処理において、算出される矩形領域が、最大矩形によって定められる最大矩形領域である例について説明した。しかし、黄金分割線を生成する基準となる矩形領域は、最大矩形領域に限定されない。例えば、最大矩形に対して一定のマージンを確保した矩形、すなわち最大矩形領域よりも小さい矩形によって定められる矩形領域が用いられてもよい。
【００４６】
また、上述の実施形態においては、単一の装置が図１に示される機能構成を有する例について説明した。しかし、複数の装置を含むシステムが、図１に示される機能構成を有していてもよい。
【図面の簡単な説明】
【００４７】
【図１】一実施形態に係る文書編集装置１００の機能構成を示す図である。
【図２】文書編集装置１００のハードウェア構成を示す図である。
【図３】文書編集処理を示すフローチャートである。
【図４】処理対象となる文書を例示する図である。
【図５】領域算出処理の詳細を示すフローチャートである。
【図６】配置可能領域を例示する図である。
【図７】設定された点を例示する図である。
【図８】最大矩形算出処理の詳細を示すフローチャートである。
【図９】最大矩形Ｋを例示する図である。
【図１０】対象オブジェクトを配置する処理の詳細を示すフローチャートである。
【図１１】対象オブジェクトの配置を例示する図である。
【図１２】新たな最大矩形Ｋを例示する図である。
【図１３】黄金分割線に従って配置された対象オブジェクトを例示する図である。
【図１４】黄金分割線に従って配置された対象オブジェクトを例示する図である。
【図１５】対象オブジェクトが配置された文書を例示する図である。
【符号の説明】
【００４８】
１００…文書編集装置、１０１…文書取得部、１０２…領域算出部、１０３…分割線生成部、１０４…配置部、１０５…入出力部、１１０…ＣＰＵ、１２０…ＲＯＭ、１３０…ＲＡＭ、１４０…Ｉ／Ｆ、１５０…ＨＤＤ、１６０…キーボード・マウス、１７０…ディスプレイ、１８０…ネットワークＩＦ
【図１】
2008021087.tif 000004
【図２】
2008021087.tif 000005
【図３】
2008021087.tif 000006
【図４】
2008021087.tif 000007
【図５】
2008021087.tif 000008
【図６】
2008021087.tif 000009
【図７】
2008021087.tif 000010
【図８】
2008021087.tif 000011
【図９】
2008021087.tif 000012
【図１０】
2008021087.tif 000013
【図１１】
2008021087.tif 000014
【図１２】
2008021087.tif 000015
【図１３】
2008021087.tif 000016
【図１４】
2008021087.tif 000017
【図１５】
2008021087.tif 000018