JPH0658677B2 - 対話式図形探索置換方法 - Google Patents

対話式図形探索置換方法

Info

Publication number
JPH0658677B2
JPH0658677B2 JP1196492A JP19649289A JPH0658677B2 JP H0658677 B2 JPH0658677 B2 JP H0658677B2 JP 1196492 A JP1196492 A JP 1196492A JP 19649289 A JP19649289 A JP 19649289A JP H0658677 B2 JPH0658677 B2 JP H0658677B2
Authority
JP
Japan
Prior art keywords
search
curve
match
screen
routine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP1196492A
Other languages
English (en)
Other versions
JPH0290366A (ja
Inventor
エイ ビア エリック
ジェイ クアランダー ディヴィッド
Original Assignee
ゼロックス コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ゼロックス コーポレーション filed Critical ゼロックス コーポレーション
Publication of JPH0290366A publication Critical patent/JPH0290366A/ja
Publication of JPH0658677B2 publication Critical patent/JPH0658677B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • G06V10/7515Shifting the patterns to accommodate for positional errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、一般には、コンピュータ支援設計(Computer
aided geometric Design,CADと略す)装置のほか、コ
ンピュータ内蔵イラスト装置や製図装置のような対話型
ディジタル合成画像編集装置、より詳細には、上記の合
成画像編集装置の性能を向上させる優れた機能を備えた
対話式図形探索置換ユーティリティを具体化する方法及
び手段に関するものである。
従来の技術 合成画像は、繰り返される幾何学的形状や繰り返される
図形的性質を含んでいることが多い。例えば、ディジタ
ルイラストの場合は、一定の色、字形又は線幅を有して
いることが多い。同様に、ディジタルイラストには、一
定の形状が繰り返して現れることがあり、また一定の形
状の場合でも、その平行移動、回転、及び拡大縮小は、
さまざまである。理解されるように、繰り返される形状
又は性質のすべての事例を、矛盾なく修正するには、デ
ィジタルイラストを“理論的に”変化させることが必要
であり、また望ましい。
従来のディジタル図形編集プログラムは、ユーザーがイ
ラストを論理的に変化させたいとき、それを手助けする
クラスタ化機能と例示化機能を備えている。ユーザー
は、クラスタ化機能により、対象を、一般に“クラス
タ”と呼ばれるグループに分類し、一定のクラスタの対
象を一単位として選択したり、操作したりすることが可
能である。クラスタ化された対象の性質、例えば、色、
線の幅、線のスタイルは、容易に、迅速に、論理的に変
更することが可能であるが、クラスタ化は、クラスタ化
した対象の形状の変更を容易するものではない。他方、
ユーザーは、例示化機能により、選択した対象がライブ
ラリ対象の“例示”であることを宣言することができ、
その宣言により、ライブラリ対象の形状や性質に対して
行われたすべての変更が、自動的にその対象のすべての
“例示”に反映される。しかし、クラスタ化機能と例示
化機能は、用途が限られている。それらの欠点の1つ
は、クラスタ化したり、又は例示化するようにイラスト
を構成しなければならないので、イラストのどの対象が
論理的編集を必要とするかを前もって決める必要がある
ことである。もう1つの欠点は、どの対象を変更すべき
か、又は変更すべきでないかをユーザーが一件一件決め
る自由がないことがである。
したがって、図形探索置換ユーティリティが要望されて
いることは明らかである。ここで用語“図形探索”と
は、直線や曲線で形成された、又は直線や曲線で囲われ
た領域で定義される対象から成る任意に作られた合成画
像から指定された図形パターンのすべての場合を見付け
る手法を言う。“図形置換”とは、一致した対象(すな
わち、ユーザー指定探索要求に一致する対象)の選択さ
れた特徴(例えば、形状、色、線の幅、線のスタイル、
テキストの字形)を、ユーザー指定置換パターンで表し
た新しい特徴で置き換える手法をいう。
上記の定義は、図形探索置換ユーティリティのさらに別
の利用を示唆している。例えば、図形対象をデータベー
スの中に記述し、伝統的なデータベース問合せ言語又は
図形対象の問合せを明確な形で表すため特に設計した新
しい言語で表現した問合せによって、それらを容易に取
り出すことができる。図形探索置換は、図形データベー
スに対するインタフェースとして使用することができ
る。図形探索置換は、曲線や曲線のグループを能率よく
見付け出すアルゴリズムを提供するばかりでなく、図面
により、さもなくば問合せの目的対象の例を定義するこ
とにより、図形問合せを簡単に表現することができる。
同様に、図形探索置換は、繰り返し形状を生成する図形
文法を具体的に述べるために使用することができる。ま
た、別に、形状文法(図形文法のサブセット)が研究さ
れ、特に写実的な像の生成に利用されている。これらの
形状文法は、既存の形状を新しい形状で置換する規則を
記述する。図形探索置換は、置換パターンの形状のほか
に、その図形的パラメータ(例えば、色、線の幅、線の
スタイル、テキストの字形)を定義するのに使用でき、
したがって形状文法の機能を拡張する。このように、図
形探索置換技術は、繰り返し形状、型板の形状や図形的
マクロの生成を手助けする使いやすい手法であることが
理解されるであろう。
発明が解決しようとする課題 また、ディジタル画像内のユーザー指定幾何学的形状の
出現を発見するために使用できるパターン認識アルゴリ
ズムが開発されている。それらのアルゴリズムの一部
は、図形探索置換操作の探索フェーズを実行するのに適
している。しかし、ディジタル図形編集プログラムによ
って生成された画像内のパターンの一致を発見できるよ
うに最適化したアルゴリズムがより好ましい。例えば、
2っの曲線が同じ順序の線分セットで構成されているか
否かを判断することによって、それらの曲線が同じ形状
を有するか否かを迅速に判定できるように、アルゴリズ
ムを最適化することが好ましい。また、あらかじめ定義
した合成画面、ファイル、又はデータベース内で一定の
図形探索パターンの出現をすべて見付け出すための単一
経路決定手続きが得られるように、アルゴリズムを最適
化することが望ましい。
課題を解決するための手段 上記の課題を解決するため、本発明に従って、図形探索
手続きは、図形パターン突合せを使用して、合成ディジ
タル画像内のユーザー指定対象形状やその他の図形的性
質の出現を見付け出す。対話型ディジタル図形編集装
置、例えばコンピュータ内蔵イラスト装置や製図装置あ
るいはCAD装置は、探索手続きと置換手続きを組み合わ
せて図形探索置換機能を具体化することができる。探索
のとき見付け出されたパターンの一致の全部又は一部
は、ユーザー指定探索パターンと空間的に整合するユー
ザー指定置換パターンの形状や(又は)図形性質に従っ
て修正することができる。単一画面、単一ファイル、又
は多数ファイル図形データベースの中に存在する図形パ
ターンの一致を見付け出す単一経路指向性探索を実行す
るアルゴリズムと、データベース内の既存対象と置換の
とき付加された対象とを弁別して、置換対象が、突き合
わされ、置換されることを防止するアルゴリズムが得ら
れる。このように、これらのアルゴリズムは、決定論的
で、常に終結するので、例えば、一定の探索パターンと
一致するすべての対象を見付け出して置換するCHANGEAL
L操作をサポートする。
本発明のその他の特徴や利点は、添付図面を参照し、以
下の詳細な説明を読まれれば、明らかにあるであろう。
実施例 以下、特定の実施例について発明を詳細に説明するが、
発明をその実施例に限定するつもりのないことは理解さ
れるであろう。むしろ、特許請求の範囲に記載した本発
明の精神及び発明の範囲に入るすべての修正態様、代替
態様及び均等態様は本発明に包含されるものと考える。
I.概説 I.A.使用環境 本発明が提供する図形探索置換ユーティリティの実施例
は、突合せツール(MatchTool)として知られる探索ソフ
トウェア応用プログラムの中に具体化されている。Matc
hToolは、Xerox Dorado高性能パーソナルワークステー
ション(K.A.Pier,"A Retrospective on the Dorado,a
High Performance Personal Computer,"Proceedingsof
the 10th Symposium on Computer Architecture,SIGARC
H/IEEE,Stockholm,Sweden,June 1983,pp.252〜269参
照)を含む多数のプロセッサを稼働させるため、Cedar
のプログラミング環境(D.Swinehart et al.,“A Struc
tural View of the Cedar programming En-vironment",
ACM Transactions on Programming Languages and Syst
ems,Vol.8,NO4,October 1986,pp.419〜490参照)を使用
するCedarプログラミング言語で書かれたものである。
I.B.ユーザーインタフェース、典型的応用とオプション I.B.1.幾何学的形状の探索と置換 最初に、図形探索置換操作を使用して既存のイラストを
変更することを説明する。第2図は参照すると、モニタ
ー13には、2個の窓21,22が開いている。第1の窓21に
は、編集されるイラストが表示される。第2の窓22は、
ユーザー指定探索パターンと置換パターンをそれぞれ表
示するため、一対の窓枠23,24に分割されている。探索
パターンと置換パターンは、所定の場所に描くこともで
きるし、又は適当なソースから複写することもできる。
第2図に示すように、編集するイラストは、ハイウェイ
記号の枠をアーチ形や直線区分やパラメトリック曲線で
表し、道路をパラメトリック曲線で表した地図である。
テキストは、一定のフォント名とアフィン変換を有する
ASCIIストリングで表してある。最近、カルフォルニヤ
州、サンジョセの近くのハイウェイ17の区間が州連絡道
路880と名称変更された。このような地図の改訂には、
探索置換操作が適している。
地図の改訂を実行するため、ハイウェイ17の記号を、編
集する地図から複写するなどして、探索窓枠23に入れ
る。さらに、州連絡道路880記号を、所定の場所に描く
か、他の既存のイラストから複写するかして、置換窓枠
24に入れる。置換を実行するとき、ずれが生じないよう
に、2っの記号の中心が、確実にそれぞれの窓枠の同一
座標にあるように注意する。例えば、2っの記号の中心
を探索窓枠23内で整合し、次に座標を保存する“移動”
操作を用いて州連絡道路280記号を置換窓枠24の中に動
かすことにより、2っの記号の中心を容易に整合させる
ことができる。
基本的な探索置換動作を制御する主ユーザーインタフェ
ースとして比較的簡単なメニュー25(SEARCH,YES,NO,CNA
NGEALL)を使用することができる。SEARTHオプションを
選択すると、編集するイラストが所定方向の順序(例え
ば、上から下、左から右の順序)で探索され、同時にハ
イウエイ17記号探索パターンに一致する対象が探索され
る。一致が発見されると、それを強調表示するために、
突合せパターンが選ばれる。YESオプションを選択する
と、存在するハイウェイ17が抹消され、州連絡道路280
記号がそれに置き換えられ、そして探索が再開される。
ハイウェイ17は、州連絡道路280の北側だけが、州連絡
道路880と名称変更されたので、2回の探索置換操作で
この地図を改訂することができる。3回目の探索フェー
ズは、ハイウェイ17の記号を発見するが、この記号は州
連絡道路280の南側であるので、3回目の置換フェーズ
をオーバーライドするためにNOオプションが選択され
る。探索は最後まで続行するが、それ以上、一致は発見
されないので、ユーザーはそれ以上一致が発見されなか
ったことに気が付き、処理は終了する。第2B図は、改訂
された地図を示す。もちろん、もしハイウェイ17の全記
号を州連絡道路280の記号へ変更したければ、CHANGEALL
オプションを選択することができよう。
以上の説明は、サイズ、形状及び向きが既知の対象の集
まりに適用した場合の探索と置換の実例である。しか
し、6個の探索パラメータ、すなわち細分度(Granulari
ty)、回転不変性(Rotation Invariance)、スケール不変
性(Scale Invariance)、極性(Polarity)、文脈依存性(c
ontext Sensitivity)、及び許容誤差(Tolerance)のうち
1っ以上を変化させることで、より制約の少ない探索が
実行できることを理解されたい。第3図に、これらの特
徴のユーザーインタフェースを示す。最初の4っのパラ
メータは、本節で論じるが、後の2っは、拡張探索置換
操作についての節で論じることにする。
細分度(granularity)は、値「クラスタ」、値「曲
線」、又は値「線分」を取ることができる。細分度は、
探索置換ユーティリティに、突合せを実行するとき、イ
ラストの構造のどのくらいを無視できるかを伝える。も
し細分度が「クラスタ」にセットされれば、編集中のイ
ラスト内のクラスタ化された一群の曲線は、探索パター
ン内の同様な完全クラスタとだけ一致するであろう。す
なわち、クラスタ内の個々の曲線は独立に一致すること
はできない。細分度が「曲線」にセットされた場合に
は、イラスト内の曲線Aは、たとえ曲線Aがクラスタの
一部分であっても、探索パターン内の同様な曲線Bと一
致するであろう。この細分度では、曲線Aが完全に一致
しなければならないので、曲線Aの一部分のサブセット
だけを含むパターンは一致しないであろう。「線分」の
場合は、もし曲線Bの一部分のすべてが曲線Aの対応す
る一部分に一致すれば、曲線Aの一部分は、パターン曲
線Bによって突き合わせることができる。この細分度の
場合は、探索窓枠23(第2A図)内の曲線がそのまま、編
集する画面内の単一曲線の一部分と一致することができ
る。
「線分」の突合せでは、最小レベルの画面要素(線分)
が原子として取り扱われるので、それらの部分に対して
突き合わせることはできない。このことは、性能上の利
点があり、かつ特定の対象クラスの一部分を置換する場
合に付随する別の問題が避けられる。例えば、非局部ス
プラインのような、ある種の線分の部分は、線分全体に
変化を生じさせずに、置換することができない。
「回転不変性」(Rotation Invariance)をオンにした場
合は、もし平行移動と回転のある組合せによって、探索
パターンと画面対象の構成が一致すれば、パターンは、
画面対象の構成と一致するであろう。もし一回転以上が
可能であれば、探索ユーティリティは、最小回転を選ん
で作業するであろう。「スケール不変性」(Scale Invar
iance)をオンにした場合は、もし平行移動と拡大縮小の
ある組合せによって、パターンと画面対象の構成が一致
すれば、パターンは画面対象の構成と一致するであろ
う。同様に、「回転不変性」と「スケール不変性」を共
にオンにした場合は、探索ユーティリティは平行移動、
回転及び拡大縮小の組合せを用いて、探索パターンを画
面対象に一致させようと試みるであろう。
「極性」(Polarity)がオンの場合は、2っの曲線は、同
じ向きに描かれている場合だけ、一致するであろう。例
えば、パターンが直線線分の場合、もし「回転不変性」
突合せを実行すれば、パターンは、同じ長さを有するあ
らゆる直線線分と一致するであろう。「極性」”がオフ
のとき、180°だけ異なる2っの回転を用いて、各突合
せを行うことができる。「極性」がオンのとき、探索ユ
ーティリティは、各直線線分が描かれた方向を考慮し、
そして探索パターンの線分と画面の線分が合わさるよう
な回転を選択するであろう。
実例として、3組のコッホ(Koch)雪片を作るために、第
3図のユーザー制御可能探索パラメータを用いることが
できる。最初に、第4A図に示すように、時計回りに正三
角形31の直線線分を描いて、三角形31を構成する。次
に、三角形31の一辺を選んで、探索窓枠23に複写する。
置換窓枠24に、三角形31を作るとき用いた直線線分の1/
3の長さの4本の直線線分を描く。これらの直線線分を
三角形31の直線線分と同じ方向(左下から右上へ)に描
く。画面対象を置換したとき、「ずれ」が生じないよう
に、置換形状32が探索線分33と同じ座標で始まり、同じ
座標で終わるように十分に注意する。第4A図は、得られ
た探索窓枠23と置換窓枠24を示す。
ここで、上記の雪片を繰り返して構成するため、「細分
度」を“線分”にセットして、探索が元の三角形31の個
々の線分を見付けることができるようにする。次に「回
転不変性」と「極性」をオンにする。次に、“CHANGEAL
L”を選択すると、元の三角形31のすべての直線線分
が、第4B図に示すように、4線分経路で置換される。も
し“CHANGEALL”を再び選択しても、画面には探索ター
ンの線分と同じ長さの線分がないので、何も起こらな
い。しかし、「スケール不変性」をオンにして、“CHAN
GEALL”を再び選択すれば、第4B図のすべての線分が、
4線分経路で置換され、第4C図が生じる。
I.B.2図形スタイルの探索と置換 図形対象の形状以外の性質(すなわち、図形的性質)、
例えば対象類別(長方形、円、又は多角形)、曲線の種
類(直線、Bezier、Bスプライン、円錐曲線、又は
弧)、領域の色、線の性質(線の色)、ストローク幅、
ダッシュパターン、接続の融合、又はストローク端の形
状)、又はテキストの性質(ASCIIストリング、フォン
トファミリ、又はフォント変換)を探索したい場合がし
ばしば起きる。同様に、ユーザーは、一致した対象の図
形的性質を置換することに興味を有するかも知れない。
第5図は、「探索」欄及び「置換」欄と呼ばれるユーザ
ーインタフェースの一部を示す。「探索」欄の黒色の正
方形は、画面の対象と一致し、突合せが成功しなければ
ならない探索窓枠23(第2A図)内の対象の性質を示す。
この場合、他の性質は無視することができる。「置換」
欄の黒色正方形は、置換を行ったとき、一致した対象に
付加される置換窓枠24内の対象の図形的性質を示す。そ
の他の性質は、特定の性質が間接的にそれらを変更させ
ない限り(例えば、形状を変えると、曲線のスタイルが
変わる)、そのままである。ユーザーは、マウス14(第
1図)を用い、選択ボックス上でカチッと合わせること
によって、各図形的性質を選択したり、選択を解除した
りできる。
探索及び置換の図形的性質が適切に指定されると、本発
明の探索置換ユーティリティを使用し、色はそのままに
して、対象の形状を変更することができる。例えば、多
色雪片を作るため、第6A図に示すように、前と同様な三
角形31aで開始し、その3っの辺に異なる色を付けるこ
とができよう。もし「探索」欄の「線の色」(Line Colo
r)をオフすれば、3っのすべての辺はなお探索パターン
と一致するであろう。また、「置換」欄の「線の色」を
オフすれば、各辺が置換されるとき、その色が、置換形
状に付けられる。もし同じ探索窓枠と置換窓枠を前と同
様に使用すれば、2回の“CHANGEALL”の後、
第6B図の絵が得られる。探索置換ユーティリティは、形
状をそのままにして、対象の色を変更することが可能で
ある。
1.B.3.拡張型探索機能と置換機能 第3図に戻ると、ユーザーは、文脈依存探索により、別
の1組の形状Bが存在としている状態で、1組の形状A
の出現を探索することができる。Aに一致する形状のみ
が選択され、置換される資格を有する。文脈依存探索を
行うため、ユーザーは、あらゆるパターン形状A,Bを探
索窓枠23(第2A図)に入れ、それらを選択することで、
Aの中にどの形状があるかを指示し、「文脈依存性」(C
ontext Sensitivity)をオンして、探索を開始する。
文脈依存性探索は、置換される資格を有する形状セット
を減らすことで、一定のパターン指定に存在する「あい
まいさ」を除くことができる。例えば、「置換」欄の
「形状」がオンで、「線の色」がオフであれば、探索置
換プロセスは、一致した形状を置換形状で置き換えて、
一致した形状の線の色を置換形状へ複写しなければなら
ない。もし探索パターンが幾つかの異なる線の色を有す
る1組の形状と一致すれば、置換パターンのどの対象が
探索パターンの1組の形状からどの線の色を受け取るべ
きかはっきりしないので、問題が生じる。この問題を解
決するため、ユーザーは、各文脈依存探索が1っの「線
の色」の対象のみを選ぶことができるように、探索を幾
つかの文脈性探索に分割することができる。
第7A図〜第7D図は、文脈依存性探索の別の使用例を示
す。ユーザーはソフトボールを含むゴム製ボールマシン
の絵から出発して(第7A図)、ソフトボールをフットボ
ールで置き換える(第7B図)。各フットボールは、ソフ
トボールの縫い目の方向からその向きを引用し、同様
に、ソフトボールからその面の色とその縫い目の線の色
を引用するであろう。縫い目の線の色と外円の線の色
は、1個1個ののソフトボールで違っているから、この
置換のすべてを一度に実行することができない。代わり
に、ユーザーは、第7B図に示すような所望の結果が得ら
れるように、第7C図に示す文脈依存探索置換操作と、第
7D図に示す通常の探索置換操作を行う。最初の操作(第
7C図)は、円(ソフトボールの縫い目が存在する状態
で)を適当な向き、領域の色及び線の色のフットボール
で置換する。第2の操作(第7D図)は、ソフトボールの
縫い目を適当な線の色のフットボールの縫い目で置換す
る。
いろいろな許容誤差(Tolerance)(第3図)を用いて、
ユーザーは、探索パターンに、厳密ではないが、近似的
に一致する形状を見付けることができる。一致が識別さ
れたとき、ユーザーは、ソフトウェアスライダ又は同等
なもの(図示せず)を調節することにより、突合せアル
ゴリズムが許容する誤差量を増減できる。例えば、適当
な許容誤差と探索パターンを用いて、円に近いすべての
形状、あるいは直線に近いすべての形状を突き合わすこ
とができる。適当な許容誤差は、一般に、試行錯誤によ
って決められるので、この機能をうまく利用するため、
ユーザーは形状突合せのメカニズムをある程度詳しく理
解しなければならない。
I.B.4.図形探索と図形マクロ 図形探索を用いて図形の形状を見付けたら、次の3っの
アクションを取ることができる。詳細には、1)一致した
形状を新しい形状で置換することができる。2)一致した
形状を編集するため、制御をユーザーへ引き渡すことが
できる。3)探索を始める前に、ユーザーが指定した1組
の編集操作を実行することができる。この最後のアクシ
ョンには、いわゆる“図形マクロ”が必要である。ユー
ザーは、置換窓枠24(第2A図)内で描画操作を行って、
マクロを記録する。同時にすべてのマウスの座標とボタ
ン操作音が記録される。次に、ユーザーは探索置換ユー
ティリティに、置換の代わりに、マクロを実行すること
を命令し、置換操作の1っ、例えば、CHANGEALLを呼び
出す。マクロの実行中に一致が見付かったときは、探索
置換ユーティリティは記録された動作をプレイバック
し、そしてもし置換が実行されていたならば、置換対象
へ適用されたであろう同じ変換を用いてマウス座標を変
換する。期待しない結果を防止するため、マクロ命令
は、一致した対象についてのみ作用するように限定され
る。
簡単な置換では困難な論理的変更を実行するため、図形
マクロを使用することができる。例えば、一致した対象
を複写し、コピーグレーを着色し、一致した対象からコ
ピーをオフセットし、元の一致した対象の下にコピーを
移動させるマクロを記録することによって、1組の対象
に、“ドロップシャドウ”を与えることができる。
II.探索と置換の基礎 この節は、図形合成画面が何を意味するかをより明確に
説明し、探索をどのように実行するかを説明し、適当に
修正した上から下、左から右の探索順序を説明し、曲線
の数学的表現とそれらが探索プロセスにどのように作用
するかを説明し、曲線形状の厳密な突合せと、厳密でな
い突合せとの相違を説明し、形状の置換と図形的性質の
置換との相違を説明する。
II.A.合成図形画面 以下に説明する図形探索置換アルゴリズムは、合成図形
画面内の図形対象を探索するためのものである。詳しく
述べると、画面は、1組の合成図形対象で構成すること
ができる。合成図形対象は1組のばらばらの曲線で構成
され、曲線は1組の順序付き線分で構成される。
例えば、第8A図は、輪郭と呼ばれる一種の図形対象を示
す。輪郭は、フェンスと呼ばれる外側の曲線41と、ゼロ
又は1個以上の穴と呼ばれる内側の曲線42で構成されて
いる。もしフェンス41がそれ自体閉じていなければ(す
なち、2っの区別できる端を有していれば)、輪郭は穴
42を持たないであろう。図からわかるように、第8A図の
輪郭は2っの曲線、すなわち1個のフェンス41と1個の
穴42から成っている。曲線は接続された1っの曲がった
線である。直観的には、曲線は、ペンを紙から持ち上げ
ずに描くことができる種類の曲がった線である。多くの
ディジタルピクチャ装置では、曲線は、数学的に「線
分」と呼ばれる一連の順序付き小部分で表される。各小
部分は、普通の数学的形式を有する。例えば、第8A図の
輪郭のフェンス41は3っの線分、すなわち第8B図のよう
に、弧43、直線44及びパラメトリック三次曲線45から成
っている。同様に、穴42は、第8C図のように、2っの弧
46,47で表される。
輪郭は、図形探索置換を用いて、見付けることができる
種類の図形対象の一例に過ぎない。一般に、開示の目的
で、図形対象は、それらがフェンスや穴と思われるか否
かに関係なく、あらゆる曲線の集まりであってもよい。
ここでは、曲線の集まりと考える場合は、図形対象を、
クラスタ又は単に対象と呼ぶ。
II.B.細分度(Granularity) ユーザーは、探索パターン内で対象を見付け出すため
に、探索プロセスに、図形画面をどの程度に分けてもよ
いかかを指定できる。詳細には、ユーザーは、クラスタ
レベル、曲線レベル、又は線分レベルで探索することが
できる。
クラスタレベルで探索する場合は、画面内のクラスタ
を、そっくりそのまま突き合わすことができるだけであ
る。例えば、もし第8A図の輪郭がシ画面内に存在し、
「回転不変性」と「スケール不変性」をオンにして、探
索を実行した場合には、第8D図の探索パターンは画面の
輪郭と一致するであろう。しかし、第8E図と第8F図の探
索パターンは、第8A図の輪郭の一部を含むだけであるか
ら、一致しない。
しかし、曲線レベルで探索する場合は、画面内の曲線を
そっくりそのまま突き合わすことができるだけである。
しかし、この場合の探索は、各曲線が属するクラスタに
注意を払わない。このレベルでは、第8D図の探索パター
ンは、第8A図の輪郭の2っの曲線と一致する。同様に、
第8E図は、第8A図の輪郭の外側曲線と一致する。しか
し、第8F図の探索パターンは、第8A図の曲線の1っの一
部分を表しているだけであるから、依然として突合せに
失敗するであろう。
最後に、線分レベルでは、第8D図〜第8F図のすべての探
索パターンが第8A図の輪郭(全部又は一部)と一致する
であろう。詳しく述べると、第8D図の探索パターンは第
8A図の輪郭全体と一致し、第8E図の探索パターンは輪郭
の外側曲線と一致し、第8F図の探索パターンは輪郭の外
側曲線の2っの線分と一致する。
ユーザーが探索のため3っの粒状度のどれを選択したか
に応じて、探索置換ユーティリティは、形状を比較する
ためのさまざまなデータ構造を作る。一般に、データ構
造は、曲線レベル探索の場合よりもクラスタレベル探索
の場合のほうが簡単であり、線分レベル探索の場合より
も曲線レベル探索の場合のほうが簡単である。もちろ
ん、簡単なデータ構造を用いたほうが、探索が速く行わ
れる。次に、これらのデータ構造とその構成についてさ
らに検討する。
便宜上、ここで使用する表記式“細分度=クラスタ”
は、ユーザーがクラスタレベルで探索していることを示
し、“細分度=曲線レベル”は、ユーザーが曲線レベル
で探索していることを示し、“細分度=線分”は、ユー
ザーが線分レベルで探索していることを示す。
II.C.境界ボックス(Bounding Box) 探索開始前に、探索ツールは、画面内の各曲線又は各曲
線グループについて、(1)水平の辺と垂直の辺を有し、
(2)特定の画面曲線または曲線グループを完全に含み、
(3)前記条件(1)と(2)を満たす最小長方形である長方形
を計算する。
これらの長方形は、境界ボックスと呼ばれ、曲線を探索
する順序を決定し、かつあらかじめ定義した変換の下で
与えられた探索曲線と一致する可能性のない曲線を迅速
に除外するために使用される。
II.D.探索順序 通常、ユーザーが順方向探索を要求したときは、画面は
上から下、左から右へ探索され、逆方向探索を要求した
ときは、下から上、右から左へ探索される。しかし、こ
の規則には、2っの重要な例外がある。
II.D.1.例外1:先導対象 以下に詳しく説明するように、探索プロセスは、探索パ
ターンのクラスタ又は曲線の1っを先導対象に選ぶ。探
索のとき、先導対象は、厳密に上から下、左から右の順
序で、画面対象と比較される。しかし、もし探索パター
ンが先導対象のほかに、1っ又はそれ以上の対象を含ん
でおり、そして探索操作を繰り返して実行すれば、前の
探索操作のとき一致した1組の画面対象よりも窓の上部
の近くにその境界ボックスがある1組の画面対象は、1
探索操作で突き合わせることができる。言い換えると、
たとえ傾向が全体として上から下であっても、一連の一
致は、ある時には下から上の方向に動くように見えるこ
とがある。
第9A図〜第9C図は、そのような1っの事例を示す。詳し
く述べると、第9A図は「回転不変性」探索において使用
される探索パターンを示す。第9B図は最初の一致が見付
かった図形画面を示す。一致した対象は、それらの隅に
黒色正方形を付けて目立つようにしてある。第9C図は第
2の一致が見付かった同じ図形画面を示す。探索パター
ンの先導対象、すなわち第9A図の3線分曲線48は、第9B
図の対象より低い第9C図の対象と一致するが、全体とし
て見ると、第9C図の一致がより高いことに留意された
い。通常の上から下、左から右の探索順序に対するこの
例外は、比較的簡単な探索戦略を可能にするので、許容
される。
II.D.2例外2:曲線内の順序付け 曲線内の線分は、もしペンを紙から持ち上げずに描かれ
たならば有するであろう時間的な順序で決まる自然の順
序を有している。したがって、探索パターンの先導対象
の線分を画面曲線の線分と比較すると、画面曲線の線分
は、厳密な上から下の順序でなく、この自然の順序で検
討される。
第10A図〜第10B図は、上から下の探索規則に対するこの
例外を設けた1っの動機を示す。第10A図は、120°の角
度をなしている2っの線分49,50から成る探索パターン
を示す。第10B図は、すべての線分が120°の角度で結合
している2個の曲線を示す。したがって、第10A図の探
索パターンは、「回転不変性」がオンであれば、第10B
図の隣り合う任意の一対の線分と一致するであろう。し
かし、探索規則は、与えられた線分を一度だけ一致する
ことができると規定しているので、探索順序は、実際
に、どの隣り合う線分対が一致するかを判断する。もし
厳密な上から下の規則に従ったならば、第10B図の線分
対51,52が、最初に一致し、次に線分対53,54が一致し、
次に線分対56,57が一致したであろう。言い換えると、
プロセスは、右側の曲線に関しては2回一致するが、左
側の曲線に関しては1回一致するだけである。対照的
に、もし線分が自然の順序で一致すれば、プロセスは、
線分対51,52、次に線分対56,57、次に線分対58,53、次
に線分対54,59と一致するであろう。
自然の線分順序を用いる動機はもう1っある。もし各置
換を行った後に、モニター13(第1図)を更新すれば、
一般に、各置換が行われる領域が見えるように、モニタ
ーの図形画面の位置を変える必要があろう。もし位置を
変えるならば、自然の線分順序を使用すれば、図形画面
全体の位置を変えなければならない回数を減らすことが
できる。これにより、ユーザーの目の負担が減り、計算
時間も短かくなる。
ユーザーが、成功した順方向(上から下)探索のすぐ後
に逆方向(下から上)探索を要求し、そして前の探索が
先頭曲線と画面曲線の中間の線分とを突き合わせたなら
ば、探索プロセスは、順方向探索において最も新しく突
き合わせした画面曲線の線分から逆方向探索を開始し、
後向きに進行するであろう。例えば、第10B図におい
て、もしプロセスが線分54,59を突き合わせたばかりで
あれば、プロセスは逆に進行して、線分58,53を突き合
わせるであろう。この結果、第2の逆方向探索は、線分
56,57を見付け出すであろう。以下同様である。
上から下の規則に対するこの自然順序例外は、探索アル
ゴリズムを複雑にするが、直観的に予想される結果が得
られる。
II.E.キャリット記号による部分画面探索前に言及した
ガーゴイル(Gargoyle)イラスト装置のソフトウェアカー
ソル(キャリットと呼ばれる)をユーザーが手で挿入
し、次に順方向探索操作を開始すると、キャリットの下
に境界ボックスが完全に入るクラスタ(又は、探索の細
分度によっては、曲線)だけが、突合せのため選ばれる
資格を有する。対照的に、キャリットを挿入し、次に逆
方向探索を開始すれば、キャリットの上に境界ボックス
の上部があるクラスタ又は曲線だけが、突合せのため選
ばれる資格を有する。この規則のわずかな不対称によっ
て、もしキャリットを決められた位置(x0,y0)に挿入
し、一致がそれ以上発見されなくなるまで順方向探索を
実行し、次にキャリットを同じ位置(x0,y0)に挿入し、
一致がそれ以上発見されなくなるまで逆方向探索を実行
すれば、画面内のすべての一致が確実に発見されるであ
ろう。
各々の一致が発見された後、キャリットは、探索パター
ンの先導対象と一致した画面対象の境界ボックスの左上
隅へ動かされる。したがって、探索操作が行われるたび
に発見される一致は、常に、探索方向にキャリットの向
こう側での最初の一致である(上に述べた探索順序規則
の例外を前提として)。
II.F.曲線タイプ すべての合成図形編集装置は、曲線を内部では数学的に
表現する。通常、数学的記述では、単一曲線は、それぞ
れが数学的に簡単な一連の湾曲線分(小部分)で表され
る。例えば、第11A図と第11B図は、円弧、直線線分及び
Bezier三次曲線の3っの小部分で表わした曲線を示す。
しかし、この表現は、必ずしも唯一ではない。例えば、
第11c図は、第11A図の曲線の別の表現である。この第2
の表現は、3個の円弧、縮退Bezier三次曲線と、三次B
スプライン曲線から成っている。第11A図と第11C図の曲
線は、厳密に同じ形状を有するが、表現は非常に異な
る。
ユーザーが「曲線タイプ」探索パラメータ(第5図)を
活動化すると、探索プロセスは、同じ数学的表現を持つ
曲線同士の突合せのみを許す。例えば、「スケール不変
性」、「回転不変性」及び「曲線タイプ」のすべてを活
動化して実行した探索では、第11A図の曲線は、第11B図
の曲線と一致するが、第11C図とは一致しない。実際に
は、もし「曲線タイプ」探索パラメータがオンで、「形
状」探索パラメータがオフであれば、小部分の実際の形
状に関係なく、第11A図の曲線は、円弧、直線、及び三
次曲線から成るすべての曲線と一致するであろう。
対照的に、「曲線タイプ」探索パラメータがオフで、
「形状」探索パラメータがオンであれば、第11A図の探
索パターンは、第11B図の曲線とも、第11C図の曲線とも
一致するであろう。次に、2っの曲線が、それらの数学
的表現に関係なく、同一形状を有するか否かを判断する
アルゴリズムについて述べる。
II.G.厳密でない突合せ 探索プロセスは、通常、探索パターン内の対象と正確に
同一形状を有する図形対象を見付け出すために使用され
る(浮動小数点計算の誤差を見込んで、形状の多少の差
は許される)。ユーザーは、この種の突合せを要求する
ため、「厳密」(Exact)オプション(第3図)を活動化
する。しかし、時には、探索パターンとほとんど同一形
状の対象を探索することが有用なことがある。例えば、
ユーザーは、第12A図の円のような円を見付け出すため
に、第12B図の円のような近似的に円の形状をスケッチ
し、そのスケッチと近似的には同一であるが、厳密には
同一でない形状を探索することができるであろう。これ
は、「厳密」オプションをオフにし、そして許容誤差値
(ゼロから無限大までの実数)を選択することで行われ
る。許容誤差値を大きくすればするほど、探索プロセス
において、探索パターンと画面内の決められた対象とが
一致することが多くなるであろう。許容誤差値が大き過
ぎると、画面内のすべての対象が一致することは言うま
でもない。以下説明する曲線突合せアルゴリズムの1っ
は、厳密でない突合せを考慮している。
II.H.図形の形状及び性質の置換 前に指摘したように、探索置換操作を使用して、対象の
色のみ、対象の形状のみ、又は対象の幾何学的特徴と図
形的性質の組合せを変更することができる。これは、置
換操作の終った後図形画面に現れる最終の形状を作るた
めに、置換アルゴリズムが一致した対象の形状及び性質
と、置換パターンとを組み合わせることができなければ
ならないことを意味する。例えば、第13A図は、探索パ
ターン(図示せず)が画面内の三角形60Aと一致した場
合を示す。置換パターン60Bとして、ユーザーは厚い境
界線を有する灰色の正方形を描いた。「置換」欄60C
は、形状を置換すべきこと、しかし領域の色と線の幅を
置換すべきでないことを指示している。したがって、合
成された対象60Dを作るためには、置換アルゴリズム
は、置換パターン60Bから形状を取り(矢印で強調して
ある)、その形状に、一致した対象(三角形)60Aの領
域の色と線の幅を組み合わせなければならない。別の例
である第13B図を参照すると、合成された形状は非常に
異なるやり方で作られることがわかるであろう。同様
に、探索により三角形60Aが一致した。置換パターン60B
は、厚い境界線を有する灰色の正方形である。しかし、
「置換」欄60Eは、形状をそのままにし、領域の色と線
の幅を置換すべきことを指示している。したがって、合
成された対象60Fを作るために、置換アルゴリズムは、
一致した対象60Aから形状を取り(矢印で強調してあ
る)、この形状に、置換パターン60Bの領域の色と線の
幅を付ける。さらに別の組合せも可能であることは理解
されよう。例えば、「置換」欄内の形状、領域の色、及
び線の幅はオンにするのが通例である。この場合には、
形状とその他の図形的性質は、置換パターンから引き継
がれる。
都合の悪いことに、同じ性質に複数の値を有する対象か
ら図形的性質を移す場合は、置換操作はいく通りにも解
釈できる。例えば、第14図は、第13B図に類似した場合
を示す。同様に、探索により、三角形60Aが一致した。
「置換」欄60Eは、形状を保持し、しかし領域の色と線
の幅を置換パターン60Gから取るべきことを指示してい
る。都合の悪いことに、置換パターン60Gはいくつかの
線幅を有しているので、三角形60Aのどの辺がどの線幅
を受け取るべきかがあいまいである。この状況が起きる
と、三角形60Hで示すように、置換操作はいく通りにも
解釈されるので、置換は行われず、エラー発生がユーザ
ーに告げられる。
III.曲線の突合せ、 本発明の図形探索プロセスの最小レベルのルーチンは、
2っの曲線を比較して、同じ形状であるか否かを判断す
るルーチンである。2っの曲線の比較は、曲線の突合せ
と呼ばれる。本節では、この曲線の突合せのアルゴリズ
ムについて述べる。
図形パターンは、一般に、多くの曲線を有しており、ま
た形状以外の図形性質、例えば色や、線の幅を記述して
いるので、サブルーチンとして曲線突合せに基礎をおく
他目的の探索プロセスが具体化されている。このより包
括的な機能については、次節で説明する。
好ましい曲線突合せアルゴリズムは、2っの手法に基づ
いてその能率を高めている。すなわち (1)迅速除外チェック.....2っの曲線の詳しく比較する
前に、幾つかの迅速テストを行って、曲線が明らかに同
一形状でないかどうかを判断する。これらの迅速テスト
をパスした場合だけ、2っの形状が詳しく比較される。
(2)基準形.....画面内の各曲線及び探索パターン内の各
曲線の形状は、“基準形”と呼ばれる標準形式で表わさ
れる。もし「回転不変性」探索を行えば、最初に形状を
どのように回転したかに関係なく、この基準形は同じで
ある。また「スケール不変性」探索を行えば、最初に形
状をどのように拡大縮小したかに関係なく、この基準形
は同じである。基準形さえ計算すれば、曲線同士を比較
することが可能であり、曲線を回転させたり、拡大縮小
したりする計算は不要である。たとえ特定の変換が探索
曲線を画面曲線にマップするかどうかを判断する必要が
あるときでも、探索曲線の2点について変換を適用し
て、その変換で一致が生じるかどうかを判断するだけで
済み、探索曲線全体を変換する必要がない。また、探索
プロセスの開始時に、曲線全体の基準形を一回計算する
だけでよい。
曲線突合せ問題には、2っの手法を採用した。「構造ベ
ース曲線突合せ」と呼ばれる第1の手法においては、2
っの曲線を、同じタイプの同じ数の線分で作って突き合
わせなければならない。これに対して、「折れ線ベース
曲線突合せ」と呼ばれる第2の手法は、たとえ2っの曲
線が異なる数の線分、異なるタイプの線分、又はこの両
方で表現されていても、2っの曲線が同一形状を有する
ことを見付けることが可能である。この制約のない突合
せ能力を得るために、各曲線を、それらの表現形式によ
らずに、形状のみによって決まる「折れ線」と呼ばれる
表現に変換する。その後、2っの曲線の折れ線を比較し
て、一致が生じるかどうを判断する。
III.A.曲線突合せ それぞれが一連の線分で表された2っの曲線が与えられ
たとして、突合せの目標は、2っの曲線を比較して同一
表現かどうか、又は同一形状かどうか、又は同一表現か
つ同一形状かどうかを判断することである。2っの表現
を突き合わせなければならない場合は、構造ベース曲線
突合せが好ましい。もしそうでなければ、折れ線ベース
突合せがより好ましい。本節は、最初に、構造ベース曲
線突合せと折れ線ベース曲線突合せをどのように行うか
を説明し、次に探索パターン曲線から突合せ用画面曲線
への変換をどのように見付けるかを説明する。最後に、
特定のアフィン変換(すなわち、平行移動、回転、及び
拡大縮小の操作を組み合わせて、2っの曲線を一致させ
ることが目的の場合に、曲線突合せアルゴリズムをどの
ように修正するかについて説明する。
III.A.1.構造ベース曲線突合せ 一般に、曲線の数学的表現は、各曲線線分の形状を、2
以上の点の位置で表す。第15図は、第11A図の曲線を示
し、各線分の制御点を黒色正方形で示してある。図から
わかるように、弧は、制御点61,62,63を通過し、点61と
63で終わる唯一の円弧として定義される。直線線分は、
制御点63,64を通過する唯一の直線線分である。Bezier
三次曲線は制御点64と65で終わり、制御点64〜67によっ
て決まる形状を有する。
2っの曲線の構造ベース比較を実行する場合は、最初
に、2っの曲線が同じ数の線分を含んでいるかどうかを
判断する。もし含んでいなければ、突合せは、その場で
失敗する。もし曲線が同じ数nの線分を含んでいれば、
プロセスは、第1の曲線のi番目の線分のタイプと第2
の曲線のi番目の線分のタイプを比較する。ここで、i
は1〜nである。もしそれらの比較のどれかで、線分の
タイプが異なることが発見されれば、曲線の比較はその
場で失敗する。もし線分のタイプが同一であれば、次
に、2っの曲線の形状を比較する必要がある。
「平行移動」と「回転」又は「拡大縮小」によって、形
状の異なる曲線を発見できることが望ましいので、回転
と拡大縮小の効果を分析できる必要がある。それには、
各曲線について、その位置、向き、及び相対サイズが異
なる第2の表現を計算する必要がある。この新しい表現
を計算するため、曲線の元の数学的表現を以下のように
修正する。最初に、曲線の最小番号の制御点(例えば、
第16A図の始点61)を見付ける。次に、第16B図に示すよ
うに、この点が原点(x=0,y=0)にくるように、曲線を平
行移動する。また、「回転不変性」探索を行う場合は、
最小番号の制御点から最も離れた遠点と呼ばれる制御点
67を見付ける。次に、遠点67が正のx軸(第16C図に示
すように、原点を通る水平線の右側)上にくるまで、曲
線を原点のまわりに回転する。あるいは、「スケール不
変性」探索を行う場合は、最初に、第16B図のように、
曲線を平行移動し、次に、第16D図のように、遠点67が
原点から1.0単位の距離にくるまで、原点のまわりに曲
線を拡大又は縮小する。探索が「スケール不変性」と
「回転不変性」の両方の場合は、第16E図に示すよう
に、第16C図の回転操作と第16D図の拡大縮小操作を実行
する。
上記のプロセスで計算した曲線は、元の曲線の“構造ベ
ース基準形”と呼ばれる。2っの曲線のそれぞれについ
て、構造ベース基準形を計算したら、それらの基準形を
比較することにより、2っの曲線を比較することができ
る。基準形の比較を行う場合は、最初に、2っの基準形
が同じ数pの制御点を有するかどうかを判断する。もし
同じでなければ、比較はその時点で失敗する。もし同じ
であれば、第1の基準形のi番目の制御点の位置と第2
の基準形のi番目の制御点を比較する。ここで、iは、
1〜pである。もし各対の制御点が同じ位置(数値の不
正確さを見越して)を有すれば、曲線は一致すると言え
る。もし同じ位置を有しなければ、比較は失敗する。
III.A.2.折れ線ベース曲線突合せ 2っの曲線の折れ線ベース比較は、各曲線を「折れ線」
と呼ばれる不連続直線経路で近似する必要がある。折れ
線近似形は、曲線に応じて構成され、高い曲率の領域は
平らな領域よりも多くの直線線分で表現される。しか
し、折れ線の線分の数が多過ぎないように、折れ線の線
分を、少なくとも所定の最小長さに制限することが好ま
しい。この種のベクトル化は、曲線をコンピュータディ
スプレイに表示する普通の操作であるから、既に多くの
図形処理装置で行われている。第17図に示すように、曲
線を異なるスケールでコピーした場合の折れ線は、相互
の縮尺でないことがある。画質テストは、後で詳しく説
明するように、この誤差を考慮しなければならない。
第18A図に示した折れ線は、迅速に比較できるように基
準形に変換されている。その基準形の性質は、第18B図
〜第18D図にそれぞれ示すように、突合せが「回転不変
性」、「スケール不変性」、そのいずれでもない、又は
その両方かどうかによって決まる。折れ線のある点を始
点に選ぶ。開曲線の場合には、最初の端点を用いる。閉
曲線の場合は、曲線に沿って延びている一様な密度/単
位長さの「等価電線」の質量中心から最も遠い距離にあ
る点を用いる(第18A図)。もちろん、閉曲線は質量中
心から最も遠い点を幾つか有することがあるが、その場
合には、曲線は幾つかの基準位置を有するであろう。折
れ線(第18A図)を、その始点が原点にくるように変換
する(第18B図)。もし「回転不変性」突合せを選べ
ば、質量中心が正のx軸上にくるように、折れ線を回転
する(第18C図)。もし「スケール不変性」突合せを選
べば、曲線の折れ線を、単位弧長を有するように正規化
する(第18D図)。もし探索が「回転不変性」と「スケ
ール不変性」の両方であれば、最後の2っの操作を組み
合わせる(図示せず)。
ここで、明白に一致しない対の曲線については、それ以
上の計算を避けるために、折れ線について、1組の迅速
除外テストを適用することができる。弧長、曲線からそ
の質量中心までの最大距離、始点に対する質量中心の位
置を含む、幾つかの量を迅速に比較することによって、
上記の判断を行うことができる。もし2っの折れ線の上
記の値が最小値以上に相違すれば(計算の不正確さ又は
量子化の差のせいである)、それ以上の計算をせず、曲
線は一致しないと結論する。
もし迅速除外テストにより、2っの与えられた折れ線A
とBが同等な形状を表すことができると認められたなら
ば、さらに広範な比較をする必要がある。このため、折
れ線Aの各頂点vがその始点からどれくらい遠いかを、
折れ線Aに沿って測定する。この測定した距離をwとす
る。次に、折れ線Bの始点から始めて、折れ線Bに沿っ
て距離wだけ進んだ点pを一意的に識別する(点pは、
折れ線Bの直線線分の中間にあることもある)。次に、
頂点vから点pまでの距離を計算する。もし折れ線A上
のどれかの頂点について、上記の距離が一定のしきい値
を越えれば、突合せは失敗である。ユーザー指定突合せ
誤差を反映させるため、迅速除外テストに用いた諸量の
ほかに、このしきい値を調整することができる。次に、
折れ線Aと折れ線Bの役割を替えて、上記の比較的厳密
な比較プロセスを繰り返す。この結果、もし折れ線Aの
すべての頂点が、許容基準で決められた範囲内で折れ線
Bの近くにあり、かつ折れ線Bの頂点が、同じ基準で、
折れ線Aの近くにあれば、突合せは成功する。もし近く
になければ、突合せは失敗する。第19図は、上の述べた
比較プロセスを示す。図からわかるように、折れ線Aの
各頂点は、折れ線Bに沿って同じ弧長の点まで短い線分
で結んで可視化することができる。同様に、折れ線Bの
各頂点は、折れ線Aに沿って同じ弧長の点まで短い線分
で結んで可視化することができる。距離d1,d2,...d
nは、折れ線ベース比較アルゴリズムで計算する。次に
各距離diを調べて、ユーザー指定許容しきい値以下であ
ることを確かめる。
上記の距離比較テストは、迅速除外テストと共に、厳密
な突合せ基準を定めていることに留意されたい。厳密で
ない突合せの場合は、距離比較テストで等しいとしてパ
スした曲線が、最初の迅速除外テストの少なくとも1っ
に失敗して、等しくないとみなされる可能性もある。
2っの閉曲線を距離比較テストで比較する場合には、弧
長テスト又は質量中心までの最大距離ステトが下記の比
較をする必要がない旨を指示しない限り、不一致を宣言
する前に、一方の曲線のすべての基準向きと他方の曲線
の1っの基準向きと比較しなければならない。折れ線ベ
ース突合せアルゴリズムは、すべての開曲線や一部の閉
曲線に対する折れ線のサンプル数nに複雑さが比例する
が、O(n2)にスローダウンするある種の形状が存在す
る。曲線突合せアルゴリズムの複雑さに基づくこの上限
を改善するため、曲線の図心からの距離のサンプリング
(H.Freeman,“Shape Description Via the Use of Ini
tial Points,"Pattern Recognition,Vol.10,NO.3,1978,
pp.159〜166参照)、又は曲率のサンプリング(H.Wolfs
on,“On Curve Matching,"Technical Report NO.256,Co
urant Institute of Mathematical Sciences,N.T.,Nove
mber 1986参照)など、別の表現を用いることができ
る。
第20A図と第20B図は、たとえ曲線の表現が相違していて
も、折れ線ベース突合せアルゴリズムが一致する曲線を
どのようにして見付けるかを示す。第20A図の左側にあ
る曲線は、第20B図の左側にある曲線とは表現が相違す
る。しかし、両図の右側に示すように、左側の曲線から
作られた折れ線は、ほとんど同じ点を通過する。したが
って、距離比較テストは、形状の一致を見付けるであろ
う。
III.A.3.突合せ変換の計算 この時点で、構造ベース突合せアルゴリズム又は折れ線
ベース突合せアルゴリズムを使用する場合、アフィン変
換、例えば平行移動(始点を原点に合わせるため)、回
転(曲線をその基準向きの1っに置くため)、及び拡大
縮小(曲線を基準サイズへ拡大又は縮小するため)を使
用して、各曲線の1以上の基準形が導かれることは理解
されたであろう。元の曲線をその基準形の上にマップす
るアフィン変換を計算するとき使用するため、これらの
変換及び実行する順序はすぺて記録される。このアフィ
ン変換は、後で使用する基準形を用いて保存される。
2っの曲線GとHが実際に一致すると判断したら、曲線
Hを曲線Gにする変換を次のように計算することができ
る。もし曲線Hが曲線Gに一致すれば、曲線Hのある基
準形(Bと呼ぶ)は、曲線Gのある基準形(Aと呼ぶ)
と一致する。HをBにする変換及びGをAにする変換は
知られているから、これら2っの変換を用いて、曲線H
を曲線Gにする変換を計算することができる。HからG
への変換計算には、HからBへの変換の順方向の適用
と、GからAへの変換の逆方向の適用が必要であること
は理解されよう。
III.A.4.条件付き探索 次に詳しく説明するように、探索パターン内の対象の1
っ(先導対象)について、一致を発見したら、探索プロ
セスは、先導探索対象を、それに一致する画面対象にす
る変換Tを計算する。この変換Tは、節III.A.3.で述べ
た方向で求める。次に、探索プロセスは、同じ変換Tを
使用して、探索パターン内の他のすべての曲線を画面曲
線に一致させることができるかを知ろうと試みる。言い
換えると、探索パターン内の他の曲線の1っ、Hと一致
させるために、変換TがHをGにするような画面曲線G
を見付ける必要がある。
変換Tで特定の探索曲線Hを特定の画面曲線Gの上にマ
ップできるかどうかを判断するために、まず、上記の曲
線突合せアルゴリズムを用いることが好ましい。もしこ
れらの曲線突合せアルゴリズムを用いて、GとHが一致
しないと結論されたならば、曲線GとHは、変換Tの下
で一致せず、突合せは失敗する。しかし、これらのアル
ゴリズムに基づいて、GとHが一致すれば、以下の追加
テストを行う。
各曲線H上の異なる2点、例えば始点とその始点から最
も遠い点を選ぶ。次にこれらの2点に対して、変換Tを
適用する。続いて、変換されたHの始点とGの始点を比
較し、そしてHの変換された最遠点とGの最遠点を比較
する。もし比較した点が各ケースについてほぼ同じであ
れば、突合せは成功する。もしそうでなければ、突合せ
は失敗する。探索パターンの形状と傾斜したそれ自身の
変形とを比較することができるように、探索プロセスを
拡張する場合には、上記の2点の代わりに、Hの異なる
3点を変換して、比較する必要があることは理解される
であろう。
III.B.曲線突合せの流れ図と疑似コード III.B.1.曲線突合せの流れ図 第21図は、折れ線ベース突合せにおいて、曲線突合せア
ルゴリズムを実行する基本的ステップを示す。ステップ
71に指示するように、画面曲線Gと探索パターン曲線H
とを比較する。最初に、弧長や質量中心から最遠点まで
の距離のような、曲線Hの基準向きに左右されない2っ
の曲線の性質を比較する(ステップ72,73)。もしこれ
らの性質が非常に相違すれば、直ちに、曲線が一致しな
い旨がユーザーへ報告され、プロセスは終了する。もし
相違しなければ、曲線Hの特定の基準形(Bと呼ぶ)を
選び(ステップ74)、曲線Gの基準形(Aと呼ぶ)と比
較する(ステップ756,76)。詳しく述べると、最初に、
ステップ75で、Aの質量中心からAの始点までのベクト
ルと、Bの質量中心からBの始点までのベクトルとを比
較する。もしこれらのベクトルが非常に相違すれば、B
はAに一致しないことは明白である。そこで、ステップ
77で、もし試みるべき基準形がそのほかに残っていれ
ば、Aの形状とBの形状を厳密に比較せずに、プロセス
はHの別の基準形へ転じる。他方、もしAとBが予備テ
ストのすべてをパスすれば、ステップ76で、前に述べた
距離比較を用いて、Aの形状とBの形状を比較する。も
し、折れ線が一致すれば、曲線GとHは一致する(ステ
ップ78)。もし一致しなければ、プロセスは、ステップ
77へ戻り、Hの別の基準形に基づいて続行する。もし試
みるべきHの基準形がそれ以上存在しなければ、曲線G
とHは一致しない(ステップ80)。
構造ベース曲線突合せアルゴリズムを実行する必要なス
テップは、構造ベース突合せの場合では、(1)質量中心
の代わりに、始点からの最も遠い制御点を使用するこ
と、(2)距離比較(ステップ73)が、AとBが同数の線
分と同数の制御点を有するか否かを判断するテストで置
換されていること、及び(3)弧長比較(ステップ72)
が、曲線の制御点を次々に相互に連結する必要な直線線
分の累積長さを各曲線について比較するステップで置換
されていることを除いて、折れ線ベース突合せの場合と
同じである。
III.B.2.曲線突合せの疑似コード記述 以下の疑似コードは、3っのルーチンを使用して曲線突
合せアルゴリズムを記述する。「曲線形状比較」ルーチ
ンは、もし「曲線タイプ」探索パラメータがアクティブ
であれば、「構造ベース比較」ルーチンを呼び出し、さ
もなければ、「折れ線ベース比較」ルーチンを呼び出
す。疑似コードは、‖X−Y‖を用いて、点Xと点Y
間のユークリッド距離を表し、ポンド記号#を用いて
「等しくない」ことを表し、用語「手続き」の後に、
(G:画面曲線、H:探索パターン曲線)を用いて、手
続きが2っのパラメータG(画面曲線)とH(探索パタ
ーン曲線)を有することを表す。ここでは、全体を通じ
て、左矢印(←)を代入演算子として使用する。また、
括弧〔 〕,( )内の文は、注釈である。
疑似コードに移る前に、変数「位置記述子」は、以下説
明する探索アルゴリズムにとって重要であることを理解
されたい。この変数は、構造ベース比較ルーチン又は折
れ線ベース比較ルーチンで設定されるが、どちらにも使
用されない。変数「位置記述子」にリストされた変換
は、前に述べた節III.A.3.に説明したやり方で計算す
る。
「曲線形状比較」ルーチン:手続き(G:画面曲線、
H:探索パターン曲線)= もし探索窓枠で「曲線タイプ」がアクティブであれば、
〔構造ベース突合せを使用する〕 「構造ベース比較」ルーチンを呼び出す; 「構造ベース比較」ルーチンが見付けた一致(もしあれ
ば)をリターンする; さもなければ、〔折れ線ベース突合せを使用する〕 「折れ線ベース比較」ルーチンを呼び出す; 「折れ線ベース比較」ルーチンが見付けた一致(もしあ
れば)をリターンする; 「構造ベース比較」ルーチン:手続き(G:画面曲線、
H:探索パターン曲線)= もしGが曲線全体でなければ、 Gの構造ベース基準形を計算する; その基準形をAに保存する; さもなければ、A←初期化のとき計算したHの基準形; Bセット←初期化の際計算したHの基準形; B←Bセットの最初の要素; もしAの弧長#Bの弧長であれば、失敗をリターンす
る; もしAの線分の数#Bの線分の数であれば、失敗をリタ
ーンする; もしAの制御点の数#Bの制御点の数であれば、失敗を
リターンする; s←Aの始点; f←sから最も遠いAの制御点; s←Bの始点; f←sから最も遠いBの制御点; 「テストB」ルーチン: もしベクトルf−sがf−sと著しく相違すれ
ば、「次のB試行」ルーチンへ飛ぶ; 1からAの制御点の数までのすべての整数について、 Aのi番目の制御点からBのi番目の制御点までの距離
を求める; もし距離がゼロから著しく相違すれば、「次のB試行」
ルーチンへ飛ぶ; iのループ終了; もし「位置記述子」が空であれば(変換は現在提案され
ていない)、 位置記述子←基準形B,Aを介してHをGにする変換と、
A及び除外してきたHのすべての基準形を介してHをG
にする変換を加えたものから成る変換リスト; 成功をリターンする;(一致を見付けた) 「次のB試行」ルーチン: もし試みなかったBセットの要素がまだ存在すれば、 B←Bセットの次の要素; s←Bの始点; f←sから最も遠いBの制御点; 「テストB」ルーチンへ飛ぶ; さもなければ、失敗をリターンする:(一致はない) 「折れ線ベース比較」ルーチン:手続き(G:画面曲
線、H:探索パターン曲線)= もしGが曲線全体でなければ、 Gの折れ線ベース基準形を計算する; その基準形をAに保存する; さもなければ、A←初期化のとき計算したGの基準形; Bセット←初期化の際計算したHの基準形; B←Bセットの最初の要素; もしAの弧長#Bの弧長であれば、失敗をリターンす
る; s←Aの始点; m←Aの質量中心; f←sから最も遠いAの制御点; s←Bの始点; f←sから最も遠いBの制御点; 「テストB」ルーチン: もしベクトルf−sがf−sと著しく相違すれ
ば、「次のB試行」ルーチンへ飛ぶ; もし距離‖m−sが‖m−sと著しく
相違すれば、「次のB試行」ルーチンへ飛ぶ; 1からAの頂点の数までのすべての整数について、 sからAのi番目の頂点までの「渡し距離」wを求め
る; sから「渡し距離」wにあるA上の点pを求める; もしpからBのi番目の頂点までの距離が許容値より大
きければ、「次のB試行」ルーチンへ飛ぶ; iのループ終了; 1からBの頂点の数までのすべての整数について、 sからBのi番目の頂点までの「渡し距離」wを求め
る; sから「渡し距離」wのB上の点pを求める; もしpからBのi番目の頂点までの距離が許容値より大
きければ、「次のB試行」ルーチンへ飛ぶ; iのループ終了; もし「位置記述子」が空であれば(変換が現在提案され
ていない)、 位置記述子←基準形B,Aを介してHをGにする変換と、
A及び除外してきたHのすべての基準形を介してHをG
にする変換を加えたものから成る変換リスト; 成功をリターンする:(一致を見付けた) 「次のB試行」ルーチン: もし試みなかったBセットの要素がまだ存在すれば、 B←Bセットの次の要素; s←Bの始点; m←Bの質量中心; f←sから最も遠いBの制御点; 「テストB」ルーチンへ飛ぶ; さもなければ、失敗をリターンする:〔一致は存在しな
い〕 IV.図形の形状及び性質の能率的探索 本発明の図形探索置換法は、すべての曲線が塗りつぶし
の色、線の色、線の幅、ダッシュパターンなどの図形ス
タイルが相違する曲線の集りを見付けることができる。
また、もし1以上の形状の集りが探索パターンと一致す
れば、本方法は、原則として、それらの一致を上から
下、左から右の順序で報告する。本節は、図形画面内の
次の図形パターンの出現を見付けるアルゴリズムについ
て説明する。ここで、「次の」の図形パターンの出現
は、上から下、左から右の順序において最も新しく一致
した図形パターンの出現の後に続く。このアルゴリズム
は、優れた成果を得るため次の戦略を用いている。
1)問合せの最適化.探索パターンのすべての情報を分類
して、それらの特徴のうち、(i)画面内の形状と比較す
る計算費用が少ない特徴、又は(ii)探索パターンと一致
する可能性のある画面対象の数を迅速に限定すると思わ
れる特徴を識別する。これらの識別された性質を最初に
比較する。この最適化を続ける場合、探索パターン内の
1っの曲線をいわゆる先導曲線に選ぶ。探索パターン内
の他の形状に対する突合せを実行する前に、まず、この
先導曲線について画面を検査する。
2)条件付き探索.先導曲線をシーン曲線にマップする変
換Tを求めたら、その変換Tをそれらに適用し、得られ
た対象の位置に注目し、それらの対象の位置から遠い画
面対象を除外することによって、探索パターンの残りの
対象が、その特定の変換Tで一致するかどうかを迅速に
判断する。
IV.A.探索置換アルゴリズム ユーザーがユーザーインタフェース(第2A図)の“YE
S”オプションを選択して、探索置換手続きをいったん
開始すると、3っの計算フェーズが、初期化、探索、及
び置換の順序で実行される。しかし、ユーザーが割込み
操作を用いずに、繰り返して“YES”オプションを選択
すると、初期化フェーズは一度実行されるだけである
が、探索フェーズと置換フェーズは、交互に実行され
る。すなわち、計算フェーズは、初期化、探索、置換、
探索、置換、等の順序で実行される。同様に、“CHANGE
ALL”オプションを選択すると、装置は、初期化を最初
に、その後は探索と置換を交互に、3っの計算フェーズ
を自動的に実行する。幾つかの探索と置換を、この交互
のやり方で実行する場合、プロセスは、最も新しい初期
化以来すべての探索フェーズで発見されたすべての対象
を追跡し続け、それらのどれもが再度突き合わされるこ
とがないようにする。また、置換フェーズで加えられた
すべての対象は、ユーザーが新しい初期化を要求するま
で、探索フェーズによって発見される資格を有しない。
これにより、“CHANGEALL”オプションは確実に予測さ
れる結果を有し、常に終了する。
探索置換プロセスの3っのフェーズで実行される操作は
次の通りである。
1)初期化.このフェーズは探索パターンと図形画面の分
析をする。初期化は、探索に関係のある画面の性質及び
探索パターン対象を表すデータ構造を作る。これらのデ
ータ構造は、以後の計算能率を向上させため分類され
る。
2)探索.このフェーズは、探索パターンのデータ構造と
画面を表すデータ構造とを比較し、上から下、左から右
の順序で、その探索パターンの次の一致を見付ける。
3)置換.もし一致が見付かれば、このプロセスは、探索
パターンに一致した画面対象を選ぶ。次に、置換すべき
場合には、一致した画面対象の指定した性質を、置換パ
ターンに記述された対応する性質で置換する。ユーザー
が新規に初期化を行うまでは、元の画面対象のみがその
以後の探索フェーズにおいて突き合わされる資格を有す
るので、プロセスは、この置換フェーズの間に画面に加
えられた形状と元の画面対象とを区別する。
次節は、(1)先導探索対象をどのように選ぶか、(2)探索
及び置換において用いた主データ構造、(3)初期化、探
索、及び置換、(4)これらのフェーズにおいてデータ構
造をどのように最新に保つか、をさらに細分して説明す
る。
IV.A.1.先導曲線と先導対象 初期化フェーズの最重要な結果の1っは、単に「先導対
象」とも呼ばれる先導探索対象の選択である。もし細分
度=クラスタであれば、先導探索対象はクラスタであ
る。もし細分度=曲線又は線分であれば、先導対象は曲
線である。探索フェーズにおいて、プロセスは、探索パ
ターン内の他のどれかの対象との一致を見付け出す試行
に先立って、常に先導対象との一致を見付け出す試行を
する。探索パターンのどの対象を先導対象に用いてもよ
い。
先導対象の曲線の1っを「先導曲線」に選ぶ。先導対象
と画面クラスタ又は曲線とを比較するプスセスにおい
て、この先導曲線は、先導対象のすべての曲線の中で、
画面曲線と比較される最初の曲線である。先導対象とし
て、探索パターン内のどの対象を用いてもよいし、また
先導曲線として探索パターン内のどの曲線を用いてもよ
い。
しかし、もし先導曲線を注意深く選べば、探索は、そう
しないより迅速に進行するであろう。例えば、それは、
考えられる最小の向きでそれ自身に一致する先導曲線を
選択することである。より詳細に説明すると、第22A図
〜第22D図は、先導曲線として好ましい順序で示した4
っの曲線である。第22A図に示した開曲線が最良であ
る。その理由は、唯一の向きで、同一形状の他の曲線に
一致させることができるからである。一般に、開曲線
は、多くても2っの向きで他の曲線と一致することがで
きる。次に良い曲線は、第22B図に示す非対称の閉曲線
である。その理由は、唯一の向きで、それ自身に一致さ
せることができるからである。第22C図に示した正方形
のような有限回転対称の形状が、その次に好ましい。そ
の理由は、幾つかの向きで、それ自身に一致させること
ができるからである。最後に、第22D図に示した円は、
それ自身に一致させることができる向きが無数にあるか
ら、先行曲線として考えられる最悪の選択である。
探索フェーズにおいては、探索パターン全体について完
全な一致が見付かるまで、先導対象が画面内の各対象と
比較される。先導曲線の第1の基準形が画面曲線と一致
したら、探索曲線の残部を対応する画面曲線に一致させ
る変換を見付けるため、先導曲線の他の基準形を画面曲
線と比較する必要のあることが多い。したがって、対称
性の少ない(つまり、基準形の少ない)先導曲線を選べ
ば、比較回数を減らせることは明白である。
IV.A.2.主データ構造 探索フェーズ及び置換フェーズにおいて、プロセスは、
以下述べる、互いに相いれない異なる3セットの曲線線
分について情報を得なければならない。すなわち、 1)適格セット.適格セットは、まだ突き合わせる資格を
有する画面内のすべての線分を含む。このセットは、初
期化後、探索される資格を有する画面の部分を識別する
ため使用したキャリットその他の指示記号に先行するす
べての線分を含む。探索フェーズが1以上の線分との一
致に成功すると、これらの一致した線分は、適格セット
から除かれる。
2)仮セット.仮セットは、探索フェーズの間だけ空でな
い。仮セットには、提案された変換の下で探索パターン
の対応線分と突き合わされる画面の線分が含まれる。こ
れらの線分は、一致する画面線分が見付からなかった探
索パターンの線分が1以上あるとき、一時的に突き合わ
されるだけである。提案された変換を用いて、探索窓枠
23(第2A図)内のすべての線分が一致する画面線分を見
付けたとき、あるいはそのような一致する線分を見付け
ることができないとプロセスが判断したとき、仮セット
は再び空になる。仮セット内のすべての線分は、適格セ
ットにも含まれていなければならない。
3)順序付きセット.順序付きセットは、探索パターンの
先導対象とまだ余すことなく比較されていない適格セッ
ト内の線分を含む。定義によれば、(i)前の探索フェー
ズにおいて、これら線分は一致していない。(ii)現在の
探索フェーズにおいて、先導対象をそれらの線分の上に
マップするかも知れない未試行の先導対象の向きがまだ
1以上ある。
順序付きセット内の線分について完全な順序付けがあ
る。この順序付けは、曲線についての順序付けから導か
れる。詳細に述べると、細分度=クラスタであれば、ク
ラスタは、それらの境界ボックスの上左隅によって、上
から下、左から右に順序付けされる。したがって、もし
この順序付けにおいて、クラスタAがクラスタBに先行
すれば、クラスタAのすべての曲線は、クラスタBのす
べての曲線に先行する。もちろん、クラスタ内では、曲
線は、クラスタを作ったときユーザが与えた順序を有す
る。最後に、曲線内では、線分は前に述べた自然順序を
使用する。細分度=曲線又は線分であれば、曲線は、そ
れらの境界ボックスの上左隅によって順序付けられ、曲
線内の線分は自然順序を使用する。理解されるように、
上記の規則は線分に関する完全な順序付けを定めてい
る。しかし、ユーザーが逆方向の順序(下から上、右か
ら左)で探索する場合は、この線分の順序が逆になる。
次に、以上異なる3っのセットの具体化について説明す
る。
順序付きセット.順序付きセットは、一般に、1組のビ
ットとクラスタ又は曲線のリストで表現される。各画面
線分について、「アヘッドビット(ahead bit)」と呼ば
れるビットが記憶される。線分のアヘッドビットが1(T
RUE)であれば、その線分は、探索パターンの先導対象と
まだ余すとろこなく比較されていない。アヘッドビット
が0(FALSE)であれば、線分は余すとろこなく比較され
ている。また、すべての線分がTRUEのアヘッドビットを
有するクラスタのすべて(細分度=クラスタの場合)、
又はすべての線分がTRUEのアヘッドビットを有する曲線
のすべて(細分度=曲線の場合)、又はどれかの線分が
TRUEのアヘッドビットを有する曲線のすべて(細分度=
線分の場合)が、「アヘッドリスト(ahead list)」と呼
ばれるリストに記載される。このアヘッドリストは、線
分の境界ボックスの上左隅によって分類される。
適格セット.適格セットは、1組のビットとクラスタ又
は曲線のリストによって適当に表現される。各画面線分
について、「突合せビット(match bit)」と呼ばれるビ
ットが記載される。線分の一致ビットが1(TRUE)であれ
ば、その線分は最後の初期化フェーズ以来まだ突き合わ
されていない。突合せビットが0(FALSE)であれば、そ
の線分は最後の初期化フェーズ以来既に突き合わされて
いるので、突き合わされる資格を持たない。また、すべ
ての線分がTRUEの「突合せビット」を有するクラスタの
すべて(細分度=クラスタの場合)、又はすべての線分
がTRUEの突合せビットを有する曲線のすべて(細分度=
曲線の場合)、又はどれかの線分がTRUEの突合せビット
を有する曲線のすべて(細分度=線分の場合)が、「画
面リスト(scene list)」と呼ばれるリストに記載され
る。画面リストは、2っの部分に記憶される。第1の部
分は、「アヘッドリスト」である。これは順序付きセッ
トを表現する場合にも使用されており、前述のように順
序付けされる。第2の部分は、「ビハインドリスト(beh
ind list)」と呼ばれ、特定の順序なしに記憶される。
この部分は、アヘッドリストに記載されていない適格線
分を有するすべてのクラスタ又は曲線を含む。
仮セット.各画面線分について、「仮ビット(tentative
bit)」と呼ばれるビットが記憶される。線分の仮ビッ
トが1(TRUE)であれば、その線分は探索パターン内の対
応する線分と一時的に一致している。仮ビットが0(FAL
SE)であれば、その線分は、これまで一時的な一致の部
分をなしたことがない。
IV.A.3.初期化 初期化の際、プロセスは、上から下、左から右の順序
で、キャリット記号に先行するすべての画面形状のリス
トを作る。その場合、対象の境界ボックスの上左隅を使
用して、リストの順序付けの位置を決定する。これらの
画面形状は、次の初期化までに探索された形状のみであ
る。リストに載っている各対象について、対象のすべて
の線分が順序付きセットと適格セット内にあり、そして
線分のどれもが仮セット内にないことを示す適当なビッ
トを設定する。最後に、探索フェーズにおいて容易にア
クセスできるように、探索パターン内の各対象につい
て、ユーザーが探索に興味を示した対象の性質(例え
ば、各線分の色又は輪郭の領域の色)の値を選び出す。
初期化を実行すべき場合が幾つかある。第1に、もし特
定の画面が全く探索されなかったならば、曲線の基準形
を含む必要なデータ構造を構成するために、初期化が必
要である。第2に、探索方向を逆にする場合には、上か
ら下の順序の代わりに下から上の順序で(又はその逆)
画面対象を探索することができるように、画面対象を逆
にしなければならない。第3に、もしユーザーが手で画
面を編集したり、キャリット記号を新しい位置へ動かし
たならば、キャリット記号に先行する最初の対象から探
索が確実に始まるように、初期化が必要である。第4
に、もし最後の探索後、探索パターンを変更したなら
ば、編集した画面を忠実に表現するために、新しいデー
タ構造を構成しなければならない。もちろん、画面を表
現するデータ構造は、探索の細分度や、探索が回転不変
性かスケール不変性かによって異なる。したがって、こ
れらの探索パラメータを変更したときも、画面を表現す
るデータ構造を再計算する必要がある。
IV.A.4.探索 前に触れたように、探索フェーズにおいては、探索パタ
ーンの先導曲線と画面内の曲線は、基本的に上から下の
順序で比較される。この比較を計算するため、先導曲線
の基準形と各画面曲線の基準形の1っを使用する。特定
のアフィン変換Tを使用し先導曲線を対応する画面曲線
に合わせることによって、先導曲線について一致が見付
かったら直ちに、プロセスは、その同じ変換Tを使用し
て、探索パターン内の曲線の残りと対応する画面曲線と
を比較する。変換Tを使用して探索曲線のすべての突合
せに成功すれば、プロセスは終了する。成功しなけれ
ば、プロセスは、先導曲線を、与えられた同じ画面対象
に一致させる別の変換を見付ける試行をする。しかし、
もっともらしく思われるすべての変換を検討し尽くした
ら、プロセスは、先導曲線を現在の画面曲線に一致させ
る試行を中止して、先導曲線を順序内の次の画面曲線と
一致させる試行へ進む。
幾つかの探索パターン曲線を同一画面曲線に突き合わせ
ることがないように、前に述べた仮ビットを使用して、
提案した変換Tの下で、どの画面曲線が探索パターン内
の対応する線分と既に一致したかの情報を得る。もしあ
る変換Tの下で、すべての探索曲線を一致させることが
不可能であるとわかったら、すべての仮ビットをクリヤ
して、新しい変換を提案する。したがって、探索パター
ン内の全部の曲線について、一致が見付かった場合、又
は探索パターンの先導曲線と比較する画面曲線がそれ以
上存在しない場合には、探索フェーズが終了することは
理解されよう。前者の場合は、一致が確実に存在するの
に対し、後者の場合は、探索は失敗する。
形状に関する付合せのとき、能率を向上させるために、
条件付き探索を用いてもよい。先導対象について一致が
見付かったとき、その一致の場所は、探索リストの残部
の形状を探す画面内の場所を少なくともおおざっぱに指
示する。したがって、境界ボックスを用いて、探索リス
トに残っている多数の対象を迅速に除外することが可能
である。また、特定の変換Tを探索対象に適用したと
き、与えられた探索パターン対象の一点がマップする場
所を計算することによって、変換した点が境界ボックス
に含まれていない探索リスト上のすべての対象を除外す
ることが可能である。実際には、探索が厳密でない場合
は、その点が含まれているかについてテストする前に、
許容誤差に比例する量だけ境界ボックスを拡大する。さ
らに別の迅速化手段は、探索リストが境界ボックスの左
上隅によって順序付けられるので、探索リストのセクシ
ョン全体を迅速に除外することができるという事実を利
用している。
細分度=線分の場合の探索のメカニズムは、上記よりい
くらか複雑であり、パターンリスト内の対象と探索リス
ト内の対象の全部又は一部とを比較する。したがって、
一致を見付したときは常に、探索が終了した場所を正確
に指示する情報が保存される。もし探索リストのどれか
の部分がそれまでに検査されなかったならば、同じ探索
リストの別の部分について、次の探索を続けることがで
きる。また、一致を発見された後、将来同じ対象を突き
合わすことがないように、探索リストが更新される。探
索によって見付けた編集用窓22(第2A図)内の突合せ対
象が選択され、他のすべての対象が除かれる。これは、
2っの機能を果たす。第1に、この選択のフィードバッ
クにより、対象のどのセットが一致したかがユーザーに
指示される。第2に、この選択のフィードバックによ
り、抹消、色の変更、変換を含む、選択した対象に作用
する編集操作のどれかで、一致した対象を修正する準備
が完了する。ガーゴイル(Gargoyle)編集プログラムで
は、一致の位置にソフトウェアのキャリット記号を置き
直す。もしYESまたはCHANGEALLが実行中であれば、この
時点で、置換又はマクロ操作を実行する。
IV.A.5.置換 一致が見付かりさえすれば、探索パターン曲線の全部を
図形画面内の対応する曲線にマップする既知の変換Tが
存在する。また探索プロセスは探索パターン内の曲線線
分と画面内の対応する曲線線分との一致も同時に立証し
た。したがって、この時点で、置換を行う場合には、ユ
ーザーインタフェース(第5図)の「置換」欄を吟味す
る。形状以外の性質(すなわち、図形的スタイル)だけ
を置換する場合には、置換窓枠24(第2A図)内の形状か
らそれらの性質の値を選び出して、一致した対象に適用
する。形状を置換する場合には、一致した対象を抹消
し、置換窓枠24内の対象を画面に複写する。そのとき新
しい画面対象は、前述のように、一致した形状から、
「置換」欄(第5図)に指定されていない性質を受け継
ぐ。
探索プロセスが形状の突合せをしているか否かによっ
て、置換フェーズにおいて、新しい画面対象を画面に位
置決めする。形状の突合せをしている場合は、変換T
が、置換窓枠の形状に適用される。さもなければ、置換
対象の境界ボックスの中心と、一致した対象の境界ボッ
クスの中心とが合わさるように、置換対象を位置決めす
る。
ディジタル合成図形画面には、すべての対象(例えば、
輪郭やクラスタ)が特定の順序で描かれる。後に描かれ
た対象は、先に描かれた対象を不明りょうにすることが
ある(その上に置かれることがある)。したがって、形
状を置換する置換操作においては、可能なときはいつで
も、置換する形状などの対象の描き順序で、新しい形状
を同じ位置に置くことが望ましい。しかし、一致した対
象は、この順序付けの幾つかの異なる位置に見付かるこ
とがあるので、それらに対する置換対象は、どれかの一
致した対象0が描かれたであろう描き順すなわち層の最
先の場所に、すべてが描かれるように置く。置換対象
は、それ自体内では、置換窓枠24(第2A図)内にあった
とき有していた描き順すなわち層を保っている。
画面を更新したときは、探索のために画面を表すデータ
構造を更新する必要がある。そのため、置換された線分
に対するすべての引用をデータ構造から除去する。ま
た、最も新しく先導曲線と比較された線分は識別される
ので、次の探索操作は、線分の順序における次の線分か
ら取り掛かることができる。
IV.B.探索置換操作の簡単な流れ図と疑似コード IV.B.1.探索置換操作の流れ図の概略 ユーザーがCHANGEALLオプション(第2A図)を選択する
と、全部で3っの図形探索置換フェーズが実行される。
最初に、初期化フェーズにおいてデータ構造が作られ
る。次に画面の全領域が探索されるまで、探索フェーズ
と置換フェーズが交互に実行される。第22図の流れ図
は、CHANGEALLオプションを選択した場合の探索置換ア
ルゴリズムの概略を示す。
IV.B.2.初期化の疑似コード記述 下の疑似コードは、探索データ構造をどのようにして構
成するかを詳細に記述する。前に指摘したように、デー
タ構造の書式は、実行する探索のタイプによって異な
る。初期化フェーズの際の主要な変数を下に挙げる。
1)方向(direction) 方向=順方向であれば、プロセスは、次の一致を上から
下、左から右の順序で探索し、方向=逆方向であれば、
次の一致を下から上、右から左の順序で探索する。
2)最終方向(lastDirection) 「最終方向」は、変数「方向」が、すぐ前の探索のとき
に有していた値である。
3)細分度(granularity) 思い出されるであろうが、「細分度」は、値「クラス
タ」、「曲線」、「線分」を取ることができる。
4)アヘッドリスト(aheadlist) 構造が、変数「対象情報」の記述中に記載されている記
録のリストである。「アヘッドリスト」は、既に余すと
ころなく先行対象と比較された線分を除いた、順序付き
セット内の線分を含むすべてのクラスタ又は曲線を指
す。
5)ビハインドリスト(behindList) 「ビハインドリスト」は、同様に変数「画面情報」のリ
ストであり、まだ突合せ適格を有する線分を含むが、順
序付きセット内の線分を含まないすべてのクラスタ又は
曲線を指す。言い換えると、これらのクラスタ又は曲線
のすべての線分は、既に余すところなく先行対象と比較
されている。
6)対象情報(objectInfo) 細分度=クラスタであれば、変数「対象情報」は、探索
パターン内の1クラスタを表し、細分度=曲線又は線分
であれば、探索パターン内の1曲線を表す。
7)探索リスト(searchList) 構造が、変数「対象ルックス」の記述中に記載されてい
る記録のリストである。「探索リスト」は、探索パター
ン内の各対象0について1個のリスト要素を有する。
8)対象ルックス(objectLooks) 細分度=クラスタであれば、「対象ルックス」は探索パ
ターン内の1クラスタを表し、細分度=曲線又は線分で
あれば、探索パターン内の1曲線を表す。「対象ルック
ス」は、関連する対象内の各曲線cについて1個の要素
を有するリストである(細分度=曲線又は線分の場合、
そのような曲線は1っだけがある)。各曲線に対応する
要素は、それ自身、曲線内の各線分について1個の要素
を有するリストである。各線分の要素は、1っの線分s
の図形的性質を記述する。これらの図形的性質には、線
分sの形状、関連する対象oのクラス、線分sの曲線タ
イプ、線分sの線の色、関連曲線cのオストワルト純
色、線分sのダッシュパターン、曲線cのストローク接
合のスタイル、曲線cのストローク端のスタイル、及び
線分sのストローク幅が含まれる。また「対象ルック
ス」は、最小の対称性を有する曲線の2っの性質を記述
する2っのフィールド、「向きカウント」と「折れ線カ
ウント」を有する。詳しく述べると、「向きカウント」
は、特定の曲線の基準向きの個数であり、「折れ線カウ
ント」は、曲線の折れ線近似形の直線線分の個数であ
る。
9)最終キャリット位置(lastCaretPos) この変数は、最後の一致を見付けたとき、プロセスがキ
ャリット記号を置いた場所の情報を得るため使用する点
(x-y座標対)である。
10)キャリット位置(caretPo) この変数は、キャリット記号が現在置かれている場所を
示す別の点(別のx-y座標対)である。ユーザーはキャ
リット記号を動かすことができるので、「キャリット位
置」は「最終キャリット位置」と同じのことも、異なる
こともある。
11)突合せビット(match bits) 画面内の各曲線線分は、「突合せベット」と呼ばれる関
連するブール変数を有する。「突合せビット」は、その
曲線線分がそれまで突き合わされていなければ、TRUEで
あり、突き合わされていれば、FALSEである。
次に説明する4っのルーチンが初期化を実行する。主ル
ーチンは、「探索初期化」ルーチンである。このルーチ
ンは、「アヘッドリスト作成」ルーチンと、「探索パタ
ーン分析」ルーチンを呼び出す。そして、「アヘッドリ
スト作成」ルーチンは「探索探索記述」ルーチンを呼び
出す。
探索初期化ルーチン:手続き= アヘッドリスト←NIL;ビハインドリスト←NIL;(両リ
ストを空リストへ初期化する) もしキャリット位置#最終キャリット位置又は“SEARC
H”オプションの押しが最初であれば、 「アヘッドリスト作成」ルーチンを呼び出す;(スクラ
ッチからアヘッドリストを作成する) もし方向#最終方向であれば、(探索方向が変わった) 「アヘッドリスト作成)ルーチンを呼び出す;(スクラ
ッチからアヘッドリストを作成する) 線分の一部が前の探索操作によって一致した各曲線cに
ついて、 一致したばかりのそれらの線分のアヘッドビットをFALS
Eにセットする;(その結果、探索方向を逆にしたと
き、同じ線分が再び一致することはない) もし曲線cのすべてのアヘッドビットがこのときFALSE
ならば、 曲線cをアヘッドリストから除き、ビハインドリストに
入れる; 一致した曲線のループを終了; さもなくば、もし“SEARCH”オプションの押しが最初で
あるか、又は前の探索以来探索パターンを編集した最初
であれば、 「探索パターン分析」ルーチンを呼び出す;(スクラッ
チから探索リストを作成する) 「アヘッドリスト作成」ルーチン;手続き= 画面内のすべての線分の突合せビットをFALSEにセット
する; 画面内のすべての線分のアヘッドビットをFALSEにセッ
トする; キャリット記号に先行する各画面対称oについて、 「探索対象記述」ルーチン(o,アヘッドリスト)を呼
び出す;(曲線oの記述をアヘッドリストに加える) 曲線oのすべての線分のアヘッドビットをTRUEにセット
する; 曲線oのすべての線分の突合せビットをTRUEにセットす
る; 画面対象のループを終了; もし方向=順方向であれば、各曲線の境界ボックスの上
左隅のy座標を減らすで、アヘッドリストを分類する; さもなくば、各曲線の境界ボックスの上左隅のy座標を
増すことで、アヘッドリストを分類する; 「探索対象記述」ルーチン;手続き(o:画面対象,ビ
ッグリスト:対象情報のリスト)= 対象情報←NIL; oの構成要素である各曲線について(方向=順方向なら
ば正順で、方向=逆方向ならば逆順で、曲線を検討す
る)、 曲線情報←NIL; cに含まれる各線分sについて(方向=順方向ならば正
順で、方向=逆方向ならば逆順で、線分を検討する)、 ユーザーがオンしたs,pの各性質について、 もしpが形状性質であり、折れ線突合せアルゴリズムを
使用する場合には、sを折れ線に変換し、折れ線を形状
として使用する; レコード「情報」に、sに関するpの値を記録する; 線分のループ終了; もし細分度=線分又は曲線ならば、 「曲線情報」をリスト「ビッグリスト」に加える; さもなくば、「曲線情報」をリスト「対象情報」に加え
る;(細分度=クラスタ) 曲線のループ終了; もし細分度=クラスタであれば、「対象情報」をリスト
「ビッグリスト」に加える; 「探索パターン分析」ルーチン;手続き= 探索リスト←NIL; 探索パターン内の各対策oについて、 対象ルックス←NIL; oの構成要素である各曲線cについて、 対象ルックス→NIL; cに含まれている各線分sについて、 ユーザーがオンしたs,pの各性質について、 pが形状性質であり、折れ線突合せアルゴリズムを使用
するのであれば、sを折れ線へ変換し、折れ線を形状と
して使用する; レコード「ルックス(Looks)」にsに関するpの値を記
録する; 性質のループ終了; 「ルックス」をリスト「曲線ルックス」に加える; 線分のループ終了; もし細分度=線分又は曲線であれば、 「曲線ルックス」をリスト「探索リスト」に加える; さもなければ、「曲線ルックス」をリスト「対象ルック
ス」に加える;(細分度=クラスタ) 曲線のループ終了; もし細分度=クラスタであれば、 「対象ルックス」をリスト「探索リスト」に加える; 対象のループ終了; 探索の能率を高めるため、得られたリスト「探索リス
ト」に基づき「探索形状分類」ルーチンを呼び出す;
(「探索形状分類」ルーチンをリターンするとき、探索
リストの最初の要素が先行対象である。) 「探索形状分類」ルーチン:手続き= 「形状」性質を探索しない場合は、探索リストはそのま
まにしておく さもなければ、 探索リスト内の各要素eについて、 最良曲線←最小対称性を有する要素eの曲線; 向きカウント←最良曲線の基準向きの数; 折れ線カウント←最良の折れ線近似形の直線線分の数; ループ終了; 向きカウントが増加する順序で、探索リストを分類す
る。関連がある場合、折れ線カウントが増加する順序で
探索リストを分類する; IV.B.3.探索の疑似コード記述 下の疑似コードは、探索をどのように実行するかを記述
する。簡単に言うと、上に説明した初期化フェーズのと
き作成した「探索リスト」、「アヘッドリスト」、「ビ
ハインドリスト」を相互に比較して、「アヘッドリス
ト」と「ビハインドリスト」内の対応する対象に一致す
る「探索リスト」内の対象を見付け出す。探索のとき、
画面対象と、探索パターンの先導対象とを余すところな
く比較したら、画面対象を「アヘッドリスト」から「ビ
ハインドリスト」へ移す。
探索フェーズにおいては、初期化フェーズにおいて導入
した変数に加えて、以下の変数を使用する。
1)現比較対象(thisAhead).この変数は、探索パターン
の先導対象と現在比較している画面対象を表す。変数
「現比較対象」は、「アヘッドリスト」の最初の要素で
ある。
2)位置記述子(positionD:position descriptorの
略).この変数は、現在の先導曲線を「現比較対象」の
対応する線分にする変換のすべてのリストである。
3)マッピング(mapping).この変数は、対のリストであ
り、第1要素は探索パターン内の対象、曲線、又は線分
であり、第2要素は画面内の突合せ用の対象、曲線、又
は線分である。
4)画面リスト(sceneList).この変数は、「アヘッドリ
スト」の要素と「ビハインドリスト」の全要素を含むリ
ストであり、「アヘッドリスト」のすべての順序付き要
素は、特定の順序を有しない「ビハインドリスト」の要
素に先行する。この「画面リスト」は、適格セット内の
すべての画面線分を含んでいる。
5)仮ビット(tentative bits).画面内の各線分は、仮ビ
ットを有する。このビットは、線分が探索パターン内の
対応する線分と仮に一致した場合だけ、TRUEである。
6)現比較対象の一致部分(thisAheadParts). この変数は、「先導対象突合せ」ルーチンの最も新しい
呼出しにおいて、先導対象と一致した「現在比較対象」
の部分を表す。
7)現比較対象の未突合せ部分(nextAheadParts).この変
数は、先導対象とまだ余すところなく比較されていない
「現比較対象」の部分を表し、比較される資格を有す
る。
8)極性オン(polarityOn).この変数は、「極性」探索パ
ラメータ(第3図参照)がアクティブであれば、TRUEで
あり、さもなければ、FALSEである。
9)形状オン(shapeOn).この変数は、「探索」欄(第5
図参照)の「形状」パラメータがオンであれば、TRUEで
あり、さもなければ、FALSEである。
「次の一致発見・選択」ルーチン;手続き= 「探索パターン突合せ」ルーチンを呼び出す; もし「探索パターン突合せ」が成功すれば、すべての画
面対象を選択から外す; 文脈依存性探索の場合は、 探索窓枠内の選択した対象に対応する一致した画面対象
を選ぶ; さもなくば、 一致したすべての画面対象を選ぶ; 最終キャリット位置←キャリット位置; キャリット位置←先導対象と一致した画面対象の境界ボ
ックスの上左隅; さもなくば、 すべての画面対象を選択から外す; これ以上の一致がないことをユーザーに知らせる; 「探索パターン突合せ」ルーチン;手続き= 画面リストのすべての線分の仮ビットをFALSEにセット
する; もし画面リスト=NIL又はアヘッドリスト=NILであれ
ば、失敗をリターンする;(探索パターンがない、又は
探索すべき画面対象が残っていない) 先導対象←探索リストの最初の要素; 他の対象←探索リストの残りの要素; 現比較対象←アヘッドリストの最初の要素; アヘッドリストが空になるまで、又は一致が見付かるま
で、 位置記述子←無; マッピング←NIL; もし「現比較対象」の1以上の要素がTRUEであれば、 「先導対象突合せ」ルーチン(現比較対象,先導対象)
を呼び出す; もし「先導対象突合せ」ルーチンが一致の発見に成功す
れば、 〔現比較対象一致部分、現比較対象未突合せ部分、及び
位置記述子は新しい値を有する〕 「現比較対象一致部分」にリストされたすべての線分の
仮ビットをTRUEにセットする; 「他対象突合せ」ルーチン(他対象)を呼び出す; もし「他対象突合せ」ルーチンが一致の発見に成功すれ
ば、「一致発見」ルーチンへ飛ぶ; 「位置記述子」内の未試行の各向きについて、 「先導対象突合せ」ルーチン(現比較対象、先導対象)
を呼び出す; もし「先導対象突合せ」ルーチンが一致の発見に成功す
れば、 「他対象突合せ」ルーチン(他対象)を呼び出す; もし「他対象突合せ」ルーチンが成功すれば、「一致発
見」ルーチンへ飛ぶ; 向きのループ終了; さもなくば、「突合せ失敗」ルーチンへ飛ぶ; さもなくば、「突合せ失敗」ルーチンへ飛ぶ; 「一致発見」ルーチン: 「現比較対象未突合せ部分」の線分を除き、「現比較対
象」のすべての線分のアヘッドビットをFALSEにセット
する; もし「現比較対象」のすべてのアヘッドビッドがFALSE
であれば、 アヘッドリストから「現比較対象」を除く; 「現比較対象」をビハインドリストに加える; 「マッピング」のすべての線分の突合せビットをFALSE
にセットする; 成功をリターンする; 「突合せ失敗」ルーチン: 「現比較対象一致部分」内のすべての線分のアヘッドビ
ットをFALSEにセットする; 「現比較対象」←「現比較対象未突合せ部分」; さもなくば、(現比較対象にそれ以上未突合せの部分が
残っていないので、次の現比較対象へ進む) アヘッドリストから「現比較対象」を除く; 「現比較対象」をビハインドリストへ加える; もしアヘッドリストが空であれば、失敗をリターンす
る; 現比較対象←アヘッドリストの最初の要素; アヘッドリストのループ終了; 「先導対象突合せ」ルーチン:手続き(画面部分、探索
対象)= もし細分度=線分ならば、 c←画面部分で表した曲線; t←探索対象で表した曲線; 「最大ラン突合せ」ルーチン(c,t)を呼び出す;[「最
大ラン突合せ」ルーチンはt(のすべて)と一致する曲
線cの線分の最大ラン、「一致した部分」を見付ける] もし線分のランが探索対象(一致した部分=NIL)と一
致しなければ、 「現比較対象未突合せ部分」←NIL; 失敗をリターンする; さもなくば、 「現比較対象未突合せ部分」←(画面部分)−[(一致
した部分のすべての線分)+(一致した部分の線分の前
にくるcのすべての線分(一致した部分が探索対象と正
順で一致した場合)又は一致した部分の後にくるcのす
べての線分(一致した部分が探索対象と逆順で一致した
場合)]; 成功をリターンする; もし細分度=曲線であれば、 c←画面部分で表した曲線; t←探索対象で表した曲線; 「2曲線(c,t)突合せ」ルーチンを呼び出す; 「現比較対象未突合せ部分」←NIL; もし「2曲線突合せ」ルーチンが、cとtが一致するこ
とを発見すれば、 「一致した部分」←c; 成功をリターンする; 「一致した部分」←NIL: 失敗をリターンする; もし細分度=クラスタであれば、 「全曲線突合せ」ルーチン(画面部分,探索対象)を呼
び出す; もし「全曲線突合せ」ルーチンが画面部分と探索対象の
突合せに成功すれば、 「クラスタ一致発見」ルーチンへ飛ぶ; さもなくば、「クラスタ突合せ失敗」ルーチンへ飛ぶ; 「クラスタ一致発見」ルーチン: 「一致した部分」←画面部分; 「現比較対象未突合せ部分」←NIL; 成功をリターンする; 「クラスタ突合せ失敗」ルーチン: 「一致した部分」←NIL; 「現比較対象未突合せ部分」←NIL; 失敗をリターンする; 「1対象突き合わせ」ルーチン:手続き(画面部分、探
索対象)= このルーチンは、「現比較対象未突合せ部分」を修正す
るコードのすべての行が削除されていることを除き、
「先導対象突合せ」ルーチンと同じである。
「他対象突合せ」ルーチン:手続き(他対象:対象ルッ
クスのリスト)= もし他対象=NILならば、 成功をリターンする;(未突合せのものは残っていな
く、全部を突き合わせた。) 「本対象」←「他対象」の最初の要素; もし「形状オン」がTRUEであれば、 位置記述子を使用して「本対象」の始点を画面のどこに
置くべきかを見付ける。この位置を「サンプル点」と呼
ぶ; 画面リストの各対象oについて、 もし「サンプル点」が境界ボックスの中になければ、
「次対象」ルーチンへ飛ぶ; 画面部分を、仮ビットがFALSEである対象oの線分にす
る; もし画面部分が1以上の線分を含んでいれば、 「1対象突合せ」ルーチン(画面部分、本対象)を呼び
出す; もし「1対象突合せ」ルーチンが、すべてのo、すなわ
ち本対象を画面部分の一部の線分(まとめて「一致した
部分」と呼ぶ)に一致させれば、 「一致した部分」内のすべての線分の仮ビットをTRUEに
セットする; 「他対象突合せ」ルーチン(他対象から本対象を除いた
もの)を呼び出す; もし「他対象突合せ」が成功すれば、成功をリターンす
る; さもなくば、 「一致した部分」内のすべての線分の仮ビットをFALSE
にセットする; 「マッピング」を、「他対象突合せ」ルーチンの呼出し
をしたとき保持していた値にリセットする; 「次対象」ルーチン: 画面リスト内の対象のループ終了; 〔この行に達すれば、現在提案している変換で、本対象
と一致する対象が画面内に存在しない〕失敗をリターン
する; 「最大ラン突合せ」ルーチン;手続き(c:曲線、t:
曲線)= セット内にあって、「置換」欄でアクティブである各性
質(領域の色、対象のクラス、ストローク接合)につい
て、 もしcのpの値と、tのpの値が相違すれば、失敗をリ
ターンする; 性質のループ終了; nを、cの線分の数とする; mを、tの線分の数とする; 1からn-m+1の各整数iについて、 1からmの各整数jについて、 本画面線分←cの線分の数(i+j-1); 本探索線分←tの線分の数j; 「線分性質比較」ルーチン(本画面線分,本探索線分)
を呼び出す; もし「線分性質比較」ルーチンが失敗すれば、「逆順試
行」ルーチンへ飛ぶ; jのループ終了; 「性質一致」ルーチンへ飛ぶ; 「逆順試行」ルーチン: もし「極性オン」がFALSEであれば、 mから1までの各整数について、 本画面線分←cの線分の数(i+j-1); 本探索線分←tの線分の数j; 「線分性質比較」ルーチン(本画面線分,本探索線分)
を呼び出す; もし(線分性質比較)ルーチンが失敗すれば、「次のI
を試行」ルーチンへ飛ぶ; jのループ終了; 「性質一致」ルーチンへ飛ぶ; さもなくば、「次のIを試行」ルーチンへ飛ぶ; 「性質一致」ルーチン: 一致した部分←iからi+m-1までのcの線分; もし「形状オン」がFALSEであれぱ、「一致発見」ルー
チンへ飛ぶ; 「曲線形状比較」ルーチン(一致した部分,t)を呼び
出す; 〔もし位置記述子が変換を持たず、「曲線形状比較」ル
ーチンが一致を発見すれば、その時には、位置記述子
は、tを「一致した部分」にする変換のリストを有す
る。〕もし「曲線形状比較」ルーチンが成功すれば、
「一致発見」ルーチンへ飛ぶ; さもなくば、 一致した部分←NIL;(次のIを試行する、すなわち曲
線cの線分の次のランを試行する) 「次のIを試行)ルーチンへ飛ぶ; 「一致発見」ルーチン: cのiからi+m-1までの線分が、tの1からmまでの線
分と一致したことを示すため「マッピング」を更新す
る; 成功をリターンする; 「次のIを試行」ルーチン: iのループ終了; 失敗をリターンする; 「2曲線突合せ」ルーチン:手続き(c:曲線,t:曲
線)= nを、cの線分の数とする; mを、tの線分の数とする; もしm#nであれば、失敗をリターンする; 「最大ラン突合せ」ルーチン(c,t)を呼び出す; 「最大ラン突合せ」ルーチンの結果をリターンする; 「全曲線突合せ」ルーチン:手続き(画面部分,探索対
象)= nを、画面部分内の曲線の数とする; mを、探索対象内の曲線の数とする; もしn#mであれば、〔画面部分と探索対象は明らかに
一致しない〕 失敗をリターンする; c←画面部分の最初の曲線; t←探索対象の最初の曲線; 「2曲線突合せ」ルーチン(c,t)を呼び出す; 〔もし位置記述子が変換を持たず、「2曲線突合せ」ル
ーチン一致を発見し、「形状オン」がFALSEであれば、
この時には、位置記述子はtをcにする変換のリストを
有する。〕 もし「2曲線突合せ」ルーチンが失敗すれば、失敗をリ
ターンする; 位置記述子内の各変換について(「形状オン」がFALSE
であれば一度だけ)、 c←画面部分内のi番目の曲線; t←探索対象内のi番目の曲線; 「2曲線突合せ」ルーチン(c,t)を呼び出す; もし「2曲線突合せ)ルーチンが失敗すれば、「次の変
換」ルーチンへ飛ぶ; 画面部分のループ終了; 成功をリターンする; 「次の変換」ルーチン: 変換のループ終了; 「線分性質比較」ルーチン:手続き(本画面線分,本探
索線分)= セット内にあって、置換窓枠内でアクティブの各性質p
(曲線のタイプ、線の色、ラインダッシュ、線の端、線
の幅)について、 もし本画面線分のpの値#本探索線分のpの値であれ
ば、失敗をリターンする; 性質のループ終了; 成功をリターンする; 以上の疑似コードからわかるように、ユーザーは“SEAR
CH”オプション(第2A図)を選択すると、「次の一致発
見・選択」ルーチンが呼び出される。このルーチンは、
「探索パターン突合せ」ルーチンを呼び出す。この「探
索ルーチン突合せ」ルーチンは、「先導探索突合せ」ル
ーチンと「他対象突合せ」ルーチンを呼び出す。「他対
象突合せ」ルーチンは、自身を再帰的に呼び出し、再入
可能なことに留意されたい。また「先導対象突合せ」ル
ーチンと、「他対象突合せ」ルーチンは、次の3っのル
ーチン、「最大ラン突合せ」ルーチン、「2曲線突合
せ」ルーチン、及び「全曲線突合せ」ルーチンに依存し
ていることに留意されたい。「最大ラン突合せ」ルーチ
ンは、細分度=線分の場合に使用され、「2曲線突合
せ」ルーチンは、細分度=曲線の場合に使用され、「全
曲線突合せ」ルーチンは、細分度=クラスタの場合に使
用される。以上3っのルーチンは、それぞれ、(i)「線
分性質比較」ルーチンを呼び出して、2っの線分を比較
し、色、ストローク幅、ダッシュパターン、ストローク
端の形状が同一であるかどうかを判定し、そして(ii)
「曲線形状比較」ルーチンを呼び出して、前に述べた曲
線突合せアルゴリズムを使用し、2の曲線の形状を比較
する。
IV.B.4.置換フェーズの簡単な流れ図 第23図に、探索置換プロセスの置換フェーズの概略を示
す。ステップ91で、ユーザーが各探索後1組のマクロ操
作を実行することを命令したと判断したら、記録した動
作を再生する(ステップ92)。代わりに、形状及び性質
を置換すべきと判断することもある(ステップ91)。こ
の場合には、もしユーザーインタフェース(第5図)の
「置換」欄の「形状」パラメータがアクティブであると
判断したら(ステップ93)、一致した形状を抹消し、置
換窓枠24(第2A図)の形状で置換する(ステップ94)。
これらの置換形状は、ユーザーが行った図形的性質の選
択(第5図)によって、一致した形状から、その性質が
修正される。置換しない場合には、形状はそのまま残さ
れ、置換窓枠24から一致した対象へ性質が付加される
(ステップ95)。最後に、「アヘッドリスト」が更新さ
れ、次の探索フェーズの準備が完了する(ステップ9
6)。
IV.B.5.置換フェーズの疑似コード 提案する置換アルゴリズムの主な変数は、次の通りであ
る。
1)転移する性質.合成された対象は、前に述べたよう
に、置換形状(一致した対象又は置換パターンから)と
図形的性質(一致した対象又は置換パターンから)とを
組み合わせて作られる。形状をあるソースから取り、幾
つかの図形的性質を別のソースから取る場合には、図形
的性質をそれらのソースから形状へ移さなければならな
い。変数「転移する性質」は、転移する図形的性質のリ
ストである。
2)形状置換.この変数は、「置換」欄(第5図)の「形
状」パラメータがアクティブであれば、TRUEであり、さ
もなければ、FALSEである。
3)形状ソースは、変数「形状置換」がTRUEであれば、置
換パターンであり、FALSEであれば、一致した形状であ
る。
4)性質ソースは、変数「形状置換」がTRUEであれば、一
致した形状であり、FALSEであれば置換パターンであ
る。
置換操作の疑似コードは3っのルーチンから成る。主ル
ーチンは「置換」ルーチンである。「置換」ルーチン
は、置換が一義的であることを確認する「線分は同じに
見えるか」ルーチンと、一致した対象又は置換パターン
のどちらかから図形的性質を付加して、新しい画面対象
を作り出す「性質移転」ルーチンを呼び出す。さらに、
「置換」ルーチンは、「アヘッドリスト」を増分的に更
新して、次の探索操作のために「アヘッドリスト」の準
備を完了する「順序付きセット更新」ルーチンを呼び出
す。
「置換」ルーチン:手続き= もしユーザーが各探索後置換を実行することを要求すれ
ば、 もし「置換形状」がTRUEであれば、 「転移する性質」←「置換」欄のアクティブでない図形
的性質; 線分ソース←一致した対象のすべての線分; 「線分は同じに見えるか」ルーチン(転移する性質,線
分ソース)を呼び出す; 「線分は同じに見えるか」ルーチンが成功すれば、 一致した形状を抹消する; 置換形状を複写し、探索対象を突き合わせた対象にマッ
ピングさせるのに成功した変換を用いたコピーを変換す
る; コピーを画面に加える; 形状ソース←置換形状のコピー; 性質ソース←一致した形状; 「性質転移」ルーチン(転移する性質,形状ソース,性
質ソース)を呼び出す; さもなくば、失敗をリターンする;(置換ができない) さもなくば、(一致した対象の形状をそのまま残す) 転移する性質←「置換」欄のアクティブである図形的性
質; 線分ソース←置換パターンのすべての線分; 「線分は同じに見えるか」ルーチン(転移する性質,線
分ソース)を呼び出す; もし「線分は同じに見えるか」ルーチンが成功すれば、 形状ソース←一致した形状; 性質ソース←置換パターン; 「性質転移」ルーチン(転移する性質,線分ソース)を
呼び出す; さもなくば、失敗をリターンする;(置換ができない) さもなくば、(ユーザーは各探索後マクロ操作を実行す
ることを要求した) マクロ操作を再生し、探索対象を突き合わせた画面対象
に現在マッピングするのに成功した変換を用いてカーソ
ル座標を変換する; 〔注記:マクロ操作は次の探索フェーズの前にキャリッ
ト記号位置を動かし、固定することができる〕 キャリット位置←最終キャリット位置; 「順序付きセット更新」ルーチンを呼び出す; 「線分は同じに見えるか」ルーチン:手続き(転移する
性質:図形的性質,線分ソース:線分のリスト)= 置換リストの最初の線分をsとする; 線分ソース内の各線分sについて、 「転移する性質」の各性質pについて、 もしsのpの値が、sのpの値と等しくなければ、失
敗をリターンする; 性質のループ終了; 線分のループ終了; 成功をリターンする; 「性質転移」ルーチン:手続き(転移する性質:図形的
性質,性質ソース:図形パターン,形状ソース:線分の
リスト)= 「転移する性質」内の各性質pについて、 もし性質が図形対象全体(例えば、塗りつぶしなど)に
適用されれば、 形状ソース内の各対象oについて、 oの性質pを、pが性質ソース内に有する値にセットす
る: 対象のループ終了; さもなくば、(性質は線分に適用する) 形状ソース内の各線分sについて、 sの性質pを、pが性質ソース内に有する値にセットす
る; 線分のループ終了; 性質のループ終了; 「順序付きセット更新」ルーチン:手続き= 現比較対象の曲線←アヘッドリストの最初の曲線; もし「現比較対象の曲線」の一部(全部でない)が抹消
されたか(マクロ操作によって)、置換されなければ、
(現比較対象の曲線は幾つかの小部分に分けることがで
きる) アヘッドリスト、現比較対象の曲線を表すデータ構造を
除く; 新曲線リスト←NIL;(新曲線リストは空のリストで始
まる) 残っている「現比較対象曲線」の各曲線cについて、 cの記述を新曲線リストに加えるため、「探索対象記
述」ルーチン(c,新曲線リスト)を呼び出す; ループを終了; 順序を保っている新曲線リストのすべての要素をアヘッ
ドリストの頭に加える; 発明の効果 第24図は、初期化フェーズ101で始まり、次に探索フェ
ーズ102が続き、置換フェーズ103で終わるChangeAll操
作の場合の本発明の探索置換方法を要約して示す。既に
探索フェーズ102と置換フェーズ103に主要ステップにつ
いてかなり詳しく説明したが、この流れ図はChangeAll
操作を実行している場合の異なるフェーズ間の相関関係
を示す。前に述べたように、ユーザーが探索を続行する
と決定したときはいつでも、置換フェーズ102は初期化
フェーズ101へ戻るけれども、ユーザーがパターンの一
致を1っづつ見付けることを選んだ場合にも、同様な相
関関係がある。
以上の説明から、本発明により、ディデシル合成図形デ
ータを探索して、ユーザー指定の図形探索パターンと一
致するパターンを見付け出す能率のよい有効な方法及び
手段、並びに(i)あらかじめ記録したマクロ操作を見付
かった一致の全部又は一部に実施し、又は(ii)見付かっ
一致パターンの幾何学的特徴と図形的性質の全部又は一
部をユーザー指定のもので置き換える能率の良い有効な
方法及び手段が得られたことがわかるであろう。
【図面の簡単な説明】
第1図は、本発明の図形探索置換ユーティリティを使用
して合成図形編集プログラムを実行するパーソナルワー
クステーションの略図、 第2A図は、第1図のワークステーションによって開か
れた、典型的な探索置換操作を実行するための表示窓
と、前記操作を制御するための適当な主ユーザーインタ
フェースを示す図、 第2B図は、第2A図に示した探索置換操作を実行して
得られた編集画面、 第3図は、探索のとき幾何学的パラメータをセットする
ためのユーザーインタフェースを示す図、 第4A図〜第4C図は、再帰的図形探索置換機能を使用
して、繰返し幾何図形を作る説明図、 第5図は、探索置換プロセスの探索のとき図形的性質を
セットするためのユーザーインタフェースを示す図、 第6A図と第6B図は、文脈依存図形探索置換操作の典
型的な利用を説明する図、 第7A図〜第7D図は、文脈依存探索置換操作の別の利
用を説明する図、 第8A図〜第8F図は、探索プロセスのいろいろな細分
度を示す図、 第9A図〜第9C図は、ユーザー指定探索順序の例外を
示す図、 第10A図と第10B図は、ユーザー指定探索順序の別の例
外を示す図、 第11A図〜第11C図は、曲線タイプと形状探索パラメー
タの作用を示す図、 第12A図〜第12B図は、精密探索パラメータと探索許容
誤差の作用を示す図、 第13A図〜第13B図は、図形探索パターンと置換パター
ンの幾何学的特徴及び図形的性質をどのように組み合わ
せて合成した対象を作成するかを示す事例、 第14図は、あいまいさのために失敗する置換操作の事
例、 第15図は、第11A図に示した曲線の制御点を示す図、 第16A図〜第16E図は、曲線の基準形に基づく構造計算
に必要なステップを示す図、 第17図は、2っの異なる曲線が同様な折れ線近似形を作
ることができる場合を示す図、 第18A図〜第18D図は、折れ線を基準形に変換するやり
方を示す図、 第19図は、2っの折れ線を比較するときの距離比較曲線
突合せテストを示す図、 第20A図と第20B図は、折れ線曲線突合せの表現上の独
立性を示す図、 第21図は、本発明による図形探索操作の簡単な流れ図、 第22A図〜第22D図は、図形探索における考えられる各
種の先導曲線の図、 第23図は、本発明による図形マクロ操作/置換操作の簡
単な流れ図、 第24図は、本発明に従ってユーザー指定CHANGEALL操作
を実行する図形探索置換プロセスの包括的流れ図であ
る。 符号の説明 11……プロセッサ、12……キーボード、13……モニタ、
14……カーソルコントローラ、21,22……窓、23……探
索窓枠、24……置換窓枠、25……メニュー、31,31a……
正三角形、32……置換形状、33……探索線分、41……外
側曲線、42……内側曲線、43……弧、44……直線、45…
…パラメトリック3次曲線、46,47……弧、48……3線
分の曲線、49,50,52,53,54,56,57,58,59……線分、60A
……三角形、60B……置換パターン、60C,60E,60G……
「置換」欄、60D,60F,60H……合成された対象、61〜67
……制御点、71〜103……流れ図の各ステップ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】ディジタル合成図形データを編集するため
    のコンピュータ化した図形探索置換方法であって、 ユーザー指定図形探索パターンの幾何学的特徴及び図形
    的性質と一致する図形パターンのデータを、方向付けら
    れた順序で探索するステップ、 前記データの探索において見付かった探索パターンに一
    致するすべての図形パターンを次々に選択するステッ
    プ、及び 前記選択した図形パターンの少なくとも一部を、ユーザ
    ー指定の編集命令に従って一件一件編集するステップ、 から成ることを特徴とする図形探索置換方法。
JP1196492A 1988-08-04 1989-07-28 対話式図形探索置換方法 Expired - Fee Related JPH0658677B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US228882 1988-08-04
US07/228,882 US5133052A (en) 1988-08-04 1988-08-04 Interactive graphical search and replace utility for computer-resident synthetic graphic image editors

Publications (2)

Publication Number Publication Date
JPH0290366A JPH0290366A (ja) 1990-03-29
JPH0658677B2 true JPH0658677B2 (ja) 1994-08-03

Family

ID=22858923

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1196492A Expired - Fee Related JPH0658677B2 (ja) 1988-08-04 1989-07-28 対話式図形探索置換方法

Country Status (4)

Country Link
US (1) US5133052A (ja)
EP (1) EP0354031B1 (ja)
JP (1) JPH0658677B2 (ja)
DE (1) DE68927454T2 (ja)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5070534A (en) * 1988-10-17 1991-12-03 International Business Machines Corporation Simplified cad parametric macroinstruction capability including variational geometrics feature
JP2952673B2 (ja) * 1989-06-19 1999-09-27 株式会社日立メディコ 関心領域抽出方法及び切り出し方法
US5241671C1 (en) * 1989-10-26 2002-07-02 Encyclopaedia Britannica Educa Multimedia search system using a plurality of entry path means which indicate interrelatedness of information
US6978277B2 (en) * 1989-10-26 2005-12-20 Encyclopaedia Britannica, Inc. Multimedia search system
US5278946A (en) * 1989-12-04 1994-01-11 Hitachi, Ltd. Method of presenting multimedia data in a desired form by comparing and replacing a user template model with analogous portions of a system
JP2977260B2 (ja) * 1990-09-27 1999-11-15 株式会社東芝 情報提示装置
JP2522107B2 (ja) * 1990-10-17 1996-08-07 株式会社精工舎 曲線近似方法
US5408598A (en) * 1991-05-23 1995-04-18 International Business Machines Corporation Method for fast generation of parametric curves employing a pre-calculated number of line segments in accordance with a determined error threshold
US5359729A (en) * 1991-05-31 1994-10-25 Timeline, Inc. Method for searching for a given point in regions defined by attribute ranges, then sorted by lower and upper range values and dimension
GB9115142D0 (en) * 1991-07-13 1991-08-28 Ibm Data processing system
JP2865454B2 (ja) * 1991-08-20 1999-03-08 富士通株式会社 図面表示装置
FR2682511B1 (fr) * 1991-10-14 1993-12-31 Commissariat A Energie Atomique Procede de realisation d'une image de reference synthetisee pour le controle d'objets, et son dispositif de mise en óoeuvre.
JPH0820937B2 (ja) * 1991-10-18 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション 異なるアプリケーションに対し選択したプリンタの応答を表示する方法及び装置
US5272769A (en) * 1991-11-05 1993-12-21 Environmental Systems Product Inc. Emission system component inspection system
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
JP2801459B2 (ja) * 1992-02-21 1998-09-21 富士通株式会社 オブジェクトネットワークによる言語処理システム
US5495591A (en) * 1992-06-30 1996-02-27 Bull Hn Information Systems Inc. Method and system for cache miss prediction based on previous cache access requests
JPH081562B2 (ja) * 1992-07-21 1996-01-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 図形検査方法及び装置
US6097392A (en) * 1992-09-10 2000-08-01 Microsoft Corporation Method and system of altering an attribute of a graphic object in a pen environment
US5307421A (en) * 1992-10-14 1994-04-26 Commissariat A L'energie Atomique Process for producing a synthesized reference image for the inspection of objects and apparatus for performing the same
US5574835A (en) * 1993-04-06 1996-11-12 Silicon Engines, Inc. Bounding box and projections detection of hidden polygons in three-dimensional spatial databases
DE69425607T2 (de) * 1993-05-07 2001-04-19 Canon Kk Selektive Einrichtung und Verfahren zur Dokumentenwiederauffindung.
JPH06325140A (ja) * 1993-05-18 1994-11-25 Fujitsu Ltd 表示属性のグループ化により表示処理を簡易化した図形表示処理方式
US5479603A (en) * 1993-07-21 1995-12-26 Xerox Corporation Method and apparatus for producing a composite second image in the spatial context of a first image
US5479683A (en) * 1993-12-29 1996-01-02 Bausch & Lomb Incorporated Three-dimensional eyewinder apparatus
US6147769A (en) * 1994-07-15 2000-11-14 International Business Machines Corporation Display of selected printer response for distinct applications
US6014148A (en) * 1994-08-17 2000-01-11 Laser Products, Inc. Method for generating two dimensional and three dimensional smooth curves and for driving curve forming devices
US5659674A (en) * 1994-11-09 1997-08-19 Microsoft Corporation System and method for implementing an operation encoded in a graphics image
US6016147A (en) * 1995-05-08 2000-01-18 Autodesk, Inc. Method and system for interactively determining and displaying geometric relationships between three dimensional objects based on predetermined geometric constraints and position of an input device
US7401299B2 (en) 2001-09-05 2008-07-15 Autodesk, Inc. Method and apparatus for providing a presumptive drafting solution
US5572639A (en) * 1995-05-08 1996-11-05 Gantt; Brian D. Method and apparatus for interactively manipulating and displaying presumptive relationships between graphic objects
US5894311A (en) * 1995-08-08 1999-04-13 Jerry Jackson Associates Ltd. Computer-based visual data evaluation
US5799301A (en) * 1995-08-10 1998-08-25 International Business Machines Corporation Apparatus and method for performing adaptive similarity searching in a sequence database
US5933823A (en) * 1996-03-01 1999-08-03 Ricoh Company Limited Image database browsing and query using texture analysis
US6012073A (en) * 1996-10-21 2000-01-04 Corbis Corporation Method and system for displaying original documents and translations thereof
US5802525A (en) * 1996-11-26 1998-09-01 International Business Machines Corporation Two-dimensional affine-invariant hashing defined over any two-dimensional convex domain and producing uniformly-distributed hash keys
US6043824A (en) * 1997-06-27 2000-03-28 Xerox Corporation Composing layered synthetic graphics filters with limited scopes of operation
US6072501A (en) * 1997-06-27 2000-06-06 Xerox Corporation Method and apparatus for composing layered synthetic graphics filters
US6101496A (en) * 1998-06-08 2000-08-08 Mapinfo Corporation Ordered information geocoding method and apparatus
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
WO2000011607A1 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6189226B1 (en) * 1998-09-10 2001-02-20 John Mascarenas Snowflake stencil
US20010003811A1 (en) * 1998-09-23 2001-06-14 Warren Rufus W. Method and system for rendering a view such as an arrangement for creating a lighting pattern
US6226405B1 (en) * 1998-12-18 2001-05-01 International Business Machines Corporation Method and apparatus for updating node position
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US6417865B1 (en) 1999-03-09 2002-07-09 Autodesk, Inc. Affinitive placement by proximity in a computer-implemented graphics system
US7047180B1 (en) * 1999-04-30 2006-05-16 Autodesk, Inc. Method and apparatus for providing access to drawing information
US7139971B1 (en) * 1999-07-21 2006-11-21 Nec Corporation Method of searching for and retrieving information from structure documents
US7415156B2 (en) * 2000-01-28 2008-08-19 Carnegie Mellon University Parametric shape grammar interpreter
US7050051B1 (en) * 2000-01-28 2006-05-23 Carnegie Mellon University Parametric shape grammar interpreter
US7000197B1 (en) 2000-06-01 2006-02-14 Autodesk, Inc. Method and apparatus for inferred selection of objects
US6915484B1 (en) * 2000-08-09 2005-07-05 Adobe Systems Incorporated Text reflow in a structured document
US7370315B1 (en) * 2000-11-21 2008-05-06 Microsoft Corporation Visual programming environment providing synchronization between source code and graphical component objects
US20020141643A1 (en) * 2001-02-15 2002-10-03 Denny Jaeger Method for creating and operating control systems
DE10135817A1 (de) 2001-07-23 2003-02-20 Siemens Ag Verfahren zum Ähnlichkeitsvergleich von zwei aus Polygonzügen aufgebauten, digitalen Bildern
US7068271B2 (en) * 2001-09-05 2006-06-27 Autodesk, Inc. Assembly patterns by feature association
US6907573B2 (en) 2001-09-28 2005-06-14 Autodesk, Inc. Intelligent constraint definitions for assembly part mating
US6928618B2 (en) * 2001-10-23 2005-08-09 Autodesk, Inc. Intelligent drag of assembly components
JP4225038B2 (ja) * 2001-12-11 2009-02-18 トヨタ自動車株式会社 ユニット設計装置およびユニット設計方法
US20050149258A1 (en) * 2004-01-07 2005-07-07 Ullas Gargi Assisting navigation of digital content using a tangible medium
US7707039B2 (en) * 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US20060136629A1 (en) * 2004-08-18 2006-06-22 King Martin T Scanner having connected and unconnected operational behaviors
US7812860B2 (en) 2004-04-01 2010-10-12 Exbiblio B.V. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
US8081849B2 (en) 2004-12-03 2011-12-20 Google Inc. Portable scanning and memory device
US7894670B2 (en) 2004-04-01 2011-02-22 Exbiblio B.V. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US9008447B2 (en) 2004-04-01 2015-04-14 Google Inc. Method and system for character recognition
US7990556B2 (en) 2004-12-03 2011-08-02 Google Inc. Association of a portable scanner with input/output and storage devices
US20060081714A1 (en) 2004-08-23 2006-04-20 King Martin T Portable scanning device
US8146156B2 (en) 2004-04-01 2012-03-27 Google Inc. Archive of text captures from rendered documents
US9143638B2 (en) 2004-04-01 2015-09-22 Google Inc. Data capture from rendered documents using handheld device
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
WO2008028674A2 (en) 2006-09-08 2008-03-13 Exbiblio B.V. Optical scanners, such as hand-held optical scanners
US8713418B2 (en) 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US8874504B2 (en) 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
US8489624B2 (en) 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
US8346620B2 (en) 2004-07-19 2013-01-01 Google Inc. Automatic modification of web pages
US7599044B2 (en) 2005-06-23 2009-10-06 Apple Inc. Method and apparatus for remotely detecting presence
US7242169B2 (en) * 2005-03-01 2007-07-10 Apple Inc. Method and apparatus for voltage compensation for parasitic impedance
US7577930B2 (en) 2005-06-23 2009-08-18 Apple Inc. Method and apparatus for analyzing integrated circuit operations
US9298311B2 (en) * 2005-06-23 2016-03-29 Apple Inc. Trackpad sensitivity compensation
US7779362B1 (en) * 2005-09-02 2010-08-17 Adobe Systems Inc. Methods and apparatus for selecting objects by state
US20070061428A1 (en) * 2005-09-09 2007-03-15 Autodesk, Inc. Customization of applications through deployable templates
US7433191B2 (en) * 2005-09-30 2008-10-07 Apple Inc. Thermal contact arrangement
US7639250B2 (en) * 2005-11-01 2009-12-29 Microsoft Corporation Sketching reality
US7598711B2 (en) * 2005-11-23 2009-10-06 Apple Inc. Power source switchover apparatus and method
WO2007127432A2 (en) * 2006-04-27 2007-11-08 Carnegie Mellon University Method and apparatus for quantifying aesthetic preferences in product design using production rules
US7382919B2 (en) * 2006-06-22 2008-06-03 Xerox Corporation System and method for editing image data
US8305378B2 (en) * 2008-08-21 2012-11-06 Pacific Data Images Llc Method and apparatus for approximating hair and similar objects during animation
GB0818279D0 (en) * 2008-10-06 2008-11-12 Advanced Risc Mach Ltd Graphics processing systems
GB0818278D0 (en) * 2008-10-06 2008-11-12 Advanced Risc Mach Ltd Graphics processing systems
GB0818277D0 (en) * 2008-10-06 2008-11-12 Advanced Risc Mach Ltd Graphics processing system
CN102369724B (zh) 2009-02-18 2016-05-04 谷歌公司 自动捕获信息,例如使用文档感知设备捕获信息
CN102349087B (zh) 2009-03-12 2015-05-06 谷歌公司 自动提供与捕获的信息例如实时捕获的信息关联的内容
US8447066B2 (en) 2009-03-12 2013-05-21 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
US8429559B2 (en) * 2009-10-19 2013-04-23 Xerox Corporation Elicitation method for custom image preferences using keywords
US9081799B2 (en) 2009-12-04 2015-07-14 Google Inc. Using gestalt information to identify locations in printed information
US9323784B2 (en) 2009-12-09 2016-04-26 Google Inc. Image search using text-based elements within the contents of images
US8818771B2 (en) * 2010-06-21 2014-08-26 Johan Gielis Computer implemented tool box systems and methods
US9646093B2 (en) * 2014-03-23 2017-05-09 Morgan Kennedy Osborne Color coded symbol based world wide web indexing and retrieval system
US10521937B2 (en) 2017-02-28 2019-12-31 Corel Corporation Vector graphics based live sketching methods and systems
US10628981B2 (en) * 2017-06-09 2020-04-21 Adobe Inc. Techniques for editing vector graphics documents
US11882439B2 (en) * 2019-11-19 2024-01-23 International Business Machines Corporation Authentication of devices using touch interface
KR102466704B1 (ko) * 2020-04-13 2022-11-15 주식회사 한글과컴퓨터 전자 문서에 삽입된 도형들 간의 종속 관계 설정을 통해 일부 도형의 숨김 처리를 수행하는 문서 편집 장치 및 그 동작 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4078249A (en) * 1976-06-01 1978-03-07 Raytheon Company Digital display composition system
JPS60140472A (ja) * 1983-12-28 1985-07-25 Hitachi Ltd 対話型フオント・パタ−ン作成・修正・合成制御装置
JPS60159989A (ja) * 1984-01-30 1985-08-21 Hitachi Ltd 特徴パタ−ンによるデ−タ検索装置
US4665555A (en) * 1985-03-11 1987-05-12 Alpharel Incorporated Computer based drawing management system
US4800510A (en) * 1985-07-31 1989-01-24 Computer Associates International, Inc. Method and system for programmed control of computer generated graphics layout
JP2735187B2 (ja) * 1987-03-17 1998-04-02 株式会社東芝 情報検索方法

Also Published As

Publication number Publication date
EP0354031A2 (en) 1990-02-07
JPH0290366A (ja) 1990-03-29
DE68927454T2 (de) 1997-03-20
EP0354031B1 (en) 1996-11-13
US5133052A (en) 1992-07-21
EP0354031A3 (en) 1992-02-12
DE68927454D1 (de) 1996-12-19

Similar Documents

Publication Publication Date Title
JPH0658677B2 (ja) 対話式図形探索置換方法
Olsen et al. Sketch-based modeling: A survey
US7568171B2 (en) Stroke-based posing of three-dimensional models
JPH03206564A (ja) 形状モデリング方法及びその装置
JPH08255259A (ja) コンピュータ化された作図方法
Fišer et al. ShipShape: a drawing beautification assistant
Yang Context-aware computer aided inbetweening
EP1562138B1 (en) A process for drafting a curve in a computer-aided design system
Fišer et al. Advanced drawing beautification with shipshape
JP3968056B2 (ja) 形状作成装置、コンピュータ装置を形状作成装置として動作させるための制御方法、該制御方法をコンピュータ装置に対して実行させるためのコンピュータ実行可能なプログラム
JP2002329218A (ja) コンピュータ実現ツールを用いてグラフィクスオブジェクトのサーフェスを編集する方法
Cruz et al. A sketch on sketch-based interfaces and modeling
JP2002324251A (ja) グラフィクスオブジェクトを編集する方法
US5649081A (en) Method and apparatus for pattern data processing
Olsen et al. A Taxonomy of Modeling Techniques using Sketch-Based Interfaces.
JPH05334383A (ja) 画像図形編集装置
Barbieri et al. An interactive editor for curve-skeletons: SkeletonLab
Aydınlılar et al. Part-based data-driven 3D shape interpolation
CN110947186A (zh) 一种基于部件模板的三维玩具模型开版方法
Melero et al. On the Interactive 3D Reconstruction of Iberian Vessels.
Bornik et al. Interactive editing of segmented volumetric datasets in a hybrid 2D/3D virtual environment
JP4585742B2 (ja) 画像表示装置、画像表示方法、プログラム及び記録媒体
Olivier et al. Structured Shape-Patterns from a Sketch: A Multi-Scale Approach
Zheng et al. Sketching-based skeleton generation
Bilodeau et al. Part segmentation of objects in real images

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees