(57)【要約】【課題】図形の配置を変更する際に、図形の配置の変更方法を厳密に定義しなくても図形の並びを変更することを可能にする。【解決手段】本発明は、２つの図形の配置がどれくらい近似しているかを計算する関数を定義し、図形の配置を変更するパターンを複数用意し、変更したい対象に最適な変更パターンを関数計算により選択し、選択した変更パターンに基づいて関数計算により得られた各図形の変更先に配置を変更する。【選択図】      図１
2005018380.tif 000002
【特許請求の範囲】
【請求項１】
画面上に表示された複数の図形の配置を変更する図形配置方法において、
ユーザから与えられた図形の配置を変更する複数のパターンを記憶手段に記憶しておき、
前記画面上の２つの図形がどれくらい近似しているかを計算するための関数を入力し、
前記記憶手段に記憶されている全てのパターンと変更したい対象に対して、入力された関数を用いて関数計算を行い、計算結果をメモリに格納し、
前記メモリに格納された前記関数計算の結果の値が最も大きなパターンを選択し、
選択した変更パターンに基づいて、前記関数計算により得られた各図形の変更先に配置を変更することを特徴とする図形配置方法。
【請求項２】
画面上に表示された複数の図形の配置を変更する図形配置プログラムであって、
前記画面上の２つの図形がどれくらい近似しているかを計算するための関数を入力させる関数入力ステップと、
予めユーザから与えられ、記憶手段に記憶されている全てのパターンと変更したい対象に対して、入力された関数を用いて関数計算を行い、計算結果をメモリに格納する関数計算ステップと、
前記メモリに格納された前記関数計算の結果の値が最も大きなパターンを選択するパターン選択ステップと、
選択した変更パターンに基づいて、前記関数計算により得られた各図形の変更先に配置を変更する配置変更ステップと、
からなることを特徴とする図形配置プログラム。
【請求項３】
画面上に表示された複数の図形の配置を変更する図形配置プログラムを格納した記憶媒体であって、
前記画面上の２つの図形がどれくらい近似しているかを計算するための関数を入力させる関数入力ステップと、
予めユーザから与えられ記憶手段に記憶されている全てのパターンと変更したい対象に対して、入力された関数を用いて関数計算を行い、計算結果をメモリに格納する関数計算ステップと、
前記メモリに格納された前記関数計算の結果の値が最も大きなパターンを選択するパターン選択ステップと、
選択した変更パターンに基づいて、前記関数計算により得られた各図形の変更先に配置を変更する配置変更ステップと、
からなることを特徴とする図形配置プログラムを格納した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、図形配置方法及び図形配置プログラム及び図形配置プログラムを格納した記憶媒体に係り、特に、図形エディタ等において、図面上に表示された複数の図形の配置を変更するための図形配置方法及び図形配置プログラム及び図形配置プログラムを格納した記憶媒体に関する。
【０００２】
【従来の技術】
従来、図形エディタなどで図形の配置を変更するには、予めシステムに備えられているパワーポイントの整列機能のような整列法（例えば、図形の右側を垂直線でそろえるなど）を用いるか、プログラムをユーザが正確に定義してそれに従って配置の変更を行うという方法がある。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来のパワーポイントの整列機能のような整列法は、用意されていない整列を行うのは、困難であり、拡張性に欠けるという問題がある。また、プログラムの定義に基づいて配置の変更を行う方法は、様々な変更が可能であるが、プログラムという厳密な定義が必要であり、手軽さに欠けるという問題がある。
【０００４】
本発明は、上記の点に鑑みなされたもので、図形の並びの変更方法を正確に指示しなくても、だいたいの指示で図形の並びを変更すること、また、その図形の並びの変更を連続して行うことで、アニメーションを得ることが可能な図形配置方法及び図形配置プログラム及び図形配置プログラムを格納した記憶媒体を提供することを目的とする。
【０００５】
【課題を解決するための手段】
図１は、本発明の原理を説明するための図である。
【０００６】
本発明は、画面上に表示された複数の図形の配置を変更する図形配置方法において、
ユーザから与えられた図形の配置を変更する複数のパターンを記憶手段に記憶しておき（ステップ１）
画面上の２つの図形がどれくらい近似しているかを計算するための関数を入力し（ステップ２）、
記憶手段に記憶されている全てのパターンと変更したい対象に対して、入力された関数を用いて関数計算を行い、計算結果をメモリに格納し（ステップ３）、
メモリに格納された関数計算の結果の値が最も大きなパターンを選択し（ステップ４）、
選択した変更パターンに基づいて、関数計算により得られた各図形の変更先に配置を変更する（ステップ５）。
【０００７】
本発明は、画面上に表示された複数の図形の配置を変更する図形配置プログラムであって、
画面上の２つの図形がどれくらい近似しているかを計算するための関数を入力させる関数入力ステップと、
予めユーザから与えられ記憶手段に記憶されている全てのパターンと変更したい対象に対して、入力された関数を用いて関数計算を行い、計算結果をメモリに格納する関数計算ステップと、
メモリに格納された関数計算の結果の値が最も大きなパターンを選択するパターン選択ステップと、
選択した変更パターンに基づいて、関数計算により得られた各図形の変更先に配置を変更する配置変更ステップと、からなる。
【０００８】
本発明は、画面上に表示された複数の図形の配置を変更する図形配置プログラムを格納した記憶媒体であって、
画面上の２つの図形がどれくらい近似しているかを計算するための関数を入力させる関数入力ステップと、
予めユーザから与えられ記憶手段に記憶されている全てのパターンと変更したい対象に対して、入力された関数を用いて関数計算を行い、計算結果をメモリに格納する関数計算ステップと、
メモリに格納された関数計算の結果の値が最も大きなパターンを選択するパターン選択ステップと、
選択した変更パターンに基づいて、関数計算により得られた各図形の変更先に配置を変更する配置変更ステップと、からなる。
【０００９】
上記により、ユーザにより与えられたパターンに従って図形の配置を変更することが可能となる。
【００１０】
また、図形の配置がパターンとして与えられた配置と一致しなくても、図形の配置を変更することが可能となる。
【００１１】
また、図形の配置とパターンで与えられた配置とのずれに応じて、図形の配置を行うことが可能となる。
【００１２】
【発明の実施の形態】
以下、図面と共に本発明の実施の形態を説明する。
【００１３】
図２は、本発明の一実施の形態における配置の近さを計算する例を示す。
【００１４】
ここで用いるオブジェクトは３つの値（横方向のオブジェクトの中心座標Ｘ，縦芳香のオブジェクトの中心座標Ｙ，画面上から時計方向に計測したオブジェクトの回転θ）から構成される。２つのオブジェクトＡ，Ｂの距離を、
│ＡＢ│＝√（（Ａｘ−Ｂｘ）＊（Ａｘ−Ｂｘ）＋（Ａｙ−Ｂｙ）＊（Ａｙ−Ｂｙ））
とする。また、Ａの中心とＢの中心がどれくらい回転しているかＳを
Ｓ＝ａｔａｎ（（Ａｙ−Ｂｙ）／（Ａｙ−Ｂｘ））＊１８０／３．１４１５９２６５４とすると、ＡからみたＢの相対角度ｒｄｉｒ（Ａ，Ｂ）を
ｒｄｉｒ（Ａ，Ｂ）＝Ａθ−Ｓ
ＢからみたＡの相対角度ｒｄｉｒ（Ｂ，Ａ）を、
ｒｄｉｒ（Ｂ，Ａ）＝Ｂθ−Ｓ
とする。また、ＡとＢの向きの差ａｎｇｌｅ（Ａ，Ｂ）を
ａｎｇｌｅ（Ａ，Ｂ）＝Ａθ―Ｂθ
とする。以上の関係は、後述する図２の左側に示されている。
【００１５】
以上の式を用いて、２つのオブジェクトＡ，Ｂが別の２つのオブジェクトＸ，Ｙとで、どれくらい配置が近いかを調べる関数ｒｅｌ２（Ａ，Ｂ，Ｘ，Ｙ）を（１）で定義する。
【００１６】
【数１】
2005018380.tif 000003
ここで、属性の差δと、重みξは、
【００１７】
【数２】
2005018380.tif 000004
のように定義される。上記式（１）のδ（Ｘ，Ｙ，Ｗ）は、ＸとＹが近ければ１に近付き、離れるほど０に近付く。ξは、ＡとＢが近い位置にあり、さらにＸとＹが近い位置にあるとき、０に近付き、いずれかが離れていると１に近付くことを意味する。上記において、ＣｊとＷｉはシステムの振る舞いを変更するパラメータである。
【００１８】
図２に２つの図形Ａ，Ｂと別の２つの図形Ｘ，Ｙの図形の配置の近さを計算する例を示す。
【００１９】
２つの図形のグループ間の図形の対応関係をｍａｐとしたとき、ｒｅｌは、
【００２０】
【数３】
2005018380.tif 000005
のように定義される。
【００２１】
例えば、図３において、ある図形のグループ｛ａ，ｂ，ｃ｝と別のグループ｛２，３，４｝があったとき、それらのグループの対応関係を２＝ｍａｐ（ａ），３＝ｍａｐ（ｂ），４＝ｍａｐ（ｃ）とすると、このグループ間の配置の近さは、
【００２２】
【数４】
2005018380.tif 000006
のようになる。ここで、ｒｅｌ２は、図形を入れ換えても対象であるため、逆の関係は省略されている。
【００２３】
次に、図形の配置変えのパターンを与えることで、そのパターンに最も近くなるように対象の配置を変更する方法を定義する。配置変えのパターンを図３の上部のように与える。図３では、図形のグループ｛ａ，ｂ，ｃ｝が配置を変更して｛Ａ，Ｂ，Ｃ｝のようになることを示している。なお、このような情報は、記憶手段に格納されているものとする。パターンには配置変えの種となる図形（ａ）が矢印で示されている。このパターンを記憶手段から読み込んで、対象の図形のグループ｛１，２，３，４，５，６｝に対して配置変えを行う。このパターンでは、図形２に対して、配置変えの指示をしたとする。そこで、まず、配置変えの種ａと、２とを対応させる。次に、ｒｅｌが最も大きな値になるように他の図形同士の組み合わせを探す。この例では、図形ｂを３に、ｃを４に対応させたときｒｅｌが最大になるので、その組み合わせをｍａｐとする。
【００２４】
パターンの左辺Ｌと右辺Ｒの関係に最も近くなるように、配置変えをする。右辺と対象の新しい配置の図形との対応を９＝ｇｅｎ（Ａ），８＝ｇｅｎ（Ｂ），７＝ｇｅｎ（Ｃ）とすると、
【００２５】
【数５】
2005018380.tif 000007
を最大にするように、ｇｅｎで対応する図形の配置が変更される。
【００２６】
このように、図形の配置を変更する例を複数用意しておき、変更したい対象の図形に対して、用意された全てのパターンでｒｅｌを計算し、それぞれの計算結果をメモリ等に一時的に格納しておき、ｒｅｌが最も大きな値になる（即ち、変更したい対象に最も近い配置を持っている）パターンを選ぶ。選ばれたパターンにおいて、Ｇを最大にするように各図形の配置を計算する。なお、この計算には、多変数関数の最大化のための数値計算を用いるものとする。
【００２７】
なお、上記の動作をプログラムとして構築し、図形配置装置として利用されるコンピュータにインストールし、ＣＰＵ等の制御手段に実行させる、または、ネットワークを介して流通させることも可能である。
【００２８】
また、構築されたプログラムを、図形配置装置として利用されるコンピュータに接続されるハードディスク装置や、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納しておき、本発明を実施する際に、コンピュータにインストールし、実行させることも可能である。
【００２９】
【実施例】
以下、図面と共に本発明の実施例を説明する。
【００３０】
図４は、本発明の一実施例の動作を説明するためのフローチャートである。
【００３１】
以下では、システムの挙動を決めるためのｒｅｌ２の定義、つまり、Ｃ，Ｗ、ξのパラメータを入力する。また、システムを起動する前に、予め複数の並び替えのパターン（Ｐ１，Ｐ２，…，Ｐｎ）を入力する。また、ユーザは、並び替えをさせようと思う図形の配置Ｘを入力する。さらに、メモリには、中間状態として、Ｘに一番近いパターンｍａｘＰとそのときの対応関係ｍａｘＭａｔが格納される。最終的に、以下の動作により得られる図形配置Ｙが出力される。
【００３２】
ステップ１０１）  ユーザが図形の配置を変更する複数のパターン（Ｐ１，Ｐ２，Ｐ３，…Ｐｎ）を用意し、これを記憶手段に格納しておく。なお、パターンＰは、左側の図形群Ｌ（Ｐ）と右側の図形群Ｒ（Ｐ）から構成されるものとする。
【００３３】
ステップ１０２）  ユーザが特定の図形の配置Ｘに対して、パターンに従った配置変更の指令を入力する。
【００３４】
ステップ１０３）  システムは、配置Ｘと記憶手段に格納されている各パターンＰ∈｛Ｐ１，Ｐ２，Ｐ３，…｝の左側の図形群Ｌ（Ｐ）との配置の近さを、前述の式（３）により、ｒｅｌ（Ｐ，ｍａｐ）により計算し、メモリに記憶する。このとき、メモリ内の計算値から、配置Ｘに含まれる図形ｘ∈ＸとパターンＰに含まれるｐ∈Ｐの対応関係ｘ＝ｍａｐ（ｐ）の中で、ｒｅｌ（Ｐ，ｍａｐ）が最も大きくなる対応関係を選択する。
【００３５】
つまり、メモリに格納される値は、これまでに計算したパターンと配置の対応関係で配置の近さが最大になるもの
ｍａｘＰ：配置の近さが最大となるパターン；
ｍａｘＭａｐ：配置の近さが最大になる配置の対応関係；
ｍａｘＲｅｌ：ｍａｘＰとｍａｘＭａｐのとき配置の近さ；
全てのパターンと配置の対応関係で配置の近さｒｅｌを計算するが、その最大値を求めるときにこれらのメモリ内の変数を更新しながら行う。
【００３６】
ステップ１０４）  記憶手段に格納されている全てのパターンに対して上記のステップ１０３の計算が終了すればステップ１０５に移行し、終了していない場合は、ステップ１０３に移行する。
【００３７】
ステップ１０５）  配置の近さＭａｘＲｅｌが最大となるｍａｘＰとｍａｘＭａｐを選択する。
【００３８】
ステップ１０６）  選択されたｍａｘＰとｍａｘＭａｐを用いて、新たに生成する図形群Ｙの各図形ｙ∈Ｙを、ｙ＝ｇｅｎ（ｒ）、ｒ∈Ｒ（ｍａｘＰ）とすると、前述の式（５）により、Ｇ（Ｌ（ｍａｘＰ），Ｒ（ｍａｘＰ），ｍａｘＭａｐ，ｇｅｎ）を最大にするように生成する各図形ｙ∈Ｙの配置を決める。このとき、ｙの初期配置を適当に決めて、数値計算によって各ｙの配置を求める。
【００３９】
以下に、上記の動作を適用した場合の例を説明する。
【００４０】
図５は、本発明の一実施例の図形配置の例であり、図形の配置をどのように変更するかを実際の図形の並びの例で示したものである。左側の図の並びを右側の図の並びのように配置変えする。ここでは、２つの図形（太陽と棒と星の棒）があった場合、棒の根本を寄せるように配置を変更する、という例である。この配置変えの例を用いて、実際の図形の対象の配置を変更させると図６のようになる。
【００４１】
具体的には、図５のルールの具多的な値を、
左側太陽オブジェクトＬ１［−５０，０，０］（Ｘ座標―５０、Ｙ座標０、回転０度）
左側星オブジェクトＬ２［５０，０，０］
右側太陽オブジェクトＲ１［−５０，０，−３０］
右側星オブジェクトＲ２［５０，０，３０］
とする。
【００４２】
図６のＡの配置が、
太陽Ａ［３００，２００，０］
星Ａ２［４００，２００，０］
であるとき、これによって新しい配置Ａ３，Ａ４は、
Ａ１＝ｍａｐ（Ｌ１），Ａ２＝ｍａｐ（Ｌ２），
Ａ３＝ｇｅｎ（Ｒ１），Ａ４＝ｇｅｎ（Ｒ２）
とすると、
Ｇ（｛Ｌ１，Ｌ２｝、｛Ｒ１，Ｒ２｝，ｍａｐ，ｇｅｎ）
＝Ｗ（Ｌ１，Ｒ１）ｒｅｌ２（Ｌ１，Ｒ１，Ａ１，Ａ３）
＋Ｗ（Ｌ１，Ｒ２）ｒｅｌ２（Ｌ１，Ｒ２，Ａ１，Ａ４）
＋Ｗ（Ｌ２，Ｒ１）ｒｅｌ２（Ｌ２，Ｒ１，Ａ２，Ａ３）
＋Ｗ（Ｌ２，Ｒ２）ｒｅｌ２（Ｌ２，Ｒ２，Ａ２，Ａ４）
＋Ｗ（Ｒ１，Ｒ２）ｒｅｌ２（Ｒ１，Ｒ２，Ａ３，Ａ４）
となる。
【００４３】
ここで、具体的な値を入れると、
Ａ３＝［Ｘ３，Ｙ３，θ３］
Ａ４＝［Ｘ４，Ｙ４，θ４］
とするとき、
ｆ（Ｘ３，Ｙ３，θ３，Ｘ４，Ｙ４，θ４）
＝Ｗ（Ｌ１，Ｒ１）ｒｅｌ２（Ｌ１，Ｒ１，Ａ１，Ａ３）
＋Ｗ（Ｌ１，Ｒ２）ｒｅｌ２（Ｌ１，Ｒ２，Ａ１，Ａ４）
＋Ｗ（Ｌ２，Ｒ１）ｒｅｌ２（Ｌ２，Ｒ１，Ａ２，Ａ３）
＋Ｗ（Ｌ２，Ｒ２）ｒｅｌ２（Ｌ２，Ｒ２，Ａ２，Ａ４）
＋Ｗ（Ｒ１，Ｒ２）ｒｅｌ２（Ｒ１，Ｒ２，Ａ３，Ａ４）
ｗｈｅｒｅ  Ｌ１＝［−５０，０，０］
Ｌ２＝［−５０，０，０］
Ｒ１＝［−５０，０，−３０］
Ｒ２＝［５０，０，３０］
Ａ１＝［３００，２００，０］
Ａ２＝［４００，２００，０］
を最大にするＸ３，Ｙ３，θ３，Ｘ４，Ｙ４，θ４を求め、その値を用いて、新しい図の配置を決める。
【００４４】
同様に、図６Ｂ，図６Ｃに関しても、Ａ１，Ａ２の値をそれぞれ入れ替えることによって上記の計算を行う。
【００４５】
上記のような計算の結果、以下に示すような配置変えを行うことができる。
【００４６】
図６のＡは、図５の左側と殆ど同じ配置をしているので、配置変えの結果も同じような配列になっている（２つの棒の根本が近付いている）。図６のＢは、星の図形が少し下に配置されている。そのため、配置変えを行うと、それぞれの棒の根本が近付くだけでなく、星の位置も少し下になるように配置される。図６のＣは、もともとの並びが根本が開いたような配置になっているので、その結果も根本が完全に近付くのではなく、元の開き具合に応じた閉じ方をしている。
【００４７】
このように、与えた配置変えのパターンに完全に一致していなくても、そのずれ具合に応じた配置変えをする。
【００４８】
図７、図８は、それぞれ、図形の配置を変更する例である。図９は、それらを実際の対象に対して配置変えさせたときの動作を示している。図９に対して、図７を用いて図形の配置を変更しようとすると、車はハンドルと同じ向きに変わる。この配置の変更を連続して行うと、車は図９のＡで示される経路に従って移動するように見える。この理由は、まず、車とハンドルの向きが違っている場合には、図７の右上のパターンに一番近い配置であるので、車の向きをハンドルと同じ方向に回転させようとする。その後、車とハンドルは同じ向きになるので、図７の左上のパターンに近い配置となり、車は前に進んだようなアニメーションとなる。
【００４９】
一方、図８のパターンを用いて図９の配置を変更しようとすると、図９の図形の配置では、車とハンドルの関係よりも、ハンドルと運転台との関係を重視するので、常に図８の右側のパターンが一番近くなる。そのため、連続して配置の変更を行うと、図９のＢに沿って車が移動するようになる。
【００５０】
なお、本発明は、上記の実施の形態及び実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【００５１】
【発明の効果】
上述のように、本発明によれば、変更パターンとの近似の度合い（ずれ）に応じて図形の配置を変更することが可能となるため、図形の配置の変更方法を厳密に定義しなくてもよい。
【図面の簡単な説明】
【図１】本発明の原理を説明するための図である。
【図２】本発明の一実施の形態における配置の近さを計算する例を示す図である。
【図３】本発明の一実施の形態における配置変えの例である。
【図４】本発明の一実施例の動作を説明するための図である。
【図５】本発明の一実施例の図形の配置の例である。
【図６】本発明の一実施例の図形の対象配置を変更させる例である。
【図７】本発明の一実施例の図形の配置の変更の例（その１）である。
【図８】本発明の一実施例の図形配置の変更の例（その２）である。
【図９】本発明の一実施例の実際の対象に対して配置変えさせた時の動作を示す図である。
【図１】
2005018380.tif 000008
【図２】
2005018380.tif 000009
【図３】
2005018380.tif 000010
【図４】
2005018380.tif 000011
【図５】
2005018380.tif 000012
【図６】
2005018380.tif 000013
【図７】
2005018380.tif 000014
【図８】
2005018380.tif 000015
【図９】
2005018380.tif 000016