(57)【要約】本発明は、色域を比較するためのコンピュータ実装方法およびプログラム（図２）に関する。見本色点の第１の集合および第２の集合（４０，４４）を用いて、それぞれの包（４６，４８）が色空間に生成される。包の面上またはそれによって包囲される体積の中に配置される点のすべての集合がそれぞれの色域を表す。包は、好ましくはブール演算によって結合され、第１の色域（Ｈ１）と第２の色域（Ｈ２）との間の少なくとも１つの重複領域（５６）または少なくとも１つの排他領域（５６）を表す色空間における第３の包を生成する。少なくとも１つの包の体積を計算して、重複領域（６６）および／または排他領域（６８）の体積と比較してもよい。包の一方または両方と色空間における所定の基準線に垂直な平面との交差によって生成される輪郭の視覚表示を生成して、基準線に沿った第１の包および第２の包の整列の程度を定性的に確認してもよい。また、所与の色点が包の中にあるかどうかの決定を行ってもよい。
2006507769.tif 000002
【特許請求の範囲】
【請求項１】
所与の媒体上で色生成装置によって生成されることができる第１の色域を第２の色域と比較するための方法を実行するために、ディジタルコンピュータを構築するためのプログラムを含むコンピュータ読取り可能媒体であって、前記方法が、
ａ）色空間において第１の包を生成するために、見本色点の第１の集合を用いるステップであって、前記第１の集合における各見本色点が少なくとも３次元色空間における位置を規定し、前記第１の色域の色に対応し、
前記第１の包の面上またはそれによって包囲される体積の内部に配置される前記点のすべての前記集合が、前記第１の色域を表し、
見本色点の前記第１の集合における前記色点のすべてが、前記包の前記面上またはそれによって規定される前記体積の内部に配置されるようになっているステップと、
ｂ）前記色空間において第２の包を生成するために、見本色点の第２の集合を用いるステップであって、前記第２の集合における各見本色点が少なくとも３次元色空間における位置を規定し、前記第２の色域の色に対応し、
前記第２の包の面上またはそれによって包囲される体積の内部に配置される前記点のすべての前記集合が、前記第２の色域を表し、
見本色点の前記第２の集合における前記色点のすべてが、前記第２の包の前記面上またはそれによって規定される前記体積の内部に配置されるようになっているステップと、
ｃ）前記第１の色域と前記第２の色域との間の少なくとも１つの重複領域または少なくとも１つの排他領域を表す前記色空間における第３の包を生成するために、前記第１の包および前記第２の包を結合するステップと、を含むことを特徴とするコンピュータ読取り可能媒体。
【請求項２】
前記方法がさらに、
ｄ）前記第１の包または前記第２の包の一方の中に包囲される前記体積を決定するステップと、
ｅ）前記重複領域または前記排他領域を表す前記第３の包の中に包囲される前記体積を決定するステップと、
ｆ）前記第１の包または前記第２の包の前記体積を前記第３の包の前記体積と比較するステップと、を含むことを特徴とする請求項１に記載のコンピュータ読取り可能媒体。
【請求項３】
前記結合ステップが、前記第１の色域と前記第２の色域との間の少なくとも１つの重複領域を生成するために、ブール交差演算を用い、前記第１の色域と前記第２の色域との間の少なくとも１つの排他領域を生成するために、ブール差演算を用いて実行されることを特徴とする請求項１に記載のコンピュータ読取り可能媒体。
【請求項４】
所与の媒体上で色生成装置によって生成されることができる第１の色域を第２の色域と比較するためのコンピュータ実装方法であって、前記方法が、
ａ）色空間において第１の包を生成するために、見本色点の第１の集合を用いるステップであって、前記第１の集合における各見本色点が少なくとも３次元色空間における位置を規定し、前記第１の色域の色に対応し、
前記第１の包の面上またはそれによって包囲される体積の内部に配置される前記点のすべての前記集合が、前記第１の色域を表し、
見本色点の前記第１の集合における前記色点のすべてが、前記包の前記面上またはそれによって規定される前記体積の内部に配置されるようになっているステップと、
ｂ）前記色空間において第２の包を生成するために、見本色点の第２の集合を用いるステップであって、前記第２の集合における各見本色点が少なくとも３次元色空間における位置を規定し、前記第２の色域の色に対応し、
前記第２の包の面上またはそれによって包囲される体積の内部に配置される前記点のすべての前記集合が、前記第２の色域を表し、
見本色点の前記第２の集合における前記色点のすべてが、前記第２の包の前記面上またはそれによって規定される前記体積の内部に配置されるようになっているステップと、
ｃ）前記第１の色域と前記第２の色域との間の少なくとも１つの重複領域または少なくとも１つの排他領域を表す前記色空間における第３の包を生成するために、前記第１の包および前記第２の包を結合するステップと、を含むことを特徴とするコンピュータ実装方法。
【請求項５】
前記結合ステップが、少なくとも１つのブール演算を用いて実行されることを特徴とする請求項４に記載のコンピュータ実装方法。
【請求項６】
見本色点の前記第１の集合が前記第１の包をまとめて規定する複数の境界面を生成するために用いられ、見本色点の前記第２の集合が前記第２の包をまとめて規定する複数の境界面を生成するために用いられ、前記第１の包および前記第２の包が前記第３の包をまとめて規定する複数の境界面を生成するために結合されることを特徴とする請求項４に記載のコンピュータ実装方法。
【請求項７】
ｄ）前記第１の包または前記第２の包の一方の中に包囲される前記体積を決定するステップと、
ｅ）前記重複領域または前記排他領域を表す前記第３の包の中に包囲される前記体積を決定するステップと、
ｆ）前記第１の包または前記第２の包の前記体積を前記第３の包の前記体積と比較するステップと、をさらに含むことを特徴とする請求項４に記載のコンピュータ実装方法。
【請求項８】
前記第１の包または前記第２の包の少なくとも１つが凸包であることを特徴とする請求項４に記載のコンピュータ実装方法。
【請求項９】
前記第１の包および前記第２の包の両方が凸包であることを特徴とする請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記第１の包または前記第２の包の少なくとも１つがアルファ包であることを特徴とする請求項４に記載のコンピュータ実装方法。
【請求項１１】
ｇ）２次元ディスプレイ装置上に前記第１の包、前記第２の包または前記第３の包の少なくとも１つの視覚表示を表示するステップを含むことを特徴とする請求項４に記載のコンピュータ実装方法。
【請求項１２】
前記包のいずれかの前記色、不透明度または前記２次元表示の配向のいずれかまたはすべてが、選択的に制御可能であることを特徴とする請求項１１に記載のコンピュータ実装方法。
【請求項１３】
前記色空間が、３次元ＣＩＥ  Ｌ＊ａ＊ｂ＊系色空間であることを特徴とする請求項４に記載のコンピュータ実装方法。
【請求項１４】
見本色点の少なくとも前記第１の集合が、
前記色生成装置を用いて、所与の媒体上で複数の見本色を印刷するステップと、
前記見本色のそれぞれの反射率を測定するステップと、
前記測定された反射率を前記３次元ＣＩＥ  Ｌ＊ａ＊ｂ＊系色空間における座標に変換するステップと、を用いて生成されることを特徴とする請求項１３に記載のコンピュータ実装方法。
【請求項１５】
（ｉ）見本色点の前記第１の集合が、スクリーン色印刷装置から導出され、
見本色点の前記第２の集合が、インクジェット色印刷装置から導出されるか、または
（ｉｉ）見本色点の前記第１の集合が、Ｎ種類の着色インクの第１のパレットを有するインクジェット色印刷装置から導出され、
見本色点の前記第２の集合が、Ｍ種類の着色インクの第２のパレットを用いて、前記同一のインクジェット色印刷装置から導出され、ＮおよびＭが同一の数または異なる数であるか、または
（ｉｉｉ）見本色点の前記第１の集合が、Ｎ種類の着色インクの第１のパレットを有する第１のインクジェット色印刷装置から導出され、
見本色点の前記第２の集合が、Ｍ種類の着色インクを含む第２のパレットを用いて、第２のインクジェット色印刷装置から導出されることを特徴とする請求項４〜１４のいずれか１項または組み合わせに記載のコンピュータ実装方法。
【請求項１６】
前記第２のパレットにおける前記Ｍ種類の着色インクが、前記第１のパレットの前記Ｎ種類の着色インクの中に含まれるか、または前記第２のパレットにおける前記Ｍ種類の着色インクの少なくとも１つであり、全種類より少ない数が前記第１のパレットの前記Ｎ種類の着色インクの中に含まれるか、または前記第２のパレットにおける前記Ｍ種類の着色インクが前記第１のパレットの前記Ｎ種類の着色インクの中に含まれないことを特徴とする請求項１５に記載のコンピュータ実装方法。
【請求項１７】
前記第３の包が、前記第１の色域および前記第２の色域の重複領域を表し、前記第３の包の前記面上またはそれによって包囲される体積の内部に配置される各点が、前記第１の色域および前記第２の色域の両方の中にある色を表すことを特徴とする請求項４〜１４のいずれか１項または組み合わせに記載のコンピュータ実装方法。
【請求項１８】
前記結合ステップが、前記第１の色域と前記第２の色域との間の少なくとも１つの重複領域を生成するために、ブール交差演算を用いて実行されることを特徴とする請求項１７に記載のコンピュータ実装方法。
【請求項１９】
前記第３の包が、前記第１の色域および前記第２の色域の重複領域を表し、前記第３の包の前記面上またはそれによって包囲される体積の内部に配置される各点が、前記第１の色域および前記第２の色域の両方の中にある色を表すことを特徴とする請求項１５に記載のコンピュータ実装方法。
【請求項２０】
前記結合ステップが、前記第１の色域と前記第２の色域との間の少なくとも１つの重複領域を生成するために、ブール交差演算を用いて実行されることを特徴とする請求項１９に記載のコンピュータ実装方法。
【請求項２１】
前記第３の包が、前記第１の色域と前記第２の色域との間の少なくとも１つの排他領域を表し、前記第３の包の前記面上またはそれによって包囲される体積の内部に配置される各点が、前記第１の色域に中にあるが、前記第２の色域には含まれない色を表すことを特徴とする請求項４〜１４のいずれか１項に記載のコンピュータ実装方法。
【請求項２２】
前記結合ステップが、前記第１の色域と前記第２の色域との間の少なくとも１つの排他領域を生成するために、ブール差演算を用いて実行されることを特徴とする請求項２１に記載のコンピュータ実装方法。
【請求項２３】
前記第３の包が、前記第１の色域と前記第２の色域との間の少なくとも１つの排他領域を表し、前記第３の包の前記面上またはそれによって包囲される体積の内部に配置される各点が、前記第１の色域に中にあるが、前記第２の色域には含まれない色を表すことを特徴とする請求項１５に記載のコンピュータ実装方法。
【請求項２４】
前記結合ステップが、前記第１の色域と前記第２の色域との間の少なくとも１つの排他領域を生成するために、ブール差演算を用いて実行されることを特徴とする請求項２３に記載のコンピュータ実装方法。
【請求項２５】
所与の媒体上で色生成装置によって生成されることができる第１の色域を第２の色域と比較するためのコンピュータ実装方法であって、前記方法が、
ａ）色空間における第１の包をまとめて規定する複数の境界面を生成するために見本色点の第１の集合を用いるステップであって、前記第１の集合における各見本色点が少なくとも３次元色空間における位置を規定し、前記第１の色域の色に対応し、
前記第１の包の面上またはそれによって包囲される体積の内部に配置される前記点のすべての前記集合が、前記色生成装置によって生成されることができる前記色域を表し、
見本色点の前記第１の集合における前記色点のすべてが、前記包の前記面上またはそれによって規定される前記体積の内部に配置されるようになっているステップと、
ｂ）前記色空間において第２の包をまとめて規定する複数の境界面を生成するために見本色点の第２の集合を用いるステップであって、前記第２の集合における各見本色点が少なくとも３次元色空間における位置を規定し、前記第２の色域の色に対応し、
前記第２の限定包の前記面上またはそれによって包囲される体積の内部に配置される前記点のすべての前記集合が、前記第２の色域を表し、
見本色点の前記第２の集合における前記色点のすべてが、前記第２の包の前記面上またはそれによって規定される前記体積の内部に配置されるようになっているステップと、
ｃ）前記色空間において所定の基準線に沿った複数の位置のそれぞれに関して、前記基準線に沿った前記第１の包および前記第２の包の整列の程度を定性的に確認するために、前記第１の包および前記第２の包の一方または両方とその平面の交差によって生成されるその基準線に垂直な平面における輪郭の視覚表示を生成するステップと、を含むことを特徴とするコンピュータ実装方法。
【請求項２６】
少なくとも３次元色空間における所定の色点に対応する所定の候補の色が、所与の媒体上で色生成装置によって生成されることができる色域の中にあるかどうかを決定するためのコンピュータ実装方法であって、
ａ）前記色空間における第１の包をまとめて規定する複数の境界面を生成するために見本色点の第１の集合を用いるステップであって、前記第１の集合における各見本色点が少なくとも３次元色空間における位置を規定し、前記第１の色域の色に対応し、
前記包の前記面上またはそれによって包囲される体積の内部に配置される前記点のすべての前記集合が、前記色生成装置によって生成されることができる前記色域を表すようになっているステップと、
ｂ）前記所定の候補の色に対応する前記色空間における前記点が、前記包の前記面上またはそれによって規定される体積の内部にあるかどうかを決定するステップと、を含むことを特徴とするコンピュータ実装方法。
【請求項２７】
前記決定前に、見本色点の前記色空間における値および所定の色点の前記色空間における値に応じて決定される倍率を用いて、見本色点の前記集合および前記所定の色点を拡大縮小するステップをさらに含むことを特徴とする請求項２６に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各色域が異なる色生成装置を特徴付ける場合に特に有用である第１の色域を第２の色域と比較するためのコンピュータ実装方法に関する。
【背景技術】
【０００２】
現在、ロータリスクリーンプリンタは、織布に印刷するために用いられる原色生成装置である。商業量の場合には、スクリーン印刷は高速かつ経済的である。しかし、スクリーン作製の費用のために、限られた数だけの繊維を製造することが望ましい場合には、スクリーン印刷によって提供されるスケールメリットが失われる。たとえば、織物のプルーフィング実行の場合には、業界の慣行から作製対象の繊維の色およびパターンを実地説明するために少数の繊維を作製する必要がある。少数の見本用繊維を提供するためにスクリーン１セット全部を作製することは、費用が嵩む。
【０００３】
したがって、織物産業は、そのような見本実行の製造物に関して他の形態の印刷装置を用いることに転向しつつある。見本実行のためのプルーフィングプリンタとして有用なそのような印刷装置の１つは、「アーティストリ（Ａｒｔｉｓｔｒｉ）ＴＭインクジェット３２１０プリンタ」として本願特許出願人によって製造および販売されている製造インクジェットプリンタである。
【０００４】
見本実行に関してスクリーンプリンタ以外の印刷装置を用いる場合には、プルーフィング装置によって提供されるような試作品の織物の色をスクリーンプリンタによって正確に表現することができることを確認することが重要である。
【０００５】
物体の色を決定することは、照射条件、物体自体のスペクトル特性および人間の観察者の反応の複雑な相互作用であるため、この確認を行うことは困難である場合がある。
【０００６】
しかし、これらの因子の関係を数学的に記述することができる。任意のＮ次元色空間において色を定義するために数学を用いてもよいが、一般的な視覚的に一様な方法で色を記述するために、３次元系を用いることが最も一般的である。色の記述に最もよく用いられる３次元系の１つが、ＣＩＥ  Ｌ＊ａ＊ｂ＊系である。
【０００７】
ＣＩＥ  Ｌ＊ａ＊ｂ＊系は、３つの互いに直交する座標軸ｖｉｚ．すなわちＬ＊、ａ＊およびｂ＊に沿って配置された色変数に関して、物体の色を表示するための３次元系である。Ｌ＊は、明度軸であり、０〜１００（黒から白）の値の範囲である。ａ＊軸は、（−ｂ＊）から黄色（＋ｂ＊）である。ＣＩＥ  Ｌ＊ａ＊ｂ＊系の完全な表示は、ＣＩＥ出版物１５．２またはＡＳＴＭ  Ｅ−３０８などの種々の規格集において分かる。
【０００８】
ＣＩＥ  Ｌ＊ａ＊ｂ＊系における特定の色の表示は、３次元空間における点として描くことができる。媒体上で作用する着色剤およびそれらの混合物からなる任意の所与の色生成装置によって生成される色点の集合は、同様に、該当する色空間における一意の３次元固体として描かれてもよい。固体の境界面は「包」と呼ぶ。固体の境界面および「包」の中に包囲された色点の集合は、色生成装置の「色域」を現し、特定の色生成装置によって生成されることができる色のすべてを表す。したがって、包上および包によって包囲される体積の中のすべての色は色生成装置によって実現可能であるが、包の外側にある色は実現可能ではない。
【０００９】
３次元固体の包上の点は、色生成装置によって供給されることができる原点からすべての方向における最も鮮やかな色を表す。この距離は、該当する方向に関して系によって最大の入手可能な色を表し、「彩度」（Ｃ＊）と呼ばれることが多い。「彩度」（Ｃ＊）は、ａ＊およびｂ＊の座標の平方の和の平方根としてＣＩＥ  Ｌ＊ａ＊ｂ＊系を数学的に表す。したがって、境界面の点は、該当する特定の系で入手可能な最も鮮やかな色を表す（たとえば、「最も赤みを帯びた」赤、「最も緑がかった」緑）。
【００１０】
カリフォルニア州キャンベルのイグザクトシー（ＥｘａｃｔＣ（Ｃａｍｐｂｅｌｌ，ＣＡ））から市販されているコンピュータモデル化パッケージ「カラー３Ｄ，Ｖｅｒ  ２．０」著作権１９９９年により、３次元色域の限定された可視化を可能にすることができる。
【００１１】
包は少なくとも３次元構成体であるため、そのサイズは色空間の体積として評価されることができる。色域の体積については、（非特許文献１）に記載されている。
【００１２】
米国特許公報（特許文献１）は、アルファ形状を算出することによって色域を規定する。２つの色域は、交差する体積を決定し、重なる比率を計算することによって比較される。比較は単純な体積比であり、実際重なった（交差した）色空間を規定することはない。色域の重複または差から視覚表示を構成することはできない。
【００１３】
【特許文献１】米国特許第６，４８０，３０１号明細書
【非特許文献１】斉藤了一（Ｒ．Ｓａｉｔｏ）および小寺宏曄（Ｈ．Ｋｏｔｅｒａ）著、「Ｄｏｔ  Ａｌｌｏｃａｔｉｏｎｓ  ｉｎ  Ｄｉｔｈｅｒ  Ｍａｔｒｉｘ  ｗｉｔｈ  Ｗｉｄｅ  Ｃｏｌｏｒ  Ｇａｍｕｔ」、Ｊ．Ｉｍａｇｉｎｇ  Ｓｃｉｅｎｃｅ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ、４３：４、３４５、（１９９９）
【非特許文献２】アウスタホート（Ｏｕｓｔｅｒｈｏｕｔ）著、「Ｔｃｌ＆Ｔｋツールキット（Ｔｃｌ  ａｎｄ  Ｔｋ  Ｔｏｏｌｋｉｔ）」、１９９４、Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ、Ｒｅａｄｉｎｇ、Ｍａｓｓａｃｈｕｓｅｔｔｓ
【非特許文献３】ビャーネ・ストロヴストルップ（Ｓｔｒｏｕｓｔｒｕｐ，Ｂｊａｒｎｅ）著、「プログラミング言語Ｃ＋＋第３版（Ｔｈｅ  Ｃ＋＋  Ｌａｎｇｕａｇｅ，Ｔｈｉｒｄ  Ｅｄｉｔｉｏｎ）」、１９９７、Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ、（ＩＳＢＮ（０−２０１−８８９５４−４））
【非特許文献４】Ｊ．オローク（Ｊ．Ｏ’Ｒｏｕｒｋｅ）著、「Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｇｅｏｍｅｔｒｙ  Ｉｎ  Ｃ，２ｎｄ  Ｅｄ．」、Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖ．Ｐｒｅｓｓ  １９９８、ｐ．２４５〜２５２
【非特許文献５】「ＯｐｅｎＧＬ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｇｕｉｄｅ  Ｔｈｉｒｄ  Ｅｄｉｔｉｏｎ」、Ａｄｄｉｓｏｎ  Ｗｅｓｌｅｙ  １９９９
【非特許文献６】Ｍ．ドバーグ（Ｍ．ｄｅ  Ｂｅｒｇ）ら著、「コンピュータ・ジオメトリ（Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｇｅｏｍｅｔｒｙ）」、Ｓｐｒｉｎｇｅｒ、１９９８
【非特許文献７】Ｊ．オローク（Ｊ．Ｏ’Ｒｏｕｒｋｅ）著、「Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｇｅｏｍｅｔｏｒｙ  Ｉｎ  Ｃ  ２ｎｄ  Ｅｄ．」、Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖ．Ｐｒｅｓｓ、１９９８、ｐ．１０１
【非特許文献８】Ｈ．エーデルスブルナー（Ｈ．Ｅｄｅｌｓｂｒｕｎｎｅｒ）およびＥ．Ｐ．ミュッケ（Ｅ．Ｐ．Ｍｕｃｋｅ）著、「Ｔｈｒｅｅ−ｄｉｍｅｎｓｉｏｎａｌ  ａｌｐｈａ  ｓｈａｐｅｓ」、ＡＣＭ  Ｔｒａｎｓ．Ｇｒａｐｈｉｃｓ  １３（１９９４）、ｐ．４３〜７２
【非特許文献９】Ａ．ボウヤー（Ａ．Ｂｏｗｙｅｒ）著、「Ｃｏｍｐｕｔｉｎｇ  Ｄｉｒｉｃｈｌｅｔ  Ｔｅｓｓｅｌａｔｉｏｎｓ」、Ｔｈｅ  Ｃｏｍｐｕｔｅｒ  Ｊｏｕｒｎａｌ、２４（２）、１９８１年２月、ｐ．１６２〜１６６
【非特許文献１０】Ｍ．モーテンソン（Ｍ．Ｍｏｒｔｅｎｓｏｎ）著、「Ｇｅｏｍｅｔｒｉｃ  Ｍｏｄｅｌｉｎｇ」、第２版、Ｊｏｈｎ  Ｗｉｌｅｙ  ＆  Ｓｏｎｓ  Ｉｎｃ．，１９９７、ｐ．２８１〜３１０
【非特許文献１１】Ａ．Ｍ．アラヤシン（Ａ．Ｍ．Ａｌｙａｓｓｉｎ）ら著、「Ｅｖａｌｕａｔｉｏｎ  ｏｆ  ｎｅｗ  ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  ｔｈｅ  ｉｎｔｅｒａｃｔｉｖｅ  ｍｅａｓｕｒｅｍｅｎｔ  ｏｆ  ｓｕｒｆａｃｅ  ａｒｅａ  ａｎｄ  ｖｏｌｕｍｅ」、Ｍｅｄ  Ｐｈｙｓ  ２１（６）  １９９４
【非特許文献１２】ジェームズ・アルヴォ（Ｊａｍｅｓ  Ａｒｖｏ）編、Ｇｒａｐｈｉｃｓ  Ｇｅｍｓ  ＩＩ、１９９１におけるＲ．Ｎ．ゴールドマン（Ｒ．Ｎ．Ｇｏｌｄｍａｎ）著、「Ａｒｅａ  ｏｆ  Ｐｌａｎａｒ  Ｐｏｌｙｇｏｎｓ  ａｎｄ  Ｖｏｌｕｍｅ  ｏｆ  Ｐｏｌｙｈｅｄｒａ」、ｐ．１７０〜１７１
【非特許文献１３】スラメック（Ｓｒａｍｅｋ）およびカウフマン（Ｋａｕｆｍａｎ）著、「Ａｌｉａｓ−ｆｒｅｅ  ｖｏｘｅｌｉｚａｔｉｏｎ  ｏｆ  ｇｅｏｍｅｔｒｉｃ  ｏｂｊｅｃｔｓ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ａｎｄ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  ３（５）、１９９９
【非特許文献１４】シュローダー（Ｓｃｈｒｏｅｄｅｒ）ら著、「Ｄｅｃｉｍａｔｉｏｎ  ｏｆ  Ｔｒｉａｎｇｌｅ  Ｍｅｓｈｅｓ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｓｉｇｇｒａｐｈ  ９２
【非特許文献１５】ヒューズ・ホッペ（Ｈｕｇｈｅｓ  Ｈｏｐｐｅ）著、「Ｐｒｏｇｒｅｓｓｉｖｅ  Ｍｅｓｈｅｓ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｓｉｇｇｒａｐｈ  ９６
【発明の開示】
【発明が解決しようとする課題】
【００１４】
色域の比較および評価のための改良された方法が依然として必要である。その色レンダリング性能の比較または所与の色生成装置の色レンダリング性能に関する情報を提供するために、種々の色生成装置の色域をそれぞれ代表する３次元色空間において包を利用することが好都合であると考えられる。
【課題を解決するための手段】
【００１５】
一般に、本発明は、色域を比較するためのコンピュータ実装方法およびその方法を実行するためにコンピュータを構成するプログラムを搭載したコンピュータ読取り可能媒体に関する。
【００１６】
見本色点のそれぞれの第１の集合および第２の集合を用いて、それぞれが少なくとも３次元色空間における位置を表し、それぞれがそれぞれの色域における色に対応し、それぞれの包が色空間に生成される。見本色点の少なくとも１つの集合が色生成装置によって生成され、各見本点がその色生成装置によって生成されることができる色域における色に対応する。好ましい事例では、包は、それぞれの包をそれぞれ合わせて規定する複数の境界面を生成することによって規定される。包の面上または包によって包囲された体積の内部に配置された点のすべては、それぞれの色域を表す。
【００１７】
第１の包および第２の包から色空間における第３の包が生成され、第１の色域と第２の色域との間の少なくとも１つの重複領域または少なくとも１つの排他領域を表す。重複領域を規定する第３の包は、第１の包および第２の包によって重なる色点を含む。したがって、第３の包の面上またはその内部に包囲される色点は、第１の色域および第２の色域の両方の中にある色を表す。第１の包および第２の包の結合は、交差演算などのブール演算を用いて行われることが好ましい。
【００１８】
排他領域を規定するために第１の包および第２の包の結合によって生成される第３の包は、１つの包の面上またはその内部にあり、他の包上またはその内部の点とは異なる点を含む。この場合には、第３の包の面上またはその内部に包囲される色点は、１つの色域の色であって、他の包内部にはない色を表す。第１の包および第２の包のこの結合はまた、差演算などのブール演算を用いて行われることが好ましい。
【００１９】
重複領域または排他領域を表す包の体積を計算してもよい。１つの包と他の包との重複または排他の程度を定量化するために、これらの体積の一方または両方を第１の包または第２の包の一方の体積と比較してもよい。
【００２０】
本発明のさらに別の態様において、色空間における所定の基準線に沿って複数の位置のそれぞれに関して、第１の包および第２の包の一方または両方と基準線に垂直な平面との交差によって生成される平面の輪郭の視覚表示が生成される。表示面と一方または両方の包の輪郭のこれらの表示の連続の検査から、軸に沿った第１の包および第２の包の整列の程度が定性的に確認される。
【００２１】
さらに別の態様において、所定の候補の色を表す点が色生成装置の色域を代表する包内部にあるかどうかを決定してもよい。その決定前に、堅牢性を加え、浮動小数点演算による可変性を補償し、最大の整数計算精度を実現するために、色域を表す包を生成するために用いられる見本色点および所定の色点の集合は、見本色点および所定の色点の色空間における値に基づいて決定される倍率によって基準化される。
【００２２】
一般に、本発明において、色域におけるブール演算の結果の計算は、幾何モデル化に基づいている。色域に関する境界の表示は包と呼ばれる多面体であり、色域の表示は包上または包内部のすべての点である。２つの色域におけるブール演算は、包における等価なブール演算と等価である。たとえば、本願明細書で構築されるように、２つの色域の交差を見つけるために、ある包における多角形が他の包における多角形を切り取る場所に基づいて新たな包が生成される。幾何モデル化において、これは、空間領域構成法（Ｃｏｎｓｔｒｕｃｔｉｖｅ  Ｓｏｌｉｄ  Ｇｅｏｍｅｔｒｙ）と呼ばれる。
【００２３】
本発明は、添付図面に関連して、以下の詳細な説明からより十分に理解されるであろう。
【発明を実施するための最良の形態】
【００２４】
以下の詳細な説明全体を通じて、類似の参照符号は、図面のすべての図における類似の要素を指す。
【００２５】
図１を参照すると、本発明の方法が有用性を見出した代表的な利用環境の様式化された図による表示が示されている。図１において、第１の色生成装置は一般に、参照符号１０によって示されている。本発明のこの態様を説明するために、第１の色生成装置は、サウスカロライナ州スパータンバーグのジンマー・マシーネリー・インコーポレイティッド（Ｚｉｍｍｅｒ  Ｍａｃｈｉｎｅｒｙ  Ｉｎｃ．（Ｓｐａｒｔａｎｓｂｕｒｇ，ＳＣ））によって製造され、「ロタスクリーン（ｒｏｔａＳＣＲＥＥＮ）」として販売されている装置などの産業用スクリーンプリンタとして実装される。スクリーンプリンタは、所与の基板媒体の上に生成されることができる色の１つまたは複数の広いパレットを含むパターンを有する織布１２を作製するために動作する。
【００２６】
第２の色生成装置は一般に、参照符号２２によって示されている。この説明に関して、第２の色生成装置２２は、プルーフィングプリンタとして実装される。スクリーンプリンタによって必要なスクリーンのアレイを作製する全体的な費用を負担することなく、最終的な物品の例をデザイナに提供する比較的少量の見本用見本２４を作製するために、プルーフィングプリンタが用いられる。
【００２７】
プルーフィングプリンタとして有用であると考えられる１つの装置は、「アーティストリ（Ａｒｔｉｓｔｒｉ）ＴＭ製造３２１０プリンタ」として本願特許出願人によって製造および販売されている製造プリンタである。インクジェットプリンタは、種々の基板媒体のいずれかにあるそのパレットに色を生成するために、Ｎ個のさまざまなカラーインクの基本集合を用いる。
【００２８】
そのような目的のためにプルーフィングプリンタを用いた結果として伴う問題は、見本用見本２４でそれによって提供された色をスクリーンプリンタによって織布１２上に再現することができることを検証することにある。
【００２９】
本発明による方法およびプログラムの一態様は、この問題を解決する。
【００３０】
図２は、本発明の方法４０の方法ステップを示す全体的なブロック図である。本願明細書にさらに詳細に述べるように、この方法４０は、本発明のプログラムによって動作するディジタルコンピュータ上で実行される。
【００３１】
動作ブロック４２、４４に示されているように、本発明のこの態様による方法４０は、見本色点Ｐの第１の集合１４（図１）および見本色点Ｑの第２の集合２８（図１）が他の源から既に入手可能で場合には、そのような集合を生成する予備ステップを含んでもよい。一般に、見本色点の集合１４、２８は、特定の色生成装置のフルカラー範囲を特徴付けるために、十分な数の点を含む。したがって、図１の図に示されているような下付き文字「ｎ］「ｍ」の使用は、いずれの集合における点の数の間の関係を示唆しているわけではない。
【００３２】
既に利用可能でない場合には、さまざまな利用可能な方法のいずれを用いて、見本色点の集合１４、２８を生成してもよい。
【００３３】
場合によっては、特定のタスクに関して利用可能な色を測定することが適切である場合もある。色の数が制限されるとき、最も簡単な手法は、色のＣＩＥ  Ｌ＊ａ＊ｂ＊系のＬ＊、ａ＊およびｂ＊座標を実際に測定することである。
【００３４】
基板媒体に塗布されるような異なる着色剤の代表例を考慮し、分光光度計を用いて反射率を測定することによって、このような測定を行ってもよい。測定分光光度計として用いるのに適しているのは、エックスライト（Ｘ−Ｒｉｔｅ）  ＳＰ６」として販売されている装置である。
【００３５】
本発明に関連して、着色剤の混合が可能であると仮定すると、別の手法は、これらの原色から生成しうる可能な色の予測集合を規定することができるようにするために、色の十分に大きな集合を実験的に準備することである。分光測定は、色集合から構成される。プロセスインクの相対的寄与率が体系的な態様で変化する目標のインクジェット印刷が、この手法の一例である。
【００３６】
場合によっては、十分に大きな数の見本を実験的に準備することは、労力または材料に多大な費用がかかる可能性がある。そのような場合には、コンピュータ実装数学モデルが用いられることが多く、主要な着色剤の光学特徴に基づいて、原色の「理論的な」混合から生じる多数の色を生成することができる。クベルカ−ムンク式などの関係を基に築き上げた数学モデルをこの目的のために用いてもよい。
【００３７】
図１において図式的に示されたように、見本色点Ｐ、Ｑの集合１４、２８における各色点は、既に説明した色座標のＣＩＥ  Ｌ＊ａ＊ｂ＊系などの少なくとも３次元色空間における位置を規定する。他の３次元色空間またはさらに高い次元の色空間を用いてもよい。第１の集合１４における各色点Ｐは、色生成装置１０によって生成されることができる色域中の色に対応する。同様に、第２の集合２８における各色点Ｑは、第２の色生成装置２２によって生成されることができる色域中の色に対応する。
【００３８】
本発明の方法およびプログラムの好ましい実行において、３次元色空間におけるそれぞれの複数の境界面１８を生成するために、第１の集合１４における見本色点の一部またはすべてが用いられる。同様に、第２の集合２８における見本色点の一部またはすべてを用いて、第２の複数の境界面３２が３次元色空間に生成される。これらのステップは、図２の動作ブロック４６、４８に示されている。各複数の境界面１８、３２は、まとめて３次元色空間における面または「包」２０、３４を規定する。見本色点の第１の集合１４および第２の集合２８から生成されたそれぞれの包２０、３４が、図１に図式的に示されている。包２０、３４を生成する複数の境界面１８、３２のさらに詳細な図が、図３および図４に示されている。（説明を分かりやすくするため、面１８、３２の一部のみが図３および図４の参照符号によって示されていることに留意されたい。）
【００３９】
第１の限定包２０の面上またはそれによって包囲される体積内部の点のすべての集合は、色生成装置１０によって生成されることができる色域を表す。したがって、見本色点の第１の集合１４における色点Ｐのすべてが、包２０の面上またはその内部に配置される。同様に、色生成装置２２によって生成されることができる色域は、第２の限定包３４の面上またはそれによって包囲される体積内部に配置される点Ｑのすべての集合によって表され、見本色点の第２の集合２８における色点のすべては、包３４の面上またはその内部に配置される。
【００４０】
（重複）
本発明の第１の態様によれば、図２の動作ブロック５０および図５Ａ、図５Ｂの概略図に示されているように、第１の包２０および第２の包３４は、３次元色空間における第３の包５４を生成するために結合される。好ましい事例では、第３の包５４は、第３の包５４をまとめて規定する複数の境界面５２から生成される。包２０、３４のこの結合の結果として生成される包５４のさらに詳細な図が、図５Ｂに示されている。（この場合も先と同様に、説明を分かりやすくするため、面５２の一部のみが図５Ｂの参照符号によって示されている。）第３の包５４の面上またはそれによって包囲されている体積の内部に配置されている各点は、第１の色域および第２の色域の両方の内部にある色を規定する。したがって、第３の包５４は、第１の色域および第２の色域の重複領域を表す。すなわち、第２の色生成装置２２（この説明では、プルーフィング装置）によって生成される重複色域はまた、第１の色生成装置１０（この説明では、スクリーン印刷装置）によって生成されることができることになる。
【００４１】
（一般化）
プルーフィング装置２２によって生成される色が上記で説明したように産業用プリンタ１０によって生じることができることを検証するために、色域を比較する際に用いられる本発明の方法４０およびプログラムの原理は、第２の色域を有する所与の媒体基板上に所与の第１の色生成装置によって生成されることができる第１の色域を比較するさらに一般的な問題に容易に拡張することが可能である。
【００４２】
本発明によれば、少なくとも３次元色空間における位置をそれぞれ規定する色点の第１の集合および第２の集合は、色空間においてそれぞれの限定包を作成するために用いられてもよい。色点のその第１の集合を用いて生成された限定包が該当する色空間における第１の色生成装置の色域を表すように、色点の第１の集合における各色点は、第１の色生成装置によって生成される色から導出され、対応してもよい。色点の第２の集合を用いて生成された包が、第２の色域を表す。
【００４３】
上述の特定の事例の場合のように、第１の包および第２の包の少なくとも１つの重複領域を表す第３の包は、第１の包および第２の包を結合することによって生成されてもよい。したがって、重複領域を表す第３の包は、第２の色域内にある第１の色生成装置によって生成されることができる色の表示を提供する。結合は任意の方法で実現されてもよいが、ブール交差などの少なくとも１つのブール演算を利用することが好ましい。当然のことながら、等価な結果を生じる１つまたは複数の他のブール演算を用いてもよい。
【００４４】
（具体的な用途）
第２の色域は、種々の源から導出されてもよい。たとえば、Ｎ種類のインクの第１の集合からなるパレットを有するインクジェットプリンタによって生成される色域を、Ｍ種類のインクの第２の集合からなるパレットを有する同一のインクジェットプリンタによって生成されることができる色域を表す第２の色域と比較することができる状況において、本発明を用いてもよい。第２の集合は、Ｎ種類のインクの第１の集合の部分集合であってもよい。あるいは、第２の集合における１つまたは複数（但し、すべてではない）のインクは、Ｎ種類のインクの第１の集合の中に包含されてもよい（第１の集合および第２の集合が交差する）。別の代替例として、第１のインク集合および第２のインク集合は、共通の構成部材を備えていなくてもよい。
【００４５】
本発明はまた、Ｎ種類のインクの第１の集合からなるパレットを有するインクジェットプリンタによって生成される色域を、Ｍ種類のインクの第２の集合からなるパレットを有する異なるインクジェットプリンタによって生成されることができる色域を表す第２の色域と比較することができる状況において用いられてもよい。第２のインク集合は、第１の集合の部分集合であってもよい。第２のインク集合は、第１の集合と交差する構成部材を含んでもよく、第１の集合と共通の構成部材を備えていなくてもよい。
【００４６】
種々のインク集合におけるインクは、同一のメーカまたは異なるメーカによって製造されてもよく、および／または同一の基板または異なる基板を着色して用いてもよい。
【００４７】
（排他）
第１の色域および第２の色域（いずれから導出されてもよい）の重複を表す包を生成することに加えて、本発明はまた、第１の色域と第２の色域との間の少なくとも１つの排他領域を識別するために用いられてもよい。この動作は、図２の動作ブロック５６に示されている。
【００４８】
本発明の別の態様によれば、第１の包２０および第２の包３４は、第１の包と第２の包との間の少なくとも１つの排他領域を規定する第３の包を生成するような方法で結合されてもよい。また、好ましい事例では、第３の包は、複数の境界面５８によってまとめて規定される。第３の包６０によって規定される排他領域は、図６Ａおよび図６Ｂの詳細な線図に参照符号６０Ａ、６０Ｂによって示されているように、３次元色空間において互いから切り離される部分を含みうることも可能である。排他領域の面上またはそれによって包囲される体積の内部に配置される各点は、第１の色域内であるが、第２の色域の中に含まれない色を表す。分かりやすくするため、第３の包６０を規定する面の一部のみが図６Ｂにおいて参照符号によって示される。
【００４９】
排他領域を表す第３の包を生成するための第１の包および第２の包の結合は、任意の方法で実現されてもよいが、差演算などのブール演算が好ましい。当然のことながら、等価な結果を生じる１つまたは複数の他のブール演算を用いてもよい。第１の色域と第２の色域との間の排他領域を表す包６０を生成するためにブール差演算を用いることは、順序依存演算である。したがって、第２の色域から第１の色域を引いた差を表す包６０は、第１の色域から第２の色域を引いた差を表す包とは異なる。
【００５０】
（体積）
重複領域および排他領域を表す包を作製することに加えて、第１の色域および第２の色域を比較するために本発明の原理を他の態様で適用してもよい。
【００５１】
一旦、第１の包２０または場合によっては第２の包３４が生成されると、これらの包のそれぞれによって包囲される３次元空間の体積を計算し、（両方の体積が計算される場合には）比較してもよい。これらの動作ステップは、図２の動作ブロック６２、６４によって示される。
【００５２】
既に述べたように、包の内部に包囲される体積は、包によって表される色域の実寸に関する指標となる。したがって、直接的な体積の比較は、所与の系の彩色可能性に関する指標となる。
【００５３】
動作ブロック６６、６８に示されている態様に適用されるときには、体積の比較はきわめて重要である場合がある。これらの場合には、第１の包２０または第２の包４５の少なくとも１つのほか、第１の包および第２の包の重複を表す第３の包５４の体積（ブロック６６）または包（ブロック６８）の排他（差）を表す包６０のすべての領域の体積が、計算される。
【００５４】
重複している包の体積と第１の包または第２の包の一方の体積との間の体積の比較は、他の包によって表される色域、すなわち「目標」が１つの包によって表される色域と重複する範囲の直接の目安となる。
【００５５】
たとえば、第１の包２０の体積および第３の（重複する）包５４の体積の計算および比較は、第２の色域（第２の包３４によって表される「目標」色域）が包２０によって表される第１の色域とどの程度重複するかに関する指標となる。逆に言えば、第２の包３４の体積および第３の包５４の体積の計算は、第１の色域（第１の包２０によって表される）が包３４によって表される第２の色域とどの程度重複するかに関する指標となる。
【００５６】
第１の包から第２の包を引いた差（すなわち包１−包２）の場合には、差分包の体積を第１の包の体積と比較することは、第１の包のどの程度が第２の包に達すことができないかに関する指標となる。
【００５７】
（輪郭）
本発明のさらに別の実施形態によれば、一旦、第１の包および第２の包が生成されると、第１の包と第２の包との間の位置ずれの程度の定性的な測定を行ってもよい。この動作は、図２の動作ブロック７２に示されている。
【００５８】
色空間における所定の基準線に沿った複数の位置のそれぞれに関して、第１の包および第２の包の一方または両方とその基準線に垂直な平面との交差によって生成される輪郭の視覚表示を生成してもよい。そのように生成された種々の輪郭図の中の比較を用いて、基準線に沿った第１の包および第２の包の整列の程度を定性的に確認してもよい。任意の基準線を選択してもよいが、色空間の軸の１つを利用することが好都合である。
【００５９】
本発明のこの態様は、図７Ａ〜図７Ｆに示される一連の図を参照すると最も理解されると思われる。これらの図では、色空間における所定の基準線はｂ＊軸（図５Ａの平面における「垂直」軸）である。ｂ＊軸に沿って選択された表示位置が表示平面Ｖ１〜Ｖ７として示されている。それらの表示平面に沿ってそれぞれ生成された表示がそれぞれ図７Ａ〜図７Ｇに示されており、Ｌ＊−ａ＊平面（図７Ｄ）およびＬ＊−ａ＊平面に平行な平面（図７Ａ〜図７Ｃ、図７Ｅ〜図７Ｇ）における第１の包および第２の包の輪郭を示している。第１の包２０の輪郭は実線で示され、第２の包３４の輪郭は破線で示されている。
【００６０】
種々の輪郭のこれらの図は、色域の重複を決定する別の方法を提供する。
【００６１】
（色域における点）
色域の比較におけるさらに別の有用な手段は、３次元色空間における所定の点に対応する所定の候補の色が所与の媒体上で色生成装置によって生成されることができる色域の中にあるかどうかに関して決定することである。たとえば、図３を参照すると、座標（Ｌ＊ｘ，ａ＊ｘ，ｂ＊ｘ）を有する色点Ｐｘのような点が包２０によって表される色域の中にあるかどうかを決定することが重要であることが多い。
【００６２】
本発明の特徴は、決定前に、見本色点の集合１４および所定の色点Ｐｘが見本色点および所定の色点の色空間における値から決定される倍率に応じて拡大縮小されることである。
【００６３】
プログラムを実行するプログラミングコンピュータが整数計算を用いて動作中である場合には、これらの点のすべてから導出された倍率に応じて点（所定の点と合わせた見本データ集合）を拡大縮小することにより、小弟の点が包の中に含まれているかどうかに関する決定のコンピュータ実行の精度を最大まで向上させる。
【００６４】
（本発明のコンピュータ実行に関する詳細な説明）
コンピュータ読取り可能媒体に搭載され、本発明の方法（本願明細書では「色域可視化」と呼ぶこともある）を実行するための計算システムを構築する際に有用なプログラムの一部の例が、本願明細書の以下の部分に記載されている。
【００６５】
付随するコードを「可視化ツールキット（Ｖｉｓｕａｌｉｚａｔｉｏｎ  ＴｏｏｌＫｉｔ）」（または「ＶＴＫ」）を用いて書かれたプログラムを実行することができ、ＯｐｅｎＧＬグラフィックスをサポートする計算プラットフォームで実行してもよい。そのような計算プラットフォームは、マイクロソフト・ウィンドウズ（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標））オペレーティングシステム、ウィンドウズ９５（Ｗｉｎｄｏｗｓ（登録商標）  ’９５）またはそれ以降（たとえば、ウィンドウズＮＴ／２０００（Ｗｉｎｄｏｗｓ（登録商標）  ＮＴ／２０００））またはユニックス（Ｕｎｉｘ（登録商標））オペレーティングシステム（たとえば、ＳＧＩ  イリックス（ＳＧＩ  Ｉｒｉｘ）で動作するパーソナルコンピュータおよび関連ディスプレイであってもよい。
【００６６】
一般的に言えば、本発明を実行するプログラムは、２つの言語「Ｔｃｌ／Ｔｋ」および「Ｃ＋＋」で書かれている。「ティクル・ティーケイ（Ｔｃｌ／Ｔｋ）」に関する詳細は、（非特許文献２）をはじめとする多数のテキストおよびガイドに記載されている。Ｃ＋＋言語用の基本的な参考文献は、（非特許文献３）である。
【００６７】
コードはまた、「可視化ツールキット（Ｖｉｓｕａｌｉｚａｔｉｏｎ  ＴｏｏｌＫｉｔ）」からオブジェクトを利用する。「可視化ツールキット（Ｖｉｓｕａｌｉｚａｔｉｏｎ  ＴｏｏｌＫｉｔ）」は、オープンソースであり、３次元コンピュータグラフィックス、画像処理および可視化のための自由に利用可能なオープンソースのソフトウェアシステムである。ＶＴＫの専門的なサポートおよび製品は、ニューヨーク州クリフトンパークのキットウェア・インコーポレーティッド（Ｋｉｔｗａｒｅ，Ｉｎｃ．）（Ｃｌｉｆｔｏｎ  Ｐａｒｋ，ＮＹ）によって提供されている。
【００６８】
本願明細書で用いられるＴｃｌインタプリタは、ＶＴＫのＣ＋＋実現のためのラッパであり、ＶＴＫ計算は標準的なＴｃｌ言語を拡張するコマンドによって実行されることができることを意味している。
【００６９】
ＶＴＫは、科学データの可視化用の「オブジェクト指向」ソフトウェア開発キットである。その機能性は、オブジェクトクラスライブラリの形で実行される。タスクを実行するために、適切なオブジェクトが、関連するクラスライブラリの「インスタンス」として生成される。これらのオブジェクトは、必要に応じて実行する「パイプライン」に順に接続される。
【００７０】
迅速な本発明の実行に用いられるさまざまな特定のＶＴＫオブジェクトクラスが、コードのラインの最初の３文字として文字「ｖｔｋ」を添えたリストのテキストに示されている。
【００７１】
本発明を実行するプログラムを含む６つの基本的なファイルがある。これらのファイルは、以下の通りである。
ｇａｍｕｔｓ．ｔｃｌ―最初に実行されるフロントエンドコードである。グラフィックスをセットアップし、コードファイル「ｇａｍｕｔｓ＿ｃｍｄｓ．ｔｃｌ」および「ｇａｍｕｔｓ＿ｉｎｔ．ｔｃｌ」を実行する。
ｇａｍｕｔｓ＿ｃｍｄｓ．ｔｃｌ―Ｔｃｌ手続きの大部分が定義されるコードのこのモジュールに含まれる。
ｇａｍｕｔｓ＿ｉｎｔ．ｔｃｌ―グラフィカルユーザインターフェイス（ＧＵＩ）を定義するコードの大部分が、ここにある。但し、「ｃｏｎ」（輪郭）コマンドに関連する「スライダ（ｓｌｉｄｅｒ）」などのコマンドに関連するインタラクタは別である。
ｃｏｌｏｒｓ．ｔｃｌ―利用可能な色名が個々で定義される。
ｈｕｌｌ．ｅｘｅ―Ｃ＋＋で書かれたソースを有する実行可能なバイナリであり、凸包を計算する。
ｉｎｐｏｌｙ．ｅｘｅ―Ｃ＋＋で書かれたソースを有する実行可能なバイナリであり、手続き「ａｄｐＩｎＰｏｌｙ」用の「多面体中の点」の試験を行う。
【００７２】
Ｃ＋＋実行可能なバイナリ「ｈｕｌｌ．ｅｘｅ」は、ＡＮＳＩ  Ｃ＋＋プログラムで書かれたプログラム用であり、一般的な寸法に設定された点の凸包を計算する。入力は点のリストであり、出力は点の凸包のファセットのリストであり、各ファセットは、点のリストの中に指標のついた整数として表されるその頂点のリストとして提供される。プログラムはまた、デローニー三角形分割およびアルファ形状およびボロノイ領域の体積を計算することもできる。
【００７３】
プログラム「ｈｕｌｌ」は、米国ニュージャー州マリーヒルのエーティー・アンド・ティー・ベル・ラボラトリーズ（ＡＴ＆Ｔ  Ｂｅｌｌ  Ｌａｂｏｒａｔｏｒｉｅｓ（Ｍｕｒｒａｙ  Ｈｉｌｌ，ＮＪ，ＵＳＡ））（編集者：エリック・グロス（Ｅｒｉｃ  Ｇｒｏｓｓｅ）および米国テネシー州ノックスヴィル（Ｋｎｏｘｖｉｌｌｅ，ＴＮ，ＵＳＡ）のテネシー大学（Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｔｅｎｎｅｓｓｅｅ）およびオークリッジ国立研究所（Ｏａｋ  Ｒｉｄｇｅ  Ｎａｔｉｏｎａｌ  Ｌａｂｏｒａｔｏｒｙ）（編集者：ジャック・ドンガラ（Ｊａｃｋ  Ｄｏｎｇａｒｒａ））によって維持されているリポジトリ「ネットリブ（Ｎｅｔｌｉｂ）」を通じて入手可能である。収集物は、世界中の複数のサイトで複製されており、自動的に同期化され、信頼性の高いネットワークの有効なサービスを国際社会に提供している。これは、ベル・ラボラトリーズ（Ｂｅｌｌ  Ｌａｂｏｒａｔｏｒｉｅｓ）のコンピューティング・サイエンシーズ・リサーチ・センター（Ｃｏｍｐｕｔｉｎｇ  Ｓｃｉｅｎｃｅｓ  Ｒｅｓｅａｒｃｈ  Ｃｅｎｔｅｒ）のＫ．クラークサン（Ｋ．Ｃｌａｒｋｓｏｎ）によって元々書かれていた。
【００７４】
Ｃ＋＋実行可能なバイナリ「ｉｎｐｏｌｙ．ｅｘｅ」は、（非特許文献４）で示されたコードからごくわずかな変更を加えて採用している。
【００７５】
ＶＴＫは、下位のグラフィックスサービス用のより基本的なＯｐｅｎＧＬ３次元インタラクティブグラフィックスライブラリーで階層構造になっている。ＯｐｅｎＧＬは、３次元グラフィックスに関する国際的な事実上の標準である。この話題に関する標準的な参考文献は、（非特許文献５）である。
【００７６】
ＧＵＩ（「グラフィカルユーザインターフェイス」）は、Ｔｃｌへの拡張であるＴｋツールキットを用いたＴｃｌで実行される。
【００７７】
アーキテクチャに関して、本発明のプログラム実行に関する構造チャートは、以下のように現れる。
【００７８】
【数１】
2006507769.tif 000003
【００７９】
２つのファイルを連結する線は、線の上端にあるファイルのコードが下端にあるファイルを実行することを意味する。Ｔｃｌの「双方向パイプ」は、太線および星印として示されている。
【００８０】
本願明細書に記載されているコードセグメントは、エラーチェックと、詳細な説明には不必要な関数と、を除くことによって簡素化されていることを理解すべきである。コードセグメントの部分は、元のＴｃｌ言語で記載されている。しかし、コードの他の部分は、提示のために簡素化されるか、または簡素な擬似コードで置換されている。本願明細書に提示されたコードの部分は、提示のために簡素化されるか、またはコード関数を要約したコメントによって置換されている。コメントは、コメントの各行につき、１つおよび２つの列に「＃＃」によって示されている。
【００８１】
本願明細書に含まれる以下のコマンドを実行するコードは、
「ｈｕｌ」は、凸包を計算し、ブロック４６、４８（図２）を実行し、
「ｉｎｔ」コマンドは、色域の交差を計算し、ブロック５０（図２）を実行し、
「ｄｉｆ」コマンドは、色域の差を計算し、ブロック５６（図２）を実行し、
「ｖｏｌ」コマンドは、色域の体積を計算し、ブロック６２、６４、６６および６８（図２）を実行し、
「ｃｏｎ」コマンドは、色域の輪郭を表示し、ブロック７２（図２）を実行し、
「ａｄｐ」コマンドは、試験点が色域の中にあるかどうかを決定し、ブロック７６（図２）を実行する。
【００８２】
オブジェクトが表示される態様の実例もまた、含まれている。
【００８３】
（包の生成）
３次元包（たとえば、図１の包２０、３４）、すなわち色域の境界を表す面の数学的記述は、見本色点（図２のブロック４６、４８）から生じる。
【００８４】
最も好ましい事例では、包は、「凸包」として一般に周知である技術によって記述される。しかし、一部の事例では、説明したように、「アルファ包」と呼ばれる技術によって記述されてもよい。
【００８５】
凸包は、データ点を含む最小の凸集合の境界である。集合における２つのデータ点を連結する直線セグメントもまた集合に包含される場合に限り、集合は凸である。この物理的な意味は、色域における２つの色の間の任意の線形補間もまた、色域に包含されることである。
【００８６】
Ｔｃｌプログラムコードの「ｈｕｌ」セグメントは、ファイル「Ｉｎｐｕｔｆｉｌｅ」に含まれる見本色点のリストから凸包を計算する。
【００８７】
「ｈｕｌ」コマンドに用いられる手続きの構造チャートは、以下の通りである。
【００８８】
【数２】
2006507769.tif 000004
【００８９】
【数３】
2006507769.tif 000005
【００９０】
【数４】
2006507769.tif 000006
【００９１】
【数５】
2006507769.tif 000007
【００９２】
凸包はまた、（非特許文献６）および（非特許文献７）に記載されているような種々の公開されたアルゴリズムを用いて計算されることができる。
【００９３】
一般に、凸包は常に、包の表示に関する初期推定値として常に用いられる。図８Ａに示される凸包８０は、任意のデータ集合の図表示である。包８０の上半球８２に沿った大きな空の部分の存在により、当業者は、生成された特定の面は境界の見本色点に十分に適合しないという結論を下すことになる。色生成システムは、凸包によって適切に記述されない恐れがある。そのような場合には、次に「アルファ包」が用いられる。
【００９４】
アルファ包は、「アルファ形状」として周知である点、線、三角形および四面体の集合から導出される。「アルファ形状」は、（非特許文献８）および（非特許文献９）に説明されている。
【００９５】
アルファ形状の概念は、空間集合に関する「形状」の直感的な概念を様式化するための手法である。有限の点集合が与えられると、形状の仲間を点集合の三角形分割から導出することができる。入力見本点の３次元デローニー三角形分割法において、各四面体に関する包囲球があり、四面体の４つの頂点を含み、他の点を含まない。その包囲球の半径がアルファと呼ばれる実変数より大きい場合には、四面体はデローニー三角形分割法から除去される。四面体の除去後、残っているものが、点、線、三角形および四面体の集合であり、共に変数アルファに対応するアルファ形状を生成する。本願明細書で用いられるとき、「アルファ包」なる語は、球に位相幾何的に等価である最大の残余３次元面である面を指す。伸ばす、曲げる、ねじる、または裂く、穴を開けるまたは自己交差を生じることのない面を含みうる変形によって、球の面に構成することができる場合に限り、面は球と位相幾何的に等価である。幾何モデル化における位相幾何学に関する基本的な参考文献は、（非特許文献１０）である。
【００９６】
アルファ形状を計算するために、市販のソフトウェアを用いることが好都合である。そのようなソフトウェアには、包およびｖｔｋＤｅｌａｕｎａｙ３Ｄに用いられる「包」ソフトウェアが含まれる。より滑らかな面が通常得られることから、ＶＴＫオブジェクトクラスｖｔｋＤｅｌａｕｎａｙ３Ｄが好ましい。
【００９７】
同一のデータ集合のアルファ包表示が、図８Ｂの８０Ａで示されている。
【００９８】
本発明の実行において、色データの集合から包を計算するための複数のルーチンを用いることが望ましい場合がある。ルーチンは、色データによって分類され、最も外側の点のみから包を構築する。色集合における点は、包の面上にあるように予め選択される必要はなく、すべての点を包の頂点として用いる必要もない。言い換えれば、色集合は、最も鮮やかな点を含む必要があるが、それらの点のみから構成される必要はない。
【００９９】
（頂点の順序および体積計算の標準化）
２つの包の重複領域および排他領域の世代に関するコードを検討する（ブロック５０、５６）前に、コード実行の２つの態様、すなわち頂点の順序および体積計算の標準化ｖｉｚ．について説明する必要がある。
【０１００】
（１．頂点の順序）
包の外側から見た場合、反時計回りの順序で包の面の三角形の座標を列挙することが好ましいと考えられる。「ｈｕｌｌ．ｅｘｅ」から返され、ファイル「ｓｅｔ  ｐｏｌｙｄａｔａ  ＄｛ｎａｍｅ｝ＧａｍＰｏｌｙＤａｔａ」に格納される三角形の頂点は、一貫性のある態様で列挙されているが、その態様は、すべての時計回りまたはすべて反時計回りのいずれかであってもよい。三角形のすべてに外側に向かう垂線を有するようにさせるために、第１の三角形を通る平面に対する垂線は、右手の指が頂点の方向に螺旋状に巻きつくとき、親指が垂線の方向を指すように選択される。次に、第２の三角形の頂点が、第１の三角形に関する平面の式に対して検査される。平面において垂線と同一の側にある場合には、頂点がすべての三角形に関して列挙される順序が反転される。そうでない場合には、正しい順序であり、変更しないままである。
【０１０１】
プログラムルーチン「Ｂｏｏｌｆｌｉｐ」は、頂点のこの反転を行い、包を生成するルーチンでは垂線の「反転」は重複領域および排他領域を表す。
【０１０２】
【数６】
2006507769.tif 000008
【０１０３】
【数７】
2006507769.tif 000009
【０１０４】
（２．色域体積の計算）
包内部に含まれる体積は、ブロック６２、６４および６６において計算される。多面体の体積を計算するための公知の方法は、（非特許文献１１）に記載されている。
【０１０５】
この方法では、体積は、ベクトル計算の「発散定理」を用いて計算される。
【０１０６】
【数８】
2006507769.tif 000010
【０１０７】
式中、
【０１０８】
【数９】
2006507769.tif 000011
【０１０９】
（非特許文献１１）に記載されたこの定理の離散バージョンは、Ｖｔｋオブジェクト「ｖｔｋＭａｓｓＰｒｏｐｅｒｔｉｅｓ」に用いられるアルゴリズムの原理を提供する。体積の計算に関するこのＶｔｋオブジェクトの使用の「ｖｏｌ」セグメントが好ましい実施形態である。
【０１１０】
簡素化された形では、アルゴリズムは、以下のように動作する。
【０１１１】
【数１０】
2006507769.tif 000012
【０１１２】
【数１１】
2006507769.tif 000013
【０１１３】
多面体の体積を計算するための別の公知の方法は、（非特許文献１２）に開示されている。
【０１１４】
（包の重複）
２つの包の重複領域（ブロック４６）は、第１の包２０および第２の包３４のブール交差である新しい包５４（図５Ａ、５Ｂ）を生成することによって実現される。本発明の実行の好ましい事例では、２つの包は凸でなければならず、両方の凸包に関する垂線は外側に向かわなければならない。
【０１１５】
重複を計算するためのアルゴリズムは、平面が以下の式によって定義される面であると見なす。
ａ＊ｘ＋ｂ＊ｙ＋ｃ＊ｚ−ｄ＝０
【０１１６】
この平面に対応する半空間は、不等式によって定義されることができる。
ａ＊ｘ＋ｂ＊ｙ＋ｃ＊ｚ−ｄ＜＝０
【０１１７】
これは、半空間の境界である平面を含む。
【０１１８】
点（ｘ，ｙ，ｚ）は、不等式を満たす場合には半空間の内側にある。そうでない場合には、外側にある。
【０１１９】
３次元凸集合およびその境界は、半空間の集合の交差と等価である。各半空間は、凸集合を包囲する凸包中の三角形の１つを通る平面に対応する。
【０１２０】
重複を定義するため、各平面を表す大きな矩形が新たな凸包の多角形を生成するために、他のすべての平面に対して「切り取られる」。平面による多角形の「切り取り」は、切り取るために用いられる平面に対応する半空間の外側にある多角形の部分を切り離すことを意味する。
【０１２１】
「ｉｎｔ」コマンドは、色域の重複の生成を実行する。各凸包に関する包囲平面は、各平面が平面における点および平面に対する垂線によって表される形に変換される。次に、両方の凸包に関する境界平面がｖｔｋＨｕｌｌオブジェクトに供給される１つの集合に結合される。
【０１２２】
ｖｔｋＨｕｌｌの中でＧｅｎｅｒａｔｅＨｕｌｌ法が実行されるとき、重複包を定義する多角形の集合が計算される。次いで、任意の他の包のように、結果として生じる重複包を処理することができる。重複包を表示（たとえば、図５Ａ、５Ｂ）してもよく、さらに演算を行ってもよい。実際には、コードセグメント「ｉｎｔ」は、ｖｔｋ「Ｍａｓｓｐｒｏｐ」を呼出し、重複包の体積および第１の包の体積および第１の入力包の体積に対する重複包の体積の割合を計算する。
【０１２３】
「ｉｎｔコマンド」に用いられる手続きを示す構造チャートは、以下の通りである。
【０１２４】
【数１２】
2006507769.tif 000014
【０１２５】
「ＢｏｏｌＰｌａｎｅｓ」は、包を包囲する平面を定義する点および垂線を計算する。「ＢｏｏｌＨｕｌｌ」は、「ｉｎｔコマンド」用の凸包を計算する。「ＢｏｏｌＦｌｉｐ」は、上述のように、外側に向かわない場合には、包を生成する三角形の垂線を標準化する。
【０１２６】
「ｉｎｔコマンド」に関するコードは、以下の通りである。
【０１２７】
【数１３】
2006507769.tif 000015
【０１２８】
【数１４】
2006507769.tif 000016
【０１２９】
【数１５】
2006507769.tif 000017
【０１３０】
ブール演算子交差が第１の包および第２の包の重複を計算する好ましい方法であるが、別のブール演算子または等価な結果を生成する演算子の結合を用いてもよいことを十分に理解すべきである。たとえば、Ａ＾Ｂは、等価な表現（Ａ｜Ｂ）｜（Ａ｜Ｂ）によって置換可能である。式中、Ａ｜Ｂは、−（Ａ＾Ｂ）に等価である［−ＸはＸから除外されたすべてである］。演算子「｜」は、「否定論理積（ＮＡＮＤ）」と呼ばれることが多い。別の例として、合併「Ｕ」を用いて、以下のように交差と等価な結果を実現してもよい。Ａ＾Ｂ＝ＡＣ  Ｕ  ＢＣ）Ｃ
式中、記号「Ｃ」は、添え字を表す。
【０１３１】
（排他領域（包の差））
第１の包２０および第２の包３４のブール差は、第１の包に含まれるが、第２の包に含まれない体積を定義する包６０である。差分包６０は、ブロック５６（図２）において計算され、複数のセグメント６０Ａ、６０Ｂ（図６Ａ、図６Ｂ）に含まれうる。この場合も先の事例と同様に、本発明の実行の好ましい事例では、２つの包は凸でなければならず、両方の凸包に関する垂線は外側に向かわなければならない。
【０１３２】
暗黙のモデル化を用いた差の計算は、３次元格子で行われる。格子点上に定義される「暗黙の関数」は、各色域から導出される。点における暗黙の関数値は、色域の境界からの点の符号付きの距離に過ぎない。点における負の暗黙の関数値は、色域に対応する凸領域の内側にある。正の値は、点が色域の外側にあることを示す。たとえば、三線補間を用いて、格子点間の暗黙の関数値を決定することができる。色域の差に関する境界または包は、暗黙の関数値がゼロである点の軌跡となる。言い換えれば、ｆｕｎｃ（ｘ，ｙ，ｚ）が色域の暗黙の関数である場合には、色域の包はｆｕｎｃ（ｘ，ｙ，ｚ）＝０である点の集合である。これはまた、０の値に対応するｆｕｎｃ（ｘ，ｙ，ｚ）の「等値面」とも呼ばれる。
【０１３３】
その色域に関する三角形によってループを生成し、色域の包を構成する三角形のそれぞれまでの距離を計算することによって、色域から点の距離が計算される。これらの距離の最小値が、色域までの距離である。最小値を生成する三角形である可能性を考慮して、多くの三角形を迅速に除去することによって、この計算を高速化するために種々の方策を用いることができる。包が凸である場合には、点は包を包囲する平面に関する平面の式のそれぞれにおいて評価することによって、点が包の内側にあるかどうかを決定することができる。点が包の内側または包の面上にあるようにするために、すべての平面の式をゼロ以下の数まで評価しなければならない。点が実際に色域である場合には、色域までのその距離は負に設定される。
【０１３４】
記述したばかりの距離フィールドの計算に基づき、暗黙の関数に関するブール集合の演算は、以下のようにさらに説明される。
【０１３５】
【数１６】
2006507769.tif 000018
【０１３６】
好ましい実行において、計算は、オブジェクトクラスｖｔｋＣｏｎｔｏｕｒＦｉｌｔｅｒ、ｖｔｋＩｍｐｌｉｃｉｔＢｏｏｌｅａｎ、ｖｔｋＰｌａｎｅｓおよびｖｔｋＳａｍｐｌｅＦｕｎｃｔｉｏｎによって円滑に行われる。
【０１３７】
格子点の密度を増大することによって、必要に応じて正確に計算を行うことができるが、計算時間の増大を伴う。同一の格子点を用いて精度を増大する別の方法は、（非特許文献１３）のｐ．２５１〜２６６に記載されるようなガウス形としての面に垂直に衰えるように、距離をフィルタリングすることである。
【０１３８】
特にＧａｍＤｉｆｆがその上に定義される格子が高解像度である場合には、この等値面はきわめて多数の三角形から構成される。これらの三角形の多くは実際に共平面またはユーザ指定のエラー閾値の中でほぼ共平面である。したがって、ｖｔｋＤｅｃｉｍａｔｅＰｒｏオブジェクトクラスで利用可能な間引きアルゴリズムを用いることによって、三角形の数を減少させ、幾何構成を簡素化することができる三角形メッシュ間引き方法について記載されている。たとえば、（非特許文献１４）および（非特許文献１５）参照。
【０１３９】
「ｄｉｆコマンド」に用いられる手続きを示す構造チャートは、以下の通りである。
【０１４０】
【数１７】
2006507769.tif 000019
【０１４１】
「ＢｏｏｌＰｌａｎｅｓ」および「ＢｏｏｌＦｌｉｐ」の両方は、「ｉｎｔコマンド」に関連して説明した目的のために動作する。「ＢｏｏｌＣｏｎｔｏｕｒ」は、「ｄｉｆ」コマンドに関する凸包を計算する。
【０１４２】
「ｄｉｆコマンド」に関するコードは、以下の通りである。
【０１４３】
【数１８】
2006507769.tif 000020
【０１４４】
【数１９】
2006507769.tif 000021
【０１４５】
ブール演算子差が第１の包および第２の包の排他を計算する好ましい方法であるが、別のブール演算子または等価な結果を生成する演算子の結合を用いてもよいことを十分に理解すべきである。たとえば、Ａ−Ｂは、等価な表現（Ａ｜Ｂ｜Ａ）｜（Ａ｜Ｂ｜Ａ）によって置換可能である。式中、Ａ｜Ｂは、−（Ａ＾Ｂ）に等価である［−ＸはＸから除外されたすべてである］。演算子「｜」は、「否定論理積（ＮＡＮＤ）」と呼ばれることが多い。
【０１４６】
（輪郭）
「ｃｏｎ」コマンドは、ブロック７２の動作を実行し（図２）、図７Ａ〜図７Ｇに示される色域輪郭を表示する。以下に記載されるコードは、Ｌ＊対ａ＊平面の図、すなわちｂ＊軸に沿った図を生じ、同一の図が図７Ａ〜図７Ｇに示されている。
【０１４７】
このコマンドは、イベントドリブンである。表示される輪郭は、軸の位置のスライディングスケールを実行するために（「スライダ」）、マウスを用いて演算子によって選択された基準軸（表示平面）に沿った位置に基づいている。
【０１４８】
「ｃｏｎ」コマンドに用いられる手続きを示す構造チャートは、以下の通りである。
【０１４９】
【数２０】
2006507769.tif 000022
【０１５０】
ルーチン「ｃｏｎＲｅｍ」は、既存の輪郭と関係があるすべてを除去する。計算用のメインドライバは、ルーチン「ｃｏｎＡｄｄ」である。
【０１５１】
「ｃｏｎコマンド」に関するコードは、以下の通りである。
【０１５２】
【数２１】
2006507769.tif 000023
【０１５３】
【数２２】
2006507769.tif 000024
【０１５４】
（色域における点）
「ａｄｐコマンド」は、所与の色を代表する試験点Ｐｘが色域の中にあるかどうかを決定するために、ブロック７６の動作（図２）を実行する。色域を表す包は、凸包またはアルファ包のいずれであってもよい。
【０１５５】
包内部の点の閉じ込めを試験するために、本発明を実行する際に用いられる方法は、不規則な方向に点から光線を向けて、包が属する三角形との交差数を計数することである。奇数のヒットは、試験点が包の内側にあることを示す。
【０１５６】
劣化する交差（たとえば、面をかすめて通るだけまたは隅と交差する）は検出されるが、解析されるわけではない。別の光線が、不規則に選ばれた方向に向けられ、処理を繰り返す。劣化する交差の確率が約１％に過ぎない場合には、試験点に関する３本以上の構成を向けることが必要になることはほとんどない。
【０１５７】
理論において、包が凸以外である場合の閉じ込めに関する試験には、信頼性がない。しかし、本発明の実施形態として開発されたコードは、かなり信頼性があった。（非特許文献４）に提示されたコードからごくわずかな変更を加えて採用した。
【０１５８】
このテキストのコードは、Ｃ＋＋コンピュータ言語で書かれている。採用したコードは、標準的なｔｃｌ機能「双方向パイプ」を用いて本発明を実行するために用いられたコード（ｔｃｌ言語で書かれた）のメモと整合している。
【０１５９】
堅牢性を実現するために、コンピュータ浮動小数点演算に伴う問題を避けるために、試験点の実座標を大きな整数に変換することによって計算が行われる。同様に、包の頂点の座標が大きな整数に変換される。整数座標における大きな桁の最大の数を可能な限り大きくするために、整数は、通常の整数演算を用いるのではなく、ＩＥＥＥ６４ビット浮動小数点表示の仮数部を用いてが格納および処理される。
【０１６０】
点を試験するために用いられる包の頂点の座標および試験点の座標の最大絶対値に基づいて、実数から整数に適切に変換するために用いられる倍率を決定するために、拡大縮小機能が具備される。このような態様の拡大縮小は、計算プラットフォームの具体的なハードウェア構成によって提供される利用可能な記録空間を超えることなく、最大の計算精度が実現されることを保証する。
【０１６１】
試験点が色域にあるかどうかを決定するための「ａｄｐ」コマンドによって用いられる手続きを示す構造チャートは、以下の通りである。
【０１６２】
【数２３】
2006507769.tif 000025
【０１６３】
手続き「ａｄｐＡｄｄ」の目的は、計算用のメインドライバである。別の色域に対して試験するため、またはその色を変更するために、点を再入力することができることから、手続き「ａｄｐＲｅｍ」は、既存の点と関係があるすべてを除去する。
【０１６４】
手続き「ａｄｐＩｎＰｏｌｙ」は、試験点が色域にあるかどうかを決定する手続きである。上記で概略を述べたように、実際の試験手続きは、双方向パイプ上でコンパイルされ、「ｉｎｐｏｌｙ．ｅｘｅ」にリンクされた外部のＣ＋＋プログラムによって実行される。双方向パイプは、星印を有する太線で示されている。
【０１６５】
「ａｄｐコマンド」に関するコードは、以下の通りである。
【０１６６】
【数２４】
2006507769.tif 000026
【０１６７】
【数２５】
2006507769.tif 000027
【０１６８】
（出力表示）
各包は生成されるが、穴のない頂点をなす三角形によって生成される３次元ＣＩＥ  Ｌ＊ａ＊ｂ＊系空間における面である。各三角形は、頂点座標のリストに添え字をつける３つの整数のリストとして与えられる。
【０１６９】
このデータ構造は、「三角形メッシュ」と呼ばれる。３次元グラフィックスソフトウェアライブラリを用いることによって、コンピュータディスプレイまたはプリンタなどの出力装置上に表示されることができる。そのようなライブラリの１つは、本願明細書で述べたようなオブジェクト指向ツールキットＶＴＫである。ＶＴＫは、ＯｐｅｎＧＬとして周知の３次元グラフィックスＡＰＩ（アプリケーションプログラマインターフェイス）を用いて出力装置に接続する。ＶＴＫは、ＯｐｅｎＧＬ上で階層構造をなしており、グラフィックスハードウェアが行うことにより近い低位の機能性を有する。
【０１７０】
好ましい実施形態において、ソフトウェアは、さまざまな態様で包の外観および配向を制御するために用いられる。色域の包の色および不透過度を制御することができる。面の三角形の頂点を示すことができる。包の配向、すなわち読取られる観測軸を変更することができる。頂点を連結する線として、包を表示することができる。指定された平面における各包の輪郭を決定するために、包をスライスする（すなわち、断面に切る）ことができる。スライダを操作することによって、見ている人の目からスライスした平面までの距離を動的に変更することができる。２つ以上の包は、色域の重複を可視化するために、別の態様で提供すると同時に、グラフィックスビューポートに表示されることができる。また、必要に応じて、包と共に、ユーザが指定した点を表示することができる。
【０１７１】
以下の２つのコードセグメントは、オブジェクトが表示される態様を実演している。ＶＴＫによって提供されるオブジェクト指向グラフィックスを用いる場合には、表示対象の「場面」を記述することが必要である。オブジェクト指向グラフィックスパッケージは、場面の記述から絵を構成する（すなわち、場面をレンダリングする）。
【０１７２】
論理的にものを表示するためのコードは、２つの部分に分かれる。第１のタスクは、ディスプレイグラフィックスウィンドウ、デバイスインタラクションハンドラおよびレンダリングシステムをセットアップすることである。第２のタスクは、パイプラインの集合の形で場面の記述を提供することである。表示対象の各オブジェクト（「アクタ」と呼ばれる）は、その機能性を供給するために必要な他のオブジェクトと共に連結して、駆動するパイプラインを有する。
【０１７３】
グラフィックスウィンドウをセットアップするためのコードは、すべてのアクタによって共有される。このコードは、ファイルｇａｍｕｔｓ．ｔｃｌ」に含まれる。簡素化した形では、コードは、以下の通りである。
【０１７４】
【数２６】
2006507769.tif 000028
【０１７５】
【数２７】
2006507769.tif 000029
【０１７６】
上記に記載したような本発明の教示の利益を有する当業者は、修正または拡張を行ってもよい。
【０１７７】
たとえば、発明の教示は、対象の色が複数の表示角のうちのいくつか（たとえば３つの表示角）で示されるＣＩＥ  Ｌ＊ａ＊ｂ＊系における色座標Ｌ＊ａ＊ｂ＊によって示される状況に、本発明の教示を直接拡張してもよい。たとえば、自動車塗装の塗り変え用途において、そのようなシステムが用いられる。点の色は、表示方向に左右される。３方向から色を測定することによって、十分であると考えられる。この用途をサポートするために、１つのグラフィックスディスプレイウィンドウを３つのグラフィックスディスプレイウィンドウと交換し、そのそれぞれが、１方向から３方向で測定される色に関する色域を含んでもよい。
【図面の簡単な説明】
【０１７８】
【図１】本発明の方法が有用性を見出した代表的な利用環境の様式化された図による表示である。
【図２】本発明のコンピュータ実装方法の種々の実施形態において用いられる方法ステップを示すブロック図である。
【図３】本発明の方法を実装するプログラムを用いて生成された色生成装置の色域を表す第１の包および第２の包の様式化された図表示である。
【図４】本発明の方法を実装するプログラムを用いて生成された色生成装置の色域を表す第１の包および第２の包の様式化された図表示である。
【図５Ａ】図３および図４の包の交差を示す様式化された図表示であり、交差が実線で示され、図３および図４の包が破線で示されている。
【図５Ｂ】図５Ａの交差包の分離図である。
【図６Ａ】図３の包と図４の包との間の差を含む２つのセグメントを表す様式化された図表示であり、差分包は実線で示され、図３および図４の包は破線で示されている。
【図６Ｂ】図６Ａの差分包セグメントの分離図である。
【図７Ａ】第１の包および第２の包のそれぞれの交差によって生成される輪郭を示す図５Ａのそれぞれ対応する表示線に沿って切り取った一連の表示であり、平面はそれに沿った各表示点における図５Ａの垂直軸に垂直に立てられている。
【図７Ｂ】第１の包および第２の包のそれぞれの交差によって生成される輪郭を示す図５Ａのそれぞれ対応する表示線に沿って切り取った一連の表示であり、平面はそれに沿った各表示点における図５Ａの垂直軸に垂直に立てられている。
【図７Ｃ】第１の包および第２の包のそれぞれの交差によって生成される輪郭を示す図５Ａのそれぞれ対応する表示線に沿って切り取った一連の表示であり、平面はそれに沿った各表示点における図５Ａの垂直軸に垂直に立てられている。
【図７Ｄ】第１の包および第２の包のそれぞれの交差によって生成される輪郭を示す図５Ａのそれぞれ対応する表示線に沿って切り取った一連の表示であり、平面はそれに沿った各表示点における図５Ａの垂直軸に垂直に立てられている。
【図７Ｅ】第１の包および第２の包のそれぞれの交差によって生成される輪郭を示す図５Ａのそれぞれ対応する表示線に沿って切り取った一連の表示であり、平面はそれに沿った各表示点における図５Ａの垂直軸に垂直に立てられている。
【図７Ｆ】第１の包および第２の包のそれぞれの交差によって生成される輪郭を示す図５Ａのそれぞれ対応する表示線に沿って切り取った一連の表示であり、平面はそれに沿った各表示点における図５Ａの垂直軸に垂直に立てられている。
【図７Ｇ】第１の包および第２の包のそれぞれの交差によって生成される輪郭を示す図５Ａのそれぞれ対応する表示線に沿って切り取った一連の表示であり、平面はそれに沿った各表示点における図５Ａの垂直軸に垂直に立てられている。
【図８Ａ】同一の色域を表す凸状およびアルファ状の様式化された図表示である。
【図８Ｂ】同一の色域を表す凸状およびアルファ状の様式化された図表示である。
【図１】
2006507769.tif 000030
【図２】
2006507769.tif 000031
【図３】
2006507769.tif 000032
【図４】
2006507769.tif 000033
【図５Ａ】
2006507769.tif 000034
【図５Ｂ】
2006507769.tif 000035
【図６Ａ】
2006507769.tif 000036
【図６Ｂ】
2006507769.tif 000037
【図７Ａ】
2006507769.tif 000038
【図７Ｂ】
2006507769.tif 000039
【図７Ｃ】
2006507769.tif 000040
【図７Ｄ】
2006507769.tif 000041
【図７Ｅ】
2006507769.tif 000042
【図７Ｆ】
2006507769.tif 000043
【図７Ｇ】
2006507769.tif 000044
【図８Ａ】
2006507769.tif 000045
【図８Ｂ】
2006507769.tif 000046
【国際調査報告】
2006507769.tif 000047