(57)【要約】【課題】大量のコピーを、容易に行う。【解決手段】例示コピー部２３は、ガイド形状を有するガイド物体の内部に、ガイド物体を構成する要素をコピーする。すなわち、例示コピー部２３において、場関数算出部３２は、ユーザが入力した複数の要素に基づいて、その複数の要素にフィットする場関数を求めて、コピーデータ生成部３３に供給する。コピーデータ生成部３３は、場関数算出部３２からの場関数に基づいて、要素のコピーを生成する。本発明は、例えば、CGを構成する要素をコピーする場合に適用することができる。【選択図】図４
2008305123.tif 000002
【特許請求の範囲】
【請求項１】
二次元、又は三次元画像における所定の形状を有する物体に関して、前記物体を構成する要素をコピーする画像処理装置において、
ユーザが前記画像に入力した複数の要素に基づいて、その複数の要素にフィットする場関数を求める場関数算出手段と、
前記場関数に基づいて、要素のコピーを生成するコピー生成手段と
を備える画像処理装置。
【請求項２】
前記場関数算出手段は、
各位置に対して、所定の等値面からの距離を与える場関数である位置場関数、
各位置に対して、要素が向く方向を与える場関数である方向場関数、
各位置に対して、要素のサイズを与える場関数であるサイズ場関数、
又は、各位置に対して、その位置から最も近い要素の位置までの距離を、要素が存在する密度として、その密度を与える場関数である密度場関数
のうちの１つ以上を求める
請求項１に記載の画像処理装置。
【請求項３】
前記場関数算出手段は、ユーザが前記画像に入力した複数の要素の位置に対する前記位置場関数の値それぞれの自乗の総和を最小にする前記位置場関数を求める
請求項２に記載の画像処理装置。
【請求項４】
前記場関数算出手段は、ユーザが前記画像に入力した複数の要素が向いている方向それぞれと、その複数の要素の位置に対する前記方向場関数のグラディエントそれぞれとの自乗誤差の総和を最小にする前記方向場関数を求める
請求項２に記載の画像処理装置。
【請求項５】
前記場関数算出手段は、ユーザが前記画像に入力した複数の要素のサイズそれぞれと、その複数の要素の位置に対する前記サイズ場関数の値それぞれとの自乗誤差の総和を最小にする前記サイズ場関数を求める
請求項２に記載の画像処理装置。
【請求項６】
前記場関数算出手段は、ユーザが前記画像に入力した複数の要素についての密度それぞれと、その複数の要素の位置に対する前記密度場関数の値それぞれとの自乗誤差の総和を最小にする前記密度場関数を求める
請求項２に記載の画像処理装置。
【請求項７】
前記場関数算出手段が、各位置に対して、所定の等値面からの距離を与える場関数である位置場関数を求める場合、
前記コピー生成手段は、
ユーザが前記画像に入力した要素の位置から所定の距離以内の領域を、要素をコピーしない除外領域に設定し、
その後、
ユーザが前記画像に入力した複数の要素の位置に対する前記位置場関数の値に基づいて、等値面を設定するためのスカラー値を設定し、
前記位置場関数が前記スカラー値となる等値面から所定の距離以内の領域を、等値面領域に設定し、
前記等値面領域であって、前記除外領域でない領域の位置から、要素のコピーの位置であるコピー位置を決定し、
前記コピー位置から所定の距離以内の領域を、前記除外領域に設定する
ことを繰り返す
請求項１に記載の画像処理装置。
【請求項８】
前記場関数算出手段が、さらに、各位置に対して、要素が向く方向を与える場関数である方向場関数を求める場合、
前記コピー生成手段は、前記コピー位置に対する前記方向場関数の値を用いて、要素のコピーの方向を決定する
請求項７に記載の画像処理装置。
【請求項９】
前記場関数算出手段が、さらに、各位置に対して、要素のサイズを与える場関数であるサイズ場関数を求める場合、
前記コピー生成手段は、前記コピー位置に対する前記サイズ場関数の値を用いて、要素のコピーのサイズを決定する
請求項７に記載の画像処理装置。
【請求項１０】
前記場関数算出手段が、さらに、各位置に対して、その位置から最も近い要素の位置までの距離を、要素が存在する密度として、その密度を与える場関数である密度場関数を求める場合、
前記コピー生成手段は、
前記コピー位置に対する前記密度場関数の値を用いて、要素のコピーについての密度を決定し、
要素のコピーのコピー位置から、その要素のコピーについての密度が表す距離以内の領域を、前記除外領域に設定する
請求項７に記載の画像処理装置。
【請求項１１】
二次元、又は三次元画像における所定の形状を有する物体に関して、前記物体を構成する要素をコピーする画像処理装置の画像処理方法において、
ユーザが前記画像に入力した複数の要素に基づいて、その複数の要素にフィットする場関数を求め、
前記場関数に基づいて、要素のコピーを生成する
ステップを含む画像処理方法。
【請求項１２】
二次元、又は三次元画像における所定の形状を有する物体に関して、前記物体を構成する要素をコピーする画像処理装置として、コンピュータを機能させるプログラムにおいて、
ユーザが前記画像に入力した複数の要素に基づいて、その複数の要素にフィットする場関数を求める場関数算出手段と、
前記場関数に基づいて、要素のコピーを生成するコピー生成手段と
して、コンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関し、特に、例えば、スイカの画像において、そのスイカを構成する種等の要素の大量のコピーを、容易に行うことができるようにする画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
例えば、３次元形状のCG(Computer Graphics)としての画像を作成する場合に、基本的な形状（基本形状）を含む各種の形状（の要素）のコピーは、大変重要なオペレーションであり、実際に市販されている、形状を作成するソフトウェアには、多種多様なコピーの方法（コピー方法）が実装されている。
【０００３】
ここで、本明細書において「コピー」とは、複写することを表すときと、複写によって得られる複製（複写物）を表すときとがある。
【０００４】
例えば、従来のコピー方法では、形状のコピーを大量に行う場合、コピーの配置が制限され、その制限の下で、ユーザが、コピーの配置等を指定するパラメータを設定して、コピーが行われる。
【０００５】
このように、従来のコピー方法では、大量のコピーを行う場合に、コピーの配置が制限されるため、例えば、コピーを等間隔で配置する、円状に配置する、規則的に、回転や、拡大、縮小等をしながら、あるパスに沿って配置する、といったように、コピーの配置が、定形な配置、ひいては、規則的で単純な配置となる。
【０００６】
なお、ユーザが設定したパラメータに乱数を影響させることで、コピーの配置に多少の不規則性を与えることができるが、それでも、規則的で単純な配置である印象を与えることはぬぐいきれない。
【０００７】
また、コピーの配置が制限される従来のコピー方法では、いわば、大局的な構造を入れにくいため、コピーの配置が、例えば、直線や円など、幾何的に規則的かつ単純なパターンになってしまい、例えば、場所（位置）に応じてコピーの密度が非線形に変化するようなコピーの配置を指定することは困難である。
【０００８】
さらに、従来のコピー方法では、ユーザが、コピーの配置等のパラメータ（例えば、コピーを配置する間隔等）を設定するというユーザインターフェースを採用するため、ユーザが、いわば直感的に、コピーの操作をしにくい。
【０００９】
すなわち、例えば、コピーの配置等のパラメータを設定する場合には、ユーザは、コピーを配置する空間的な位置を、パラメータとなる数値で把握し、その数値を、パラメータとして設定（入力）する必要があるが、コピーを配置する空間的な位置を、直感的に数値で把握することは困難である。
【００１０】
一方、CGによるデザインを行うデザイナ等からは、例えば、地面に散乱する落葉や、動物の群れ、石垣の石のパターン等の、ある種の規則性を持ちながらも、制約されたランダム性を有し、大局的な構造を持つ配置を実現するためのコピー方法が要請されており、そのような配置を、規則的で単純な配置のコピーで実現することは困難である。
【００１１】
すなわち、上述のような規則性とランダム性とを有し、大局的な構造を持つ配置を実現するためには、大量のコピーについて、規則性とランダム性を、ある程度の自由度で制御することができるコピー方法が必要となる。
【００１２】
自由度の高いコピー方法としては、場関数(field function)をガイドとして用いる方法がある（例えば、非特許文献１を参照）。
【００１３】
ここで、場関数は、空間的なパラメータの分布を与える関数で、空間的な位置を引数として、その位置におけるパラメータの値を関数値として出力する。
【００１４】
場関数をガイドとして用いるコピー方法では、コピーを制御（ガイド）するための場関数が、ユーザによって設定（エディット）され、その場関数をガイドとして、コピーが生成される。
【００１５】
このコピー方法によれば、ユーザは、場関数を設定することによって、一個一個のコピーの配置等ではなく、コピーの結果の、大局的な、全体の雰囲気（大局的な構造）を指定することができ、さらに、場関数によって制御された大量のコピーを生成することができる。
【００１６】
但し、上述の場関数をガイドとして用いるコピー方法は、その適用が、２次元のストロークをコピーすることに限られており、そのまま、３次元のストロークのコピーに適用することは困難である。
【００１７】
また、上述の場関数をガイドとして用いるコピー方法では、場関数に与えられる情報量が十分でないために実用性が高いとは言い難い。さらに、ユーザは、場関数を直接設定しなければならず、直感的に、コピーの操作をすることが難しい。また、コピーの対象とする形状が３次元の形状である場合には、場関数の設定が難しいことがある。さらに、コピーをするのに、コピーの位置等を指定するのではなく、コピーのガイドをする場関数を設定しなければならないのは、直感的な操作性があるとは言い難い。
【００１８】
なお、２次元のストロークから奥行き方向の情報を生成し、３次元のデータとする技術が提案されているが（例えば、特許文献１を参照）、この技術で、大量のコピーを容易に行うことは難しい。
【００１９】
【特許文献１】特開2006-285616号公報
【非特許文献１】Martin Schwarz, Tobias Isenberg, Katherine Mason and Sheelagh Carpendale, "Modeling with Rendering Primitives: An Interactive Non-Photorealistic Canvas ", [online],  [平成19年6月4日検索], インターネット〈URL：http://pharos.cpsc.ucalgary.ca/Dienst/Repository/2.0/Body/ncstrl.ucalgary_cs/2007-851-03/pdf〉
【発明の開示】
【発明が解決しようとする課題】
【００２０】
上述したように、CGの作成において、例えば、地面に散乱する落葉や、動物の群れ、石垣の石のパターン等の、規則性とランダム性を有し、大局的な構造を持つ配置を実現することが要請されており、そのためには、規則性とランダム性を、ある程度高い自由度で制御可能な大量のコピーを行うコピー方法がする必要である。
【００２１】
本発明は、このような状況に鑑みてなされたものであり、規則性とランダム性を、高い自由度で制御可能な大量のコピーを、容易に行うことができるようにするものである。
【課題を解決するための手段】
【００２２】
本発明の一側面の画像処理装置、又は、プログラムは、二次元又は三次元画像における所定の形状を有する物体に関して、前記物体を構成する要素をコピーする画像処理装置、又は、画像処理装置としてコンピュータを機能させるプログラムであり、ユーザが前記画像に入力した複数の要素に基づいて、その複数の要素にフィットする場関数を求める場関数算出手段と、前記場関数に基づいて、要素のコピーを生成するコピー生成手段とを備える画像処理装置、又は、画像処理装置としてコンピュータを機能させるプログラムである。
【００２３】
本発明の一側面の画像処理方法は、二次元又は三次元画像における所定の形状を有する物体ガイド形状に関して、前記物体を構成する要素をコピーする画像処理装置の画像処理方法であり、ユーザが前記画像に入力した複数の要素に基づいて、その複数の要素にフィットする場関数を求め、前記場関数に基づいて、要素のコピーを生成するステップを含む。
【００２４】
以上のような一側面においては、ユーザが前記画像に入力した複数の要素に基づいて、その複数の要素にフィットする場関数が求められ、その場関数に基づいて、要素のコピーが生成される。
【００２５】
なお、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して提供することができる。
【００２６】
また、画像処理装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。
【発明の効果】
【００２７】
本発明の一側面によれば、大量のコピーを、容易に行うことができる。
【発明を実施するための最良の形態】
【００２８】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。したがって、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２９】
本発明の一側面の画像処理装置、又は、プログラムは、
画像における所定の形状を有する物体の内部に、前記物体を構成する要素をコピーする画像処理装置（例えば、図１の画像処理装置）、又は、画像処理装置としてコンピュータを機能させるプログラムであり、
ユーザが前記画像に入力した複数の要素に基づいて、その複数の要素にフィットする場関数を求める場関数算出手段（例えば、図４の場関数算出部３２）と、
前記場関数に基づいて、要素のコピーを生成するコピー生成手段（例えば、コピーデータ生成部３３）と
を備える画像処理装置、又は、画像処理装置としてコンピュータを機能させるプログラムである。
【００３０】
前記場関数算出手段には、
各位置に対して、所定の等値面からの距離を与える場関数である位置場関数（例えば、位置場関数Fd(r)）、
各位置に対して、要素が向く方向を与える場関数である方向場関数（例えば、方向場関数Fo(r)）、
各位置に対して、要素のサイズを与える場関数であるサイズ場関数（例えば、サイズ場関数Fs(r)）、
又は、各位置に対して、その位置から最も近い要素の位置までの距離を、要素が存在する密度として、その密度を与える場関数である密度場関数（例えば、密度場関数Fg(r)）
のうちの１つ以上を求めさせることができる。
【００３１】
前記場関数算出手段には、
ユーザが前記画像に入力した複数の要素の位置に対する前記位置場関数の値それぞれの自乗の総和（例えば、式（３）の変数iについてのサメーションΣFd(di)2）を最小にする前記位置場関数、
ユーザが前記画像に入力した複数の要素が向いている方向それぞれと、その複数の要素の位置に対する前記方向場関数のグラディエントそれぞれとの自乗誤差の総和（例えば、式（４）の変数iについてのサメーションΣ||▽Fo(di)-oi||2）を最小にする前記方向場関数、
ユーザが前記画像に入力した複数の要素のサイズそれぞれと、その複数の要素の位置に対する前記サイズ場関数の値それぞれとの自乗誤差の総和（例えば、式（５）の変数iについてのサメーションΣ(Fs(di)-si)2）を最小にする前記サイズ場関数、
又は、ユーザが前記画像に入力した複数の要素についての密度それぞれと、その複数の要素の位置に対する前記密度場関数の値それぞれとの自乗誤差の総和（例えば、式（６）の変数iについてのサメーションΣ(Fg(di)-gi)2）を最小にする前記密度場関数
を求めさせることができる。
【００３２】
前記場関数算出手段が、各位置に対して、所定の等値面からの距離を与える場関数である位置場関数を求める場合、
前記コピー生成手段は、
ユーザが前記画像に入力した要素の位置から所定の距離以内の領域を、要素をコピーしない除外領域（例えば、図９の値が-∞の格子点の領域）に設定し（例えば、図１４のステップＳ５３）、
その後、
ユーザが前記画像に入力した複数の要素の位置に対する前記位置場関数の値に基づいて、等値面を設定するためのスカラー値を設定し（例えば、図１４のステップＳ５４）、
前記位置場関数が前記スカラー値となる等値面から所定の距離以内の領域を、等値面領域に設定し（例えば、図１４のステップＳ５５）、
前記等値面領域であって、前記除外領域でない領域の位置から、要素のコピーの位置であるコピー位置を決定し（例えば、図１４のステップＳ５８）、
前記コピー位置から所定の距離以内の領域を、前記除外領域に設定する（例えば、図１４のステップＳ６３）
ことを繰り返す
ことができる。
【００３３】
前記場関数算出手段が、さらに、各位置に対して、要素が向く方向を与える場関数である方向場関数を求める場合、
前記コピー生成手段は、前記コピー位置に対する前記方向場関数の値を用いて、要素のコピーの方向を決定する（例えば、図１４のステップＳ５９）
ことができる。
【００３４】
前記場関数算出手段が、さらに、各位置に対して、要素のサイズを与える場関数であるサイズ場関数を求める場合、
前記コピー生成手段は、前記コピー位置に対する前記サイズ場関数の値を用いて、要素のコピーのサイズを決定する（例えば、図１４のステップＳ６０）
ことができる。
【００３５】
前記場関数算出手段が、さらに、各位置に対して、その位置から最も近い要素の位置までの距離を、要素が存在する密度として、その密度を与える場関数である密度場関数を求める場合、
前記コピー生成手段は、
前記コピー位置に対する前記密度場関数の値を用いて、要素のコピーについての密度を決定し、
要素のコピーのコピー位置から、その要素のコピーについての密度を表す距離以内の領域を、前記除外領域に設定する（例えば、図１４のステップＳ６１）
ことができる。
【００３６】
本発明の一側面の画像処理方法は、
画像における所定の形状を有する物体の内部に、前記物体を構成する要素をコピーする画像処理装置の画像処理方法であり、
ユーザが前記画像に入力した複数の要素に基づいて、その複数の要素にフィットする場関数を求め（例えば、図１２のステップＳ１２）、
前記場関数に基づいて、要素のコピーを生成する（例えば、図１２のステップＳ１３）
ステップを含む。
【００３７】
以下、図面を参照して、本発明の実施の形態について説明する。
【００３８】
図１は、本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
【００３９】
図１において、画像処理装置は、操作部１１、描画用データ生成部１２、描画部１３、及び表示部１４から構成され、操作部１１の操作に従って、CGとしての画像を生成して表示する。
【００４０】
操作部１１は、CGを作成するデザイナ等のユーザによって操作され、その操作に対応した操作信号を、描画用データ生成部１２に供給する。
【００４１】
描画用データ生成部１２は、操作部１１からの操作信号に従って、CGの描画に用いられる描画用データを生成し、描画部１３に供給する。
【００４２】
描画部１３は、描画用データ生成部１２からの描画用データに従って描画（レンダリング）を行い、その結果得られる表示用のデータを、表示部１４に供給する。
【００４３】
表示部１４は、LCD(Liquid Crystal Display)等で供給され、描画部１３から供給される表示用のデータに従い、その表示用のデータに対応するCGを表示する。
【００４４】
次に、図１の描画用データ生成部１２について、さらに説明する。
【００４５】
描画用データ生成部１２は、ボリュームデータ生成部２１、データ記憶部２２、及び、例示コピー部２３から構成される。
【００４６】
ボリュームデータ生成部２１は、操作部１１からの操作信号に基づき、例えば、スケッチベースモデリングと呼ばれる方法で、CGのボリュームデータを生成し、データ記憶部２２に供給する。なお、ボリュームデータ生成部２１には、例示コピー部２３から、後述するコピーデータが供給されるようになっており、ボリュームデータ生成部２１は、例示コピー部２３からのコピーデータにも基づいて、ボリュームデータを生成する。
【００４７】
ここで、スケッチベースモデリングについては、例えば、大和田 茂、フランク・ニールセン、中沢 一雄、五十嵐 健夫、「スケッチベースボリュームモデリング」、[online],  [平成19年6月4日検索], インターネット〈URL：http://www-ui.is.s.u-tokyo.ac.jp/publications/papers/owada-GCAD-20030722.pdf〉に記載されている。
【００４８】
また、ボリュームデータは、観念的には、CT(Computed Tomography)等で得られる物体の３次元画像を構成する、断面の画像（２次元画像）のデータであり、いわば、”中身”（物体の内部のデータ）が存在する。したがって、３次元画像において、ボリュームデータで表される物体を切断すると、その切断面には、物体の中身が存在する。すなわち、例えば、ボリュームデータで表される球状のスイカを切断すると、その切断面には、スイカの果肉や種等の中身が存在する。
【００４９】
データ記憶部２２は、ボリュームデータ生成部２１からのボリュームデータを一時記憶し、そのボリュームデータを、描画用データとして、描画部１３に供給する。
【００５０】
また、データ記憶部２２は、ボリュームデータのうちの、一部のボリュームデータ、すなわち、例えば、後述する例示要素等のボリュームデータを、例示コピー部２３に供給する。
【００５１】
例示コピー部２３は、データ記憶部２２から供給されるボリュームデータに基づき、そのボリュームデータが表す形状等の要素のコピーを生成して、そのコピーのコピーデータを、ボリュームデータ生成部２１に供給する。
【００５２】
以上のように構成される画像処理装置では、例えば、ユーザが、所定の形状を有する物体を描画するように、操作部１１を操作すると、その操作に対応した操作信号が、描画用データ生成部１２に供給される。
【００５３】
描画用データ生成部１２では、ボリュームデータ生成部２１が、操作部１１からの操作信号に基づき、ボリュームデータを生成し、データ記憶部２２に供給して記憶させる。
【００５４】
データ記憶部２２に記憶されたボリュームデータは、描画用データとして、描画部１３に供給される。
【００５５】
描画部１３は、描画用データ生成部１２からの描画用データに従って描画を行い、その結果得られる表示用のデータを、表示部１４に供給する。表示部１４は、描画部１３からの表示用のデータに対応するCGを表示し、これにより、表示部１４では、ユーザによる操作部１１の操作に応じた、所定の形状を有する物体のCGが表示される。
【００５６】
その後、ユーザが、表示部１４に表示されたCGにおける所定の形状を有する物体の内部に、その内部を構成する要素を描画するように、操作部１１を操作すると、上述した場合と同様に、ボリュームデータ生成部２１において、操作部１１の操作に応じて、要素のボリュームデータが生成される。このボリュームデータは、データ記憶部２２、及び描画部１３を経由して、表示用のデータとされて、表示部１４に供給される。これにより、表示部１４では、ユーザが操作部１１を操作することによって描画した要素が反映されたCGが表示される。
【００５７】
さらに、ユーザが、コピーの位置や、向き、サイズ等を指定して、先に描画した要素をコピーするように、操作部１１を操作すると（以下、適宜、この操作を、コピー操作という）、ボリュームデータ生成部２１は、操作部１１の操作によって指定された位置にある、操作部１１の操作によって指定された向き及びサイズの要素（のコピー）のボリュームデータを生成する。このボリュームデータは、データ記憶部２２、及び描画部１３を経由して、表示用のデータとされて、表示部１４に供給される。これにより、表示部１４では、先に描画した要素の他に、その要素のコピーが反映されたCGが表示される。
【００５８】
そして、ユーザは、さらに、要素が必要である場合には、上述のコピー操作を繰り返す。ボリュームデータ生成部２１は、コピー操作が行われると、上述したように、要素のコピーのボリュームデータを生成し、これにより、表示部１４では、先に描画した要素と、その要素の複数のコピーが反映されたCGが表示される。
【００５９】
その後、ユーザが、例示コピーを行うように、操作部１１を操作すると、例示コピー部２３は、ユーザが描画を行うように操作部１１を操作することにより描画された要素と、操作部１１をコピー操作することにより描画された要素のコピーとを、コピーの例示となる例示要素として、データ記憶部２２に記憶されている例示要素のボリュームデータに基づき、要素のコピーを大量に生成する例示コピー処理を行い、その結果得られる要素の大量のコピーのコピーデータを、順次、ボリュームデータ生成部２１に供給する。
【００６０】
ボリュームデータ生成部２１は、例示コピー部２３からのコピーデータに基づいて、ボリュームデータを生成し、これにより、表示部１４では、要素の大量のコピーが反映されたCGが表示される。
【００６１】
図２及び図３は、図１の画像処理装置で生成（作成）されるCGの例を示している。
【００６２】
すなわち、図２は、半分に切断されたスイカのCGを示している。
【００６３】
図２左から１番目は、半分に切断されたスイカで、まだ、種が描画されていない状態のスイカを示している。
【００６４】
例えば、ユーザが、半球状のスイカを描画するように、操作部１１を操作すると、ボリュームデータ生成部２１（図１）において、半球状のスイカのボリュームデータが生成され、これにより、表示部１４では、図２左から１番目に示す半分に切断されたスイカのCGが表示される。
【００６５】
図２左から２番目は、図２左から１番目のスイカの断面に、幾つかの種が描画されたスイカのCGを示している。
【００６６】
例えば、ユーザが、図２左から１番目のスイカのCGを描画した後、そのスイカの内部としての、スイカの断面に、その断面を構成するスイカの要素である種を描画するように、操作部１１を操作すると、ボリュームデータ生成部２１（図１）において、種のボリュームデータが生成され、表示部１４では、その種が描画されたスイカのCGが表示される。
【００６７】
さらに、ユーザが、先に描画した種のコピーを要求するコピー操作を行うと、ボリュームデータ生成部２１では、種のコピーのボリュームデータが生成され、表示部１４では、先に描画した種の他に、その種のコピーが描画されたスイカのCGが表示される。
【００６８】
そして、ユーザが、コピー操作を繰り返すと、ボリュームデータ生成部２１では、種のコピーのボリュームデータが、コピー操作の回数だけ繰り返し生成され、表示部１４では、図２左から２番目に示すように、断面に幾つかの種のコピーが描画されたスイカのCGが表示される。
【００６９】
図２左から３番目は、図２左から２番目のCGを対象に、例示コピーを行うことによって得られるスイカのCGを示している。
【００７０】
ユーザが、例示コピーを行うように、操作部１１を操作すると、例示コピー部２３は、ユーザが描画を行うように操作部１１を操作することにより描画された種と、操作部１１をコピー操作することにより描画された種のコピーとを、コピーの例示となる例示要素として、種のコピーを大量に生成する例示コピー処理を行い、その結果得られる種の大量のコピーのコピーデータを、順次、ボリュームデータ生成部２１に供給する。
【００７１】
ボリュームデータ生成部２１は、例示コピー部２３からのコピーデータに基づいて、ボリュームデータを生成し、これにより、表示部１４では、図２左から３番目に示すように、種の大量のコピーが反映されたスイカのCGが表示される。
【００７２】
図３は、植物の一部分を拡大したCGを示している。
【００７３】
図３左から１番目は、植物の一部分を拡大したCGで、まだ、植物細胞が描画されていない状態を示している。
【００７４】
例えば、ユーザが、植物の一部としての直方体を描画するように、操作部１１を操作すると、ボリュームデータ生成部２１（図１）において、直方体のボリュームデータが生成され、これにより、表示部１４では、図３左から１番目に示す直方体のCGが表示される。
【００７５】
図３左から２番目は、図３左から１番目の直方体の内部に、幾つかの植物細胞が描画された状態のCGを示している。
【００７６】
例えば、ユーザが、図３左から１番目の直方体のCGを描画した後、その直方体の内部に、その内部を構成する要素である植物細胞を描画するように、操作部１１を操作すると、ボリュームデータ生成部２１（図１）において、植物細胞のボリュームデータが生成され、表示部１４では、その植物細胞が描画されたスイカのCGが表示される。
【００７７】
さらに、ユーザが、先に描画した植物細胞のコピーを要求するコピー操作を行うと、ボリュームデータ生成部２１では、植物細胞のコピーのボリュームデータが生成され、表示部１４では、先に描画した植物細胞の他に、その植物細胞のコピーが描画された直方体のCGが表示される。
【００７８】
そして、ユーザが、コピー操作を繰り返すと、ボリュームデータ生成部２１では、植物細胞のコピーのボリュームデータが、コピー操作の回数だけ繰り返し生成され、表示部１４では、図３左から２番目に示すように、内部に幾つかの植物細胞のコピーが描画された直方体のCGが表示される。
【００７９】
図３左から３番目は、図３左から２番目のCGを対象に、例示コピーを行うことによって得られるCGを示している。
【００８０】
ユーザが、例示コピーを行うように、操作部１１を操作すると、例示コピー部２３は、ユーザが描画を行うように操作部１１を操作することにより描画された植物細胞と、操作部１１をコピー操作することにより描画された植物細胞のコピーとを、コピーの例示となる例示要素として、植物細胞のコピーを例示に生成する例示コピー処理を行い、その結果得られる植物細胞の大量のコピーのコピーデータを、順次、ボリュームデータ生成部２１に供給する。
【００８１】
ボリュームデータ生成部２１は、例示コピー部２３からのコピーデータに基づいて、ボリュームデータを生成し、これにより、表示部１４では、図３左から３番目に示すように、植物細胞の大量のコピーが反映された直方体のCGが表示される。
【００８２】
以上のように、例示コピー処理によれば、ユーザが入力した要素を例示として、いわば、ユーザの意図を反映したコピーが大量に生成される。
【００８３】
次に、図４は、例示コピーを行う図１の例示コピー部２３の構成例を示している。
【００８４】
図４において、例示コピー部２３は、データ供給部３１、場関数算出部３２、及びコピーデータ生成部３３から構成される。
【００８５】
データ供給部３１は、データ記憶部２２（図１）に記憶されたボリュームデータから、例示データと、ガイド形状データとを得て、場関数算出部３２、及びコピーデータ生成部３３に供給する。
【００８６】
ここで、例示データとは、例示要素に関するデータであり、ガイド形状データとは、ガイド形状に関するデータである。ガイド形状とは、例示コピー処理において、コピーの対象となる要素を有する物体の形状である。
【００８７】
すなわち、例示コピーでは、例えば、図２に示した半球状のスイカや、図３に示した直方体状の植物の一部等の物体の内部に、その物体を構成する要素の多数のコピーが行われる。このように、例示コピーでは、物体の内部に、その物体を構成する要素がコピーされるため、コピーの対象となる要素を有する物体の存在を前提とする。ガイド形状とは、コピーの対象となる要素を有する（有すべき）物体の形状であり、例えば、図２のスイカのCGについては、スイカの半球状の形状がガイド形状であり、図３の植物の一部のCGについては、植物の一部としての直方体がガイド形状である。
【００８８】
なお、ガイド形状を有する物体のCG（画像）を、以下、適宜、ガイド物体CGという。
【００８９】
場関数算出部３２は、データ供給部３１から供給される、ユーザがガイド物体CGに入力した複数の例示要素、すなわち、ユーザが描画を行うように操作部１１を操作することにより描画された要素、及び、ユーザが操作部１１をコピー操作することで描画された要素の例示データと、ガイド形状データとに基づいて、ユーザが入力した複数の例示要素にフィットする場関数を求める場関数算出処理を行い、その結果得られる場関数（を定めるパラメータ）を、コピーデータ生成部３３に供給する。
【００９０】
コピーデータ生成部３３は、場関数算出部３２からの場関数に基づき、データ供給部３１からの例示データとガイド形状データとを用いて、要素（例示要素）のコピーを（多数）生成する大量コピー処理を行い、そのコピーに関するコピーデータを、ボリュームデータ生成部２１（図１）に供給する。
【００９１】
次に、場関数算出部３２による場関数算出処理について、さらに説明する。
【００９２】
ここで、場関数算出処理では、上述したように、ユーザが入力した複数の例示要素にフィットする場関数を求めるが、その場関数を求めるのに用いられる複数の例示要素の形状は、同一の形状（ここでいう同一の形状とは、相似の形状も含む）になっている。
【００９３】
すなわち、ここでは、上述したように、複数の例示要素のうちの１つの例示要素は、ユーザが描画を行うように操作部１１を操作することにより描画された要素であり、残りの例示要素は、その要素のコピーであるので、複数の例示要素は、すべて、同一の形状を有する。
【００９４】
また、場関数算出処理で求められる場関数が引数とする空間的な位置は、あらかじめ決められた３次元座標系（以下、適宜、基準座標系という）上の位置であり、３次元ベクトルr＝（rx,ry,rz）で表されることとする。この場合、空間的なパラメータの分布を与える関数である場関数は、３次元ベクトルrで表される基準座標系（３次元空間）上の各位置におけるパラメータの値を関数値として出力する。
【００９５】
さらに、例示要素に関するデータである例示データは、例えば、４つのパラメータである位置データ、方向データ、サイズデータ、及び密度データからなることとする。
【００９６】
また、複数の例示要素のうちのi番目の例示要素の例示データとしての位置データ、方向データ、サイズデータ、及び密度データを、それぞれ、di，oi，si、及びgiと表すこととする
【００９７】
なお、位置データdi（以下、位置diともいう）は、３次元ベクトルで、基準座標系におけるi番目の例示要素の形状の中心位置（重心）の座標を表す。
【００９８】
方向データoi（以下、方向oiともいう）は、３次元ベクトルで、基準座標系において、i番目の例示要素が向いている方向を表す。要素の方向（要素が向いている方向（要素が向く方向））としては、例えば、要素の形状を主成分分析して得られる主成分の方向を採用することとする。
【００９９】
サイズデータsi（以下、サイズsiともいう）は、スカラー値で、基準座標系におけるi番目の例示要素のサイズ（例えば、例示要素を囲む最小の立方体の対角線の長さ等）を表す。
【０１００】
密度データgi（以下、密度gi、又は密度距離giともいう）は、スカラー値で、基準座標系におけるi番目の例示要素の位置において、要素が存在する密度（形状密度）を表す。なお、ここでは、例えば、i番目の例示要素の位置から最も近い他の要素の位置までの距離が、そのi番目の例示要素の位置の密度を近似することとして、その距離を、密度データgiとして採用する。この、密度データgiが表す、密度を近似する距離を、以下、適宜、密度距離という。
【０１０１】
場関数算出部３２は、データ供給部３１からのガイド形状データ、並びに、複数の例示要素の例示データとしての位置di、方向oi、サイズsi、及び密度giを用い、その複数の例示要素にフィットする場関数として、例えば、位置場関数Fd(r)、方向場関数Fo(r)、サイズ場関数Fs(r)、及び密度場関数Fg(r)の４つの場関数を求める。
【０１０２】
ここで、位置場関数Fd(r)は、基準座標系上の各位置（３次元ベクトル）rに対して、所定の等値面からの距離を与える場関数であり、方向場関数Fo(r)は、基準座標系上の各位置rに対して、要素の方向（要素が向く方向）を与える場関数である。
【０１０３】
また、サイズ場関数Fs(r)は、基準座標系上の各位置rに対して、要素のサイズを与える場関数であり、密度場関数Fg(r)は、基準座標系上の各位置rに対して、要素の密度距離を与える場関数である。
【０１０４】
なお、場関数である位置場関数Fd(r)、方向場関数Fo(r)、サイズ場関数Fs(r)、及び密度場関数Fg(r)は、いずれも、基準座標系上の位置（点）のすべてに、スカラー値を割り当てる関数(R3→R)である。
【０１０５】
ここで、場関数の例としては、例えば、重力ポテンシャルがある。すなわち、重力ポテンシャルは、重力に対する位置エネルギであり、３次元空間内の各点にスカラー値を与えるから、場関数である。
【０１０６】
いま、位置場関数Fd(r)、方向場関数Fo(r)、サイズ場関数Fs(r)、及び密度場関数Fg(r)を、まとめて、場関数F*(r)と表すこととすると、場関数算出部３２は、場関数F*(r)として、例えば、式（１）で表される場関数を採用する。
【０１０７】
【数１】
2008305123.tif 000003
・・・（１）
【０１０８】
なお、式（１）において、下付のサフィックス*は、d，o，s、及びgのうちのいずれかである。
【０１０９】
また、式（１）において、パラメータα*及びβ*は、場関数F*(r)を定めるパラメータであり、スカラー値をとる。
【０１１０】
さらに、式（１）において、D(r)は、ガイド形状を有する物体（以下、適宜、ガイド物体という）の距離関数(Distance field)であり、基準座標系上の各位置rに対して、その位置rと、ガイド物体の表面との間の最小の距離を返す場関数である。距離関数D(r)は、ガイド物体の形状（ガイド形状）によって一意に定まり、場関数算出部３２によって、データ供給部３１からのガイド形状データから求められる。
【０１１１】
また、式（１）において、φ(r,p*)は、パラメータセット（パラメータのセット）p*によって定められる近似関数と呼ばれる線形関数であり、例えば、式（２）で表される。
【０１１２】
【数２】
2008305123.tif 000004
・・・（２）
【０１１３】
ここで、式（２）において、p*x，p*y，p*z、及びp*wは、パラメータセットp*を構成するパラメータであり、rx，ry、及びrzは、位置（３次元ベクトル）rのx座標、y座標、及びz座標を、それぞれ表す。
【０１１４】
なお、式（２）の近似関数φ(r,p*)は、基準座標系上の平面を表す。
【０１１５】
場関数算出部３２は、データ供給部３１からの複数の例示要素の例示データ（位置di、方向oi、サイズsi、及び密度gi）を用い、その複数の例示データにフィットする場関数F*(r)を定めるパラメータα*及びβ*、並びに、パラメータセットp*を求める。
【０１１６】
ここで、パラメータα*及びβ*、並びに、パラメータセットp*を、まとめて、パラメータセットP*と呼ぶこととすると、場関数算出部３２は、例えば、最小自乗法に基づく式（３）ないし式（６）の最適化式に従い、複数の例示データにフィットする場関数F*(r)を定めるパラメータセットP*（パラメータα*及びβ*、並びに、パラメータセットp*）を求める。
【０１１７】
【数３】
2008305123.tif 000005
・・・（３）
【０１１８】
【数４】
2008305123.tif 000006
・・・（４）
【０１１９】
【数５】
2008305123.tif 000007
・・・（５）
【０１２０】
【数６】
2008305123.tif 000008
・・・（６）
【０１２１】
ここで、式（３）ないし式（６）のargmin()は、かっこ内の最小値をとることを意味する。
【０１２２】
いま、ユーザが入力した例示要素の総数がN個であるとすると、式（３）の最適化式によれば、N個の例示要素の位置d1,d2,・・・,dNに対する位置場関数Fd(r)の値Fd(d1),Fd(d2),・・・,Fd(dN)それぞれの自乗の総和ΣFd(di)2=Fd(d1)2+Fd(d2)2+・・・+Fd(dN)2を最小にする位置場関数Fd(r)を定めるパラメータセットPdが求められる。
【０１２３】
すなわち、式（３）によれば、位置場関数Fd(r)が、例示要素の位置diで評価され、その評価値としての位置場関数の値Fd(di)の自乗の総和ΣFd(di)2を最小にするパラメータセットPdが求められる。つまり、場関数の値（関数値）が、ある値λになる点で構成される面を、等値面ということとすると、式（３）によれば、式Fd(r)=0で表される等値面（値が0の等値面）が、N個の例示要素の位置diになるべく近くなる（フィットする）ように、位置場関数Fd(r)のパラメータセットPdが求められる。
【０１２４】
式（４）の最適化式によれば、関数のグラディエントを▽で表すこととすると、N個の例示要素の方向o1,o2,・・・,oNそれぞれと、そのN個の例示要素の位置d1,d2,・・・,dNに対する方向場関数Fo(r)のグラディエント▽Fo(d1),▽Fo(d2),・・・,▽Fo(dN)それぞれとの自乗誤差の総和Σ||▽Fo(di)-oi||2=||▽Fo(d1)-o1||2+||▽Fo(d2)-o2||2+・・・+||▽Fo(dN)-oN||2を最小にする方向場関数Fo(r)を定めるパラメータセットPoが求められる。
【０１２５】
すなわち、式（４）によれば、方向場関数Fo(r)のグラディエントの向きが、N個の例示要素の方向oiとなるべく一致する（フィットする）ように、方向場関数Fo(r)のパラメータセットPoが求められる。なお、方向場関数Fo(r)のグラディエントは、方向場関数Fo(r)を位置rで微分することにより求められるが、方向場関数Fo(r)を位置rで微分すると、式（１）右辺のパラメータαo(α*)と、式（１）右辺の近似関数φ(r,po)（式（２））におけるパラメータpow(p*w)は消去されるので、パラメータαo、及びpowは、0とされる。
【０１２６】
式（５）の最適化式によれば、N個の例示要素のサイズs1,s2,・・・,sNそれぞれと、そのN個の例示要素の位置d1,d2,・・・,dNに対するサイズ場関数Fs(r)の値Fs(d1),Fs(d2),・・・,Fs(dN)それぞれとの自乗誤差の総和Σ(Fs(di)-si)2=(Fs(d1)-s1)2+(Fs(d2)-s2)2+・・・+(Fs(dN)-sN)2を最小にするサイズ場関数Fs(r)を定めるパラメータセットPsが求められる。
【０１２７】
すなわち、式（５）によれば、サイズ場関数Fs(r)の値が、N個の例示要素のサイズsiとなるべく一致するように、サイズ場関数Fs(r)のパラメータセットPsが求められる。
【０１２８】
式（６）の最適化式によれば、N個の例示要素の密度距離g1,g2,・・・,gNそれぞれと、そのN個の例示要素の位置d1,d2,・・・,dNに対する密度場関数Fg(r)の値Fg(d1),Fg(d2),・・・,Fg(dN)それぞれとの自乗誤差の総和Σ(Fg(di)-gi)2=(Fg(d1)-g1)2+(Fg(d2)-g2)2+・・・+(Fg(dN)-gN)2を最小にする密度場関数Fg(r)を定めるパラメータセットPgが求められる。
【０１２９】
すなわち、式（６）によれば、密度場関数Fg(r)の値が、N個の例示要素の密度距離giとなるべく一致するように、密度場関数Fg(r)のパラメータセットPgが求められる。
【０１３０】
なお、場関数算出部３２は、式（３）ないし式（６）に従って、場関数F*(r)（のパラメータセットP*）を求めた後、式（１）右辺の式α*+β*D(r)、又は近似関数φ(r,p*)のうちの、例示要素によりフィット（マッチ）する方を、例示コピーに用いる場関数F*(r)として選択して、コピーデータ生成部３３に供給する。
【０１３１】
すなわち、場関数算出部３２は、位置場関数Fd(r)については、例えば、式αd+βdD(r)、又は近似関数φ(r,pd)のうちの、例示要素の位置diに対する位置場関数Fd(di)の値と、値が0の等値面との誤差、つまり、位置場関数Fd(di)の値の、N個の例示要素についての分散が小さい方を、例示コピーに用いる位置場関数Fd(r)として選択する。
【０１３２】
また、場関数算出部３２は、方向場関数Fo(r)については、例えば、式αo+βoD(r)、又は近似関数φ(r,po)のうちの、例示要素の位置diに対する方向場関数Fo(di)のグラディエント▽Fo(di)と、例示要素の方向oiとの誤差の、N個の例示要素についての分散が小さい方を、例示コピーに用いる方向場関数Fo(r)として選択する。
【０１３３】
さらに、場関数算出部３２は、サイズ場関数Fs(r)については、例えば、式αs+βsD(r)、又は近似関数φ(r,ps)のうちの、例示要素の位置diに対するサイズ場関数Fs(di)の値と、例示要素のサイズsiとの誤差の、N個の例示要素についての分散が小さい方を、例示コピーに用いるサイズ場関数Fs(r)として選択する。
【０１３４】
同様に、場関数算出部３２は、密度場関数Fg(r)については、例えば、式αg+βgD(r)、又は近似関数φ(r,pg)のうちの、例示要素の位置diに対する密度場関数Fg(di)の値と、例示要素の密度距離（密度）giとの誤差の、N個の例示要素についての分散が小さい方を、例示コピーに用いる密度場関数Fg(r)として選択する。
【０１３５】
なお、場関数算出部３２において、式（１）右辺の式α*+β*D(r)、又は近似関数φ(r,p*)のうちの、式α*+β*D(r)が、場関数F*(r)として選択される場合には、場関数F*(r)の値（等値面）が、距離関数D(r)が表すガイド形状（の骨格）に沿うこととなる。一方、場関数算出部３２において、式（１）右辺の式α*+β*D(r)、又は近似関数φ(r,p*)のうちの、近似関数（線形関数）φ(r,p*)が、場関数F*(r)として選択される場合には、場関数F*(r)の値（等値面）が、ガイド形状に無関係に、線形に分布することになる。
【０１３６】
ここで、例えば、上述の図２左から２番目に示したように、例示要素としての種が、スイカの、ほぼ楕円形の断面に、その楕円形に沿うように配置された場合には、式α*+β*D(r)が、場関数F*(r)として選択され、その結果、例示コピー処理では、図２左から３番目に示したように、例示要素としての種のコピーが、スイカの、ほぼ楕円形の断面に、その楕円形に沿って配置される。
【０１３７】
一方、例えば、図３左から２番目に示したように、例示要素としての植物細胞が、植物の一部としての直方体の内部に、単に、一列に並ぶように配置された場合には、近似関数φ(r,pg)が、場関数F*(r)として選択され、その結果、例示コピー処理では、図３左から３番目に示したように、例示要素としての植物細胞のコピーが、（直方体の形状とは無関係に）、例示要素としての植物細胞と一体となって列を形成するように配置される。
【０１３８】
なお、場関数算出部３２において、式（１）右辺の式α*+β*D(r)、又は近似関数φ(r,p*)のうちのいずれが、例示コピーに用いる場関数F*(r)として選択されるにしても、式α*+β*D(r)、及び近似関数φ(r,p*)は、いずれも、パラメータセットP*に対して線形の式であるから、場関数F*(r)の自乗をとる式（３）ないし式（６）の最適化式は、パラメータセットP*の自乗（２乗）のオーダの式となる。そして、２次関数の最小化は線形式の求解問題に帰着できるので、効率的に計算することができる。
【０１３９】
ここで、N個の例示要素の位置d1,d2,・・・,dNが、すべて、１つの平面上に存在する場合、そのN個の位置diに対する近似関数φ(di,pd)の値がすべて0となる近似関数φ(r,pd)が求められ、例示コピーに用いる位置場関数Fd(r)として選択されることになるが、N個の例示要素の位置diすべてに対する近似関数φ(di,pd)の値がすべて0となる近似関数φ(r,pd)を、例示コピーに用いる位置場関数Fd(r)とすると、例示コピーの実用上、不都合があることがある。
【０１４０】
そこで、N個の例示要素の位置diすべてが、１つの平面上に存在する場合、すなわち、N個の例示要素の位置diすべてに対する近似関数φ(di,pd)の値がすべて0となる場合には、場関数算出部３２では、N個の例示要素の位置diすべてに対する近似関数φ(di,pd)の値がすべて0となる近似関数φ(r,pd)（式（２））のパラメータpdx，pdy、及びpdzを、例えば、N個の例示要素の位置diすべてが存在する平面の法線ベクトルと、N個の例示要素の位置diの主成分の方向を表すベクトルとの外積をとることによって得られるベクトル（外積ベクトル）のx成分、y成分、及びz成分に、それぞれ代えて得られる近似関数φ(r,pd)を、例示コピーに用いる位置場関数Fd(r)とすることができる。
【０１４１】
次に、コピーデータ生成部３３による大量コピー処理について、さらに説明する。
【０１４２】
大量コピー処理では、場関数算出部３２からの場関数に基づいて、要素（例示要素）のコピーが多数生成される。
【０１４３】
すなわち、大雑把には、例示要素、及び、大量コピー処理において既に得られている例示要素のコピーの位置d'から、密度場関数Fg(d')の値（密度距離）程度だけ離れた位置であって、距離場関数Fd(r)の値が0の等値面に近い位置を、新たなコピーの位置λdとして、その位置λdに、方向が、ほぼ、位置λdに対する方向場関数Fo(λd)のグラディエント▽Fo(λd)で表され、サイズが、ほぼ、位置λdに対するサイズ場関数Fs(λd)の値で表される要素のコピーが生成される。
【０１４４】
具体的には、コピーデータ生成部３３は、データ供給部３１からのガイド形状データに基づき、ガイド物体を認識し、そのガイド物体を囲む直方体（例えば、ガイド物体を囲む最小の直方体）を設定して、その直方体を、等間隔に、格子状に区切る。
【０１４５】
なお、ガイド物体を囲む直方体を、以下、適宜、バウンダリボックスという。ガイド物体のCG（ガイド物体CG）が２次元のCGである場合には、バウンダリボックスは、長方形となる。
【０１４６】
また、バウンダリボックスを格子状に区切って得られる格子点どうしの間隔は、ガイド物体CGの画素どうしの間隔等に相当するようにすることができる。
【０１４７】
ここで、図５は、格子状に区切られたバウンダリボックスを示している。
【０１４８】
コピーデータ生成部３３は、バウンダリボックスを格子状に区切った後、そのバウンダリボックスの格子点（図５において、正方形で囲んで示す）に対して、整数値を記憶するメモリの記憶領域を割り当てる。
【０１４９】
ここで、図５では（後述する図６ないし図１１も同様）、図が煩雑になるのを避けるため、バウンダリボックスを２次元で図示してある。
【０１５０】
コピーデータ生成部３３は、さらに、バウンダリボックスの格子点（に割り当てた記憶領域）の値を、例えば、0に初期化する。
【０１５１】
ここで、図６は、格子点が0に初期化された状態のバウンダリボックスを示している。
【０１５２】
その後、コピーデータ生成部３３は、データ供給部３１から例示データ（位置di、方向oi、サイズsi、及び密度gi）が供給されたN個の例示要素のうちの、i番目の例示要素#iを注目要素として注目し、その注目要素の位置diからの距離が、注目要素の密度距離giから所定のマージンdgを減算した値gi-dgから、注目要素の密度距離giに所定のマージンdgを加算した値gi+dgまでの領域（以下、適宜、加算領域という）内にある格子点の値を、1だけインクリメントする。
【０１５３】
すなわち、加算領域内にある格子点は、ほぼ、中心を、注目要素の位置diとするとともに、半径を、注目要素の密度距離giとする球の表面（円の円周）を形成するが、そのような格子点の値が、１だけインクリメントされる。
【０１５４】
ここで、所定のマージンdgとしては、例えば、格子点の間隔の２倍程度の値を採用することができる。
【０１５５】
コピーデータ生成部３３は、注目要素についての加算領域内にある格子点の値をインクリメントした後、その加算領域の内周側の領域、つまり、注目要素の位置diからの距離が、注目要素の密度距離giから所定のマージンdgを減算した値gi-dgより小さい（以内の）領域を、コピーを配置しない領域（以下、適宜、除外領域という）として、除外領域内の格子点の値を、-∞（に相当する値）にセットする。
【０１５６】
なお、-∞がセットされた格子点の値は、その後、（インクリメントされても）変化しない。
【０１５７】
コピーデータ生成部３３は、データ供給部３１から例示データが供給されたN個の例示要素のすべてを、注目要素として、その注目要素についての加算領域内にある格子点の値を１だけインクリメントするとともに、注目要素についての除外領域内にある格子点の値を、-∞にセットする。
【０１５８】
ここで、図７は、N個の例示要素の例を示している。
【０１５９】
図７では、N個の例示要素として、３個の例示要素#1，#2、及び#3が存在する。
【０１６０】
図８は、図７の３個の例示要素#1ないし#3のうちの、１番目の例示要素#1が注目要素とされた場合の、その注目要素についての加算領域を示している。
【０１６１】
いま、例えば、注目要素である例示要素#1に最も近い例示要素が、３番目の例示要素#3であったとすると、注目要素である例示要素#1の密度距離g1は、例示要素#1の位置d1（図示せず）と例示要素#3の位置d3（図示せず）との間の距離となる。
【０１６２】
そして、例示要素#1の位置d1を中心とし、例示要素#1の密度距離g1を半径とする球の表面（円の円周）から、マージンdg以内の領域が、例示要素#1についての加算領域になる。
【０１６３】
また、例示要素#1の位置d1を中心とし、例示要素#1の密度距離g1からマージンdgを減算した値g1-dgを半径とする球の内部の領域が、例示要素#1についての除外領域となる。
【０１６４】
図９は、例示要素#1を注目要素として、その注目要素についての加算領域内にある格子点の値を１だけインクリメントするとともに、注目要素についての除外領域内にある格子点の値を、-∞にセットした結果を示している。
【０１６５】
いま、例示要素#iについての加算領域と除外領域を、それぞれ、加算領域#iと除外領域#iと表すこととすると、注目要素としての例示要素#1についての加算領域#1内の格子点の値は、１だけインクリメントされた結果、1となる。また、注目要素としての例示要素#1についての除外領域#1内の格子点の値は、-∞がセットされた結果、-∞となり、その後変化しない。
【０１６６】
図１０は、例示要素#1を注目要素とした後、例示要素#2を注目要素とし、その注目要素についての加算領域#2内にある格子点の値を１だけインクリメントするとともに、注目要素についての除外領域#2内にある格子点の値を、-∞にセットした結果を示している。
【０１６７】
なお、図１０では、例示要素#2に最も近い例示要素が、例示要素#3になっており、したがって、例示要素#2の位置d2と、例示要素#3の位置d3との間の距離が、注目要素となっている例示要素#の密度g2となる。
【０１６８】
図１０では、注目要素としての例示要素#2についての加算領域#2内の格子点の値が１だけインクリメントされた結果、加算領域#2内の格子点でもあり、加算領域#1内の格子点でもある格子点の値は、2となっており、加算領域#2内の格子点であるが、加算領域#1内の格子点ではない格子点の値は、1となっている。
【０１６９】
また、図１０では、注目要素としての例示要素#2についての除外領域#2内の格子点の値は、-∞がセットされた結果、例示要素#1についての除外領域#1内の格子点と同様に、-∞となっており、その後変化しない。
【０１７０】
コピーデータ生成部３３は、以上のようにして、データ供給部３１から例示データが供給されたN個の例示要素のすべてを、注目要素として、その注目要素についての加算領域内にある格子点の値を１だけインクリメントするとともに、注目要素についての除外領域内にある格子点の値を、-∞にセットすると、値が1以上の格子点を、要素（例示要素）のコピーの位置の候補として、その候補の中から、要素のコピーの位置λdを決定し、その位置λdに、方向が、ほぼ、方向場関数Fo(λd)のグラディエント▽Fo(λd)で表され、サイズが、ほぼ、サイズ場関数Fs(λd)で表される要素のコピーを生成することを繰り返す。
【０１７１】
すなわち、コピーデータ生成部３３は、まず、（要素の）コピーの位置を決定するためのスカラー値λFを決定する。
【０１７２】
具体的には、コピーデータ生成部３３は、例えば、N個の例示要素の位置diに対する位置場関数Fd(di)の値の中から、ランダムに１つの値を選択し（サフィックスi(i=1,2,・・・,N)をランダムに選択し、そのサフィックスiの位置diに対する位置場関数Fd(di)の値を選択し）、その値を、スカラー値λFに決定する。
【０１７３】
あるいは、コピーデータ生成部３３は、N個の例示要素の位置diに対する位置場関数Fd(di)の値の頻度を近似する正規分布を求め、その正規分布を、位置場関数Fd(r)の値を確率変数とする確率密度関数として、その確率密度関数に従う乱数を発生し、その乱数の値を、スカラー値λFに決定する。
【０１７４】
その後、コピーデータ生成部３３は、位置場関数Fd(r)の値がスカラー値λFとなる等値面（値λFの等値面）からの距離が、例えば、マージンdg以内の領域を、等値面領域として、その等値面領域内の格子点のうちの、値が1以上の格子点を、コピーの位置の候補として選択する。
【０１７５】
ここで、図１１は、等値面領域の例を示している。
【０１７６】
コピーデータ生成部３３は、値λFの等値面からの距離が、マージンdg以内の領域を、等値面領域として、その等値面領域内の、値が1以上の格子点を、コピーの位置の候補として選択する。
【０１７７】
なお、等値面領域内に、値が1以上の格子点が存在しない場合、大量コピー処理は終了する。
【０１７８】
コピーデータ生成部３３は、等値面領域内の、値が1以上の格子点を、コピーの位置の候補（以下、適宜、候補格子点という）として選択した後、その候補格子点のうちの１つをランダムに選択し、その候補格子点（の位置）を、コピーの位置λdに決定する。
【０１７９】
ここで、コピーデータ生成部３３は、候補格子点からコピーの位置λdを選択するときに、候補格子点に対して、その候補格子点の値に比例する確率を与え、その確率に従って、ランダムに、１つの候補格子点を選択する。
【０１８０】
したがって、例えば、値が「10」の格子点と、値が「5」の格子点とが、候補格子点となった場合には、値が「10」の候補格子点は、値が「5」の候補格子点よりも、２倍の確率で選択されやすい。
【０１８１】
コピーデータ生成部３３は、以上のようにして、コピーの位置λdを決定した後は、そのコピーの方向とサイズを、場関数算出部３２からの方向場関数Fo(r)とサイズ場関数Fs(r)を用いて、それぞれ決定する。
【０１８２】
すなわち、コピーデータ生成部３３は、コピーの位置λdに対する方向場関数Fo(λd)のグラディエント▽Fo(λd)を、コピーの方向（向き）λoに決定するとともに、コピーの位置λdに対するサイズ場関数Fs(λd)の値を、コピーのサイズλsに決定する。
【０１８３】
さらに、コピーデータ生成部３３は、ユーザが入力した例示要素のばらつきを、コピーに反映させるために、必要に応じて、コピーの方向λoとサイズλsを修正する。
【０１８４】
すなわち、コピーデータ生成部３３は、N個の例示要素#iそれぞれについて、例示要素#iの方向oiと、例示要素#iの位置diに対する方向場関数Fo(di)のグラディエント▽Fo(di)とがなす角度θi（≧0）を求める。
【０１８５】
さらに、コピーデータ生成部３３は、例えば、N個の例示要素#iそれぞれについて求めた角度θiの中から、ランダムに１つの角度を選択し（サフィックスi(i=1,2,・・・,N)をランダムに選択し、そのサフィックスiに対する角度θiを選択し）、その角度を、コピーの方向λoを修正するのに用いる修正角度θ'に決定する。
【０１８６】
あるいは、コピーデータ生成部３３は、N個の例示要素#iそれぞれについて求めた角度θiの頻度を近似する正規分布を求め、その正規分布を、角度θiを確率変数とする確率密度関数として、その確率密度関数に従う乱数を発生し、その乱数の値を、修正角度θ'に決定する。
【０１８７】
そして、コピーデータ生成部３３は、ランダムな回転方向を選択し、その回転方向に、コピーの方向λoを、修正角度θ'だけ回転することにより修正する。
【０１８８】
また、コピーデータ生成部３３は、N個の例示要素#iそれぞれについて、例示要素#iのサイズsiと、例示要素#iの位置diに対するサイズ場関数Fs(di)の値との誤差Si=Fs(di)-siを求める。
【０１８９】
さらに、コピーデータ生成部３３は、例えば、N個の例示要素#iそれぞれについて求めた誤差Siの中から、ランダムに１つの誤差を選択し（サフィックスi(i=1,2,・・・,N)をランダムに選択し、そのサフィックスiに対する誤差Siを選択し）、その誤差を、コピーのサイズλsを修正するのに用いる修正サイズS'に決定する。
【０１９０】
あるいは、コピーデータ生成部３３は、N個の例示要素#iそれぞれについて求めた誤差Siの頻度を近似する正規分布を求め、その正規分布を、誤差Siを確率変数とする確率密度関数として、その確率密度関数に従う乱数を発生し、その乱数の値を、修正サイズS'に決定する。
【０１９１】
そして、コピーデータ生成部３３は、コピーのサイズλsに、修正サイズS'を加算することにより、コピーのサイズλsを修正する。
【０１９２】
以上のようにして、コピーデータ生成部３３は、コピーの位置λd、方向λo、及びサイズλsを得ると、その位置λd、方向λo、及びサイズλsを、コピーデータとして、ボリュームデータ生成部２１（図１）に供給する。
【０１９３】
ここで、上述したように、ボリュームデータ生成部２１では、例示コピー部２３（のコピーデータ生成部３３）からのコピーデータに基づいて、ボリュームデータが生成され、これにより、表示部１４では、λdが表す位置に、λoが表す方向を向いた、λsが表すサイズの例示要素のコピーが表示される。
【０１９４】
コピーデータ生成部３３は、コピーの位置λd、方向λo、及びサイズλsを得た後、さらに、場関数算出部３２からの密度場関数Fg(r)を用いて、コピーの密度（密度距離）を求める。
【０１９５】
すなわち、コピーデータ生成部３３は、コピーの位置λdに対する密度場関数Fg(λd)の値を、コピーの密度λgに決定する。
【０１９６】
さらに、コピーデータ生成部３３は、ユーザが入力した例示要素のばらつきを、コピーに反映させるために、必要に応じて、コピーの密度λgを修正する。
【０１９７】
すなわち、コピーデータ生成部３３は、N個の例示要素#iそれぞれについて、例示要素#iの密度giと、例示要素#iの位置diに対する密度場関数Fg(di)の値との誤差Gi=Fg(di)-giを求める。
【０１９８】
さらに、コピーデータ生成部３３は、例えば、N個の例示要素#iそれぞれについて求めた誤差Giの中から、ランダムに１つの誤差を選択し（サフィックスi(i=1,2,・・・,N)をランダムに選択し、そのサフィックスiに対する誤差Giを選択し）、その誤差を、コピーの密度λgを修正するのに用いる修正密度G'に決定する。
【０１９９】
あるいは、コピーデータ生成部３３は、N個の例示要素#iそれぞれについて求めた誤差Giの頻度を近似する正規分布を求め、その正規分布を、誤差Giを確率変数とする確率密度関数として、その確率密度関数に従う乱数を発生し、その乱数の値を、修正密度G'に決定する。
【０２００】
そして、コピーデータ生成部３３は、コピーの密度λgに、修正密度G'を加算することにより、コピーの密度λgを修正する。
【０２０１】
その後、コピーデータ生成部３３は、コピーの位置λdからの距離が、コピーの密度（密度距離）λgから所定のマージンdgを減算した値gi-dgから、コピーの密度距離λgに所定のマージンdgを加算した値gi+dgまでの領域を加算領域として、その加算領域内にある格子点の値を、1だけインクリメントする。
【０２０２】
さらに、コピーデータ生成部３３は、コピーの加算領域の内周側の領域を除外領域として、その除外領域内の格子点の値を、-∞にセットする。
【０２０３】
そして、コピーデータ生成部３３は、新たなコピーの位置を決定するためのスカラー値λFを、上述した場合と同様に決定し、以下、そのスカラー値λFの等値面からの距離がマージンdg以内の領域である等値面領域（図１１）内に、値が1以上の格子点が存在しなくなるまで、同様の処理を繰り返す。
【０２０４】
次に、図１２のフローチャートを参照して、図４の例示コピー部２３で行われる例示コピー処理について、さらに説明する。
【０２０５】
なお、既に、ガイド物体、及び複数であるN個の例示要素の描画が行われ、データ記憶部２２（図１）には、ガイド物体（ガイド形状）、及びN個の例示要素のボリュームデータが記憶されていることとする。
【０２０６】
ユーザが、例示コピーを行うように、操作部１１を操作すると、データ供給部３１は、ステップＳ１１において、データ記憶部２２（図１）に記憶されたボリュームデータから、N個の例示要素の例示データと、ガイド形状データとを得て、場関数算出部３２、及びコピーデータ生成部３３に供給し、処理は、ステップＳ１２に進む。
【０２０７】
ステップＳ１２では、場関数算出部３２が、データ供給部３１からのN個の例示要素の例示データ、及びガイド形状データを用いて、N個の例示要素にフィットする場関数を求める場関数算出処理を行い、その結果得られる位置場関数Fd(r)、方向場関数Fo(r)、サイズ場関数Fs(r)、及び密度場関数Fg(r)を、コピーデータ生成部３３に供給して、処理は、ステップＳ１３に進む。
【０２０８】
ステップＳ１３では、コピーデータ生成部３３が、場関数算出部３２からの位置場関数Fd(r)、方向場関数Fo(r)、サイズ場関数Fs(r)、及び密度場関数Fg(r)、並びに、データ供給部３１からのN個の例示要素の例示データ、及びガイド形状データを用いて、例示要素のコピーを多数生成する大量コピー処理を行い、処理は終了する。
【０２０９】
なお、大量コピー処理によって得られるコピーデータは、コピーデータ生成部３３から、ボリュームデータ生成部２１（図１）に、順次供給され、これにより、表示部１４では、例示要素の大量のコピーが反映されたCGが表示される。
【０２１０】
次に、図１３のフローチャートを参照して、場関数算出部３２が図１２のステップＳ１２で行う場関数算出処理について説明する。
【０２１１】
ステップＳ３１において、場関数算出部３２は、式（３）に従い、N個の例示要素#iについての、位置場関数の値Fd(di)の自乗の総和ΣFd(di)2を最小にするパラメータセットPdを、データ供給部３１からのN個の例示要素#iの例示データにおける位置diと、ガイド形状データ（距離関数D(r)）とを用いて求め、そのパラメータセットPdで定まる位置場関数Fd(r)を、コピーデータ生成部３３に供給して、処理は、ステップＳ３２に進む。
【０２１２】
ステップＳ３２では、場関数算出部３２は、式（４）に従い、N個の例示要素#iについての、方向oiと、方向場関数Fo(r)のグラディエント▽Fo(di)との自乗誤差の総和Σ||▽Fo(di)-oi||2を最小にするパラメータセットPoを、データ供給部３１からのN個の例示要素#iの例示データにおける位置di及び方向oiと、ガイド形状データ（距離関数D(r)）とを用いて求め、そのパラメータセットPoで定まる方向場関数Fo(r)を、コピーデータ生成部３３に供給して、処理は、ステップＳ３３に進む。
【０２１３】
ステップＳ３３では、場関数算出部３２は、式（５）に従い、N個の例示要素#iについての、サイズsiと、サイズ場関数Fs(r)の値Fs(di)との自乗誤差の総和Σ(Fs(di)-si)2を最小にするパラメータセットPsを、データ供給部３１からのN個の例示要素#iの例示データにおける位置di及びサイズsiと、ガイド形状データ（距離関数D(r)）とを用いて求め、そのパラメータセットPsで定まるサイズ場関数Fs(r)を、コピーデータ生成部３３に供給して、処理は、ステップＳ３４に進む。
【０２１４】
ステップＳ３４では、場関数算出部３２は、式（６）に従い、N個の例示要素#iについての、密度（密度距離）giと、密度場関数Fg(r)の値Fg(di)との自乗誤差の総和Σ(Fg(di)-gi)2を最小にするパラメータセットPgを、データ供給部３１からのN個の例示要素#iの例示データにおける位置di及び密度giと、ガイド形状データ（距離関数D(r)）とを用いて求め、そのパラメータセットPgで定まる密度場関数Fg(r)を、コピーデータ生成部３３に供給して、処理はリターンする。
【０２１５】
次に、図１４のフローチャートを参照して、コピーデータ生成部３３が図１２のステップＳ１３で行う大量コピー処理について説明する。
【０２１６】
まず最初に、ステップＳ５１において、コピーデータ生成部３３は、データ供給部３１からのガイド形状データに基づき、ガイド物体を囲むバウンダリボックスを設定する。さらに、ステップＳ５１では、コピーデータ生成部３３は、バウンダリボックスを格子状に区切り、そのバウンダリボックスの格子点の値を、0に初期化して（図６）、処理は、ステップＳ５２に進む。
【０２１７】
ステップＳ５２では、コピーデータ生成部３３は、データ供給部３１から例示データが供給されたN個の例示要素#iを、順次、注目要素として、データ供給部３１からの例示データにおける位置diと密度（密度距離)giとを用い、注目要素の位置diからの距離が、注目要素の密度距離giから所定のマージンdgを減算した値gi-dgから、注目要素の密度距離giに所定のマージンdgを加算した値gi+dgまでの領域を、加算領域に設定する。
【０２１８】
コピーデータ生成部３３が、ステップＳ５２において、N個の例示要素#iすべてについて加算領域を設定すると、処理は、ステップＳ５３に進み、コピーデータ生成部３３は、N個の例示要素#iすべてについて、加算領域の内側の領域を、除外領域とし、その除外領域内にある格子点の値を、-∞にセットする。
【０２１９】
さらに、ステップＳ５３では、コピーデータ生成部３３は、N個の例示要素を、順次、注目要素とし、その注目要素について加算領域内の、値が-∞でない格子点の値を1だけインクリメントして、処理は、ステップＳ５４に進む。
【０２２０】
ステップＳ５４では、コピーデータ生成部３３は、データ供給部３１からの例示データにおけるN個の例示要素#iの位置diと、場関数算出部３２からの位置場関数Fd(r)とを用いて、N個の例示要素の位置diに対する位置場関数Fd(di)の値を求め、その位置場関数Fd(di)の値を用いて、等値面領域（図１１）を設定するためのスカラー値λFを、上述したようにして決定して、処理は、ステップＳ５５に進む。
【０２２１】
ステップＳ５５では、コピーデータ生成部３３は、場関数算出部３２からの位置場関数Fd(r)と、直前のステップＳ５４で決定されたスカラー値λFとを用い、式Fd(r)=λFで表される等値面からの距離が、マージンdg以内の領域を、等値面領域に設定して、処理は、ステップＳ５６に進む。
【０２２２】
ステップＳ５６では、コピーデータ生成部３３は、等値面領域内の、値が1以上の格子点を、コピーの位置の候補である候補格子点として選択し、処理は、ステップＳ５７に進む。
【０２２３】
ステップＳ５７では、コピーデータ生成部３３が、候補格子点が存在するかどうかを判定する。
【０２２４】
ステップＳ５７において、候補格子点が存在しないと判定された場合、すなわち、等値面領域内に、値が1以上の格子点が存在しない場合、処理はリターンする。
【０２２５】
また、ステップＳ５７において、候補格子点が存在すると判定された場合、処理は、ステップＳ５８に進み、コピーデータ生成部３３は、候補格子点に対して、その候補格子点の値に比例する確率を与え、その確率に従って、ランダムに、１つの候補格子点を選択し、その候補格子点（の位置）を、コピーの位置λdに決定して、処理は、ステップＳ５９に進む。
【０２２６】
ステップＳ５９では、コピーデータ生成部３３は、場関数算出部３２からの方向場関数Fo(r)を用い、コピーの位置λdに対する方向場関数Fo(λd)のグラディエント▽Fo(λd)を、コピーの方向λoに決定し、さらに、必要に応じて、データ供給部３１からの例示データにおけるN個の例示要素#iの方向oi等を用いて、コピーの方向λoを修正して、処理は、ステップＳ６０に進む。
【０２２７】
ステップＳ６０では、コピーデータ生成部３３は、場関数算出部３２からのサイズ場関数Fs(r)を用い、コピーの位置λdに対するサイズ場関数Fs(λd)の値を、コピーのサイズλsに決定し、さらに、必要に応じて、データ供給部３１からの例示データにおけるN個の例示要素#iのサイズsi等を用いて、コピーのサイズλsを修正して、処理は、ステップＳ６１に進む。
【０２２８】
ここで、コピーデータ生成部３３は、以上のようにして得られたコピーの位置λd、方向λo、及びサイズλsを、コピーデータとして、ボリュームデータ生成部２１（図１）
【０２２９】
ステップＳ６１では、コピーデータ生成部３３は、場関数算出部３２からの密度場関数Fg(r)を用い、コピーの位置λdに対する密度場関数Fg(λd)の値を、コピーの密度λgに決定し、さらに、必要に応じて、データ供給部３１からの例示データにおけるN個の例示要素#iの密度gi等を用いて、コピーの密度λgを修正して、処理は、ステップＳ６２に進む。
【０２３０】
ステップＳ６２では、コピーデータ生成部３３は、コピーの位置λdからの距離が、コピーの密度（密度距離）λgから所定のマージンdgを減算した値gi-dgから、コピーの密度距離λgに所定のマージンdgを加算した値gi+dgまでの領域を、加算領域に設定して、処理は、ステップＳ６３に進む。
【０２３１】
ステップＳ６３では、コピーデータ生成部３３は、直前のステップＳ６２で設定した加算領域の内側の領域を、除外領域とし、その除外領域内にある格子点の値を、-∞にセットする。さらに、ステップＳ６３では、コピーデータ生成部３３は、直前のステップＳ６２で設定した加算領域内の、値が-∞でない格子点の値を1だけインクリメントして、処理は、ステップＳ５４に戻り、以下、同様の処理が繰り返される。
【０２３２】
以上のように、例示コピーによれば、ユーザが入力したN個の例示要素に基づいて、そのN個の例示要素にフィットする場関数を求め、その場関数に基づいて、例示要素のコピーを生成するので、規則性とランダム性を、高い自由度で制御した大量のコピーを、容易に行うこと、すなわち、ユーザは、僅かな数の例示を与えるだけで、ユーザの意図を反映した、ユーザが期待するコピーを多数得ることができる。
【０２３３】
なお、例示コピー処理は、場関数に基づいて、コピーを生成するので、場関数を利用するコピーの方法の利点をそのまま継承する。
【０２３４】
さらに、例示コピー処理では、ユーザが与える例示要素にフィットする場関数が求められるので、その場関数は、ユーザが与える例示要素から読み取ることができる大局的な構造が反映された関数となる。
【０２３５】
また、例示コピー処理では、ユーザは、場関数を定義するパラメータ（パラメータセット）を与える必要がないので、コピーを行うのに、パラメータを指定するといった間接的な操作が要求されない。
【０２３６】
すなわち、例示コピー処理では、ユーザは、例示要素を与えれば良いので、いわゆるコピーアンドペースト(copy and paste)の操作といった直感的な操作を行うだけで、ユーザが意図する大量のコピーを行うことができ、自然なユーザインターフェースを提供することができる。
【０２３７】
さらに、例示コピー処理は、２次元のCG、及び３次元のCGのいずれに対しても適用可能であり、応用性が高い。
【０２３８】
また、例示コピー処理によれば、例えば、図２に示したスイカの断面である２次元平面上だけに、例示要素としての種を入力するだけで、その断面上の他、その断面より下側のスイカの内部にも、種のコピーが生成される。すなわち、スイカの断面という２次元平面に対する例示要素としての種の入力に対して、スイカの断面上という２次元的な位置にだけでなく、スイカの内部という３次元的な位置にも、種のコピーが生成される３次元コピーが行われる。
【０２３９】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０２４０】
そこで、図１５は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０２４１】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０５やROM１０３に予め記録しておくことができる。
【０２４２】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体１１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体１１１は、いわゆるパッケージソフトウエアとして提供することができる。
【０２４３】
なお、プログラムは、上述したようなリムーバブル記録媒体１１１からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部１０８で受信し、内蔵するハードディスク１０５にインストールすることができる。
【０２４４】
コンピュータは、CPU(Central Processing Unit)１０２を内蔵している。CPU１０２には、バス１０１を介して、入出力インタフェース１１０が接続されており、CPU１０２は、入出力インタフェース１１０を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部１０７が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)１０３に格納されているプログラムを実行する。あるいは、また、CPU１０２は、ハードディスク１０５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部１０８で受信されてハードディスク１０５にインストールされたプログラム、またはドライブ１０９に装着されたリムーバブル記録媒体１１１から読み出されてハードディスク１０５にインストールされたプログラムを、RAM(Random Access Memory)１０４にロードして実行する。これにより、CPU１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU１０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース１１０を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部１０６から出力、あるいは、通信部１０８から送信、さらには、ハードディスク１０５に記録等させる。
【０２４５】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０２４６】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０２４７】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【０２４８】
すなわち、例えば、本実施の形態では、例示コピー処理において、位置場関数Fd(r)、方向場関数Fo(r)、サイズ場関数Fs(r)、及び密度場関数Fg(r)の４つの場関数を用いることとしたが、例示コピーでは、必ずしも、４つの場関数を用いる必要はない。
【０２４９】
例えば、方向がない形状を例示要素とする例示コピー処理では、方向場関数Fo(r)（及び方向データoi）を用いる必要はない。また、例えば、サイズが一定の形状を例示要素とする例示コピー処理では、コピーのサイズを、その一定のサイズにすれば良く、サイズ場関数Fs(r)を用いる必要はない。さらに、例えば、密度（密度距離）が一定のコピーを大量に生成する例示コピー処理では、コピーの密度を、その一定の密度にすれば良く、密度場関数Fg(r)を用いる必要はない。
【０２５０】
また、場関数F*(r)は、式（１）に限定されるものではない。
【図面の簡単な説明】
【０２５１】
【図１】本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
【図２】CGの例を示す図である。
【図３】CGの例を示す図である。
【図４】例示コピー部２３の構成例を示すブロック図である。
【図５】格子状に区切られたバウンダリボックスを示す図である。
【図６】格子点が0に初期化された状態のバウンダリボックスを示す図である。
【図７】３個の例示要素#1ないし#3を示す図である。
【図８】例示要素#1についての加算領域と除外領域とを示す図である。
【図９】加算領域内にある格子点の値が１だけインクリメントされ、除外領域内にある格子点の値が、-∞にセットされた結果を示す図である。
【図１０】例示要素#2についての加算領域と除外領域とを示す図である。
【図１１】等値面領域を示す図である。
【図１２】例示コピー処理を説明するフローチャートである。
【図１３】場関数算出処理を説明するフローチャートである。
【図１４】大量コピー処理を説明するフローチャートである。
【図１５】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０２５２】
１１  操作部，  １２  描画用データ生成部，  １３  描画部，  １４  表示部，  ２１  ボリュームデータ生成部，  ２２  データ記憶部，  ２３  例示コピー部，  ３１  データ供給部，  ３２  場関数算出部，  ３３  コピーデータ生成部，  １０１  バス，  １０２  CPU，  １０３  ROM，  １０４  RAM，  １０５  ハードディスク，  １０６  出力部，  １０７  入力部，  １０８  通信部，  １０９  ドライブ，  １１０  入出力インタフェース，  １１１  リムーバブル記録媒体
【図１】
2008305123.tif 000009
【図２】
2008305123.tif 000010
【図３】
2008305123.tif 000011
【図４】
2008305123.tif 000012
【図５】
2008305123.tif 000013
【図６】
2008305123.tif 000014
【図７】
2008305123.tif 000015
【図８】
2008305123.tif 000016
【図９】
2008305123.tif 000017
【図１０】
2008305123.tif 000018
【図１１】
2008305123.tif 000019
【図１２】
2008305123.tif 000020
【図１３】
2008305123.tif 000021
【図１４】
2008305123.tif 000022
【図１５】
2008305123.tif 000023