JP2955995B2 - 画像操作方法 - Google Patents

画像操作方法

Info

Publication number
JP2955995B2
JP2955995B2 JP1240303A JP24030389A JP2955995B2 JP 2955995 B2 JP2955995 B2 JP 2955995B2 JP 1240303 A JP1240303 A JP 1240303A JP 24030389 A JP24030389 A JP 24030389A JP 2955995 B2 JP2955995 B2 JP 2955995B2
Authority
JP
Japan
Prior art keywords
shape
segment
axis
code
output
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
JP1240303A
Other languages
English (en)
Other versions
JPH02122378A (ja
Inventor
ロバート・ロチエツテイ
ノーラ・ドネート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH02122378A publication Critical patent/JPH02122378A/ja
Application granted granted Critical
Publication of JP2955995B2 publication Critical patent/JP2955995B2/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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、図形情報を表示する方法に関し、特に、表
示システムにおいて画像及びデータを発生し、操作する
データ処理方法に関する。
〔従来の技術及び発明が解決しようとする問題点〕
コンピユータ産業の分野では、コンピユータのユーザ
ーに対して情報を図形表示を介して表示し、伝達するの
がごく一般的になつている。そのような図形表示は英数
字,デカルト座標又はその他の座標によるグラフ,ある
いは周知の物理的対照物の形状などの多種多様な形態を
とる。従来、人間は一連の別個の指令を介してコンピユ
ータと通信してきた。通常、指令はテキストと、数字記
号文字の双方の組合せから構成される。別個の指令を組
合せたものを、通常、プログラミング言語という。その
ような指令を使用する言語の例としては、Fortran,Alog
l,PL/1,Basic及びCobalがある。これらのプログラミン
グ言語は与えられた1組のユーザー指令を機械実行可能
な「オブジェクト」コードに変換する。
コンピユータのユーザーがコンピユータシステムと会
話することにいかに容易に習熟するかは、システムの動
作がコンピユータのユーザーに良く知られている論理パ
ターンにどれほど密接に従つているかということと関係
している。コンピユータのユーザーが所望の指令をプロ
グラミング言語のコードに置換えなければならない場合
より論理的に適切であると考える順序又は形態で指令を
入力することができるならば、より速く言語の習熟度を
得ることができる。
コンピユータのユーザーが熟達するようになるまでに
要する練習時間を短縮するために開発されたシステムの
1つは「オブジェクト指向」システムと呼ばれる。オブ
ジェクト指向システムは数多く共通コード化プログラミ
ング指令をコンピユータ表示装置における図形画像と置
換える。量的にえば、画像で考えるほうが考えやすいた
め、テキストにより表示される情報に比べて、視覚に訴
える形で提示される情報の吸収と操作ははるかに急速に
行われることがわかつている。ユーザーが機械と会話す
るための図形インタフエースに、どの特定の種類を使用
するかは、用途によつて異なるであろう。
一般に良く知られたインタフエースの1つは、個々の
コンピユータフアイルを表わすために陰極線管に表示さ
れる複数の「ウインドー」を利用する。各ウインドーで
は、情報を伝達するために、テキストと図形の組合せが
使用される。たとえば、各ウインドーは、標準形のフア
イリングキヤビネツトに使用される種類のフアイルフオ
ルダーの輪郭形状に似た形態を有する画像として現われ
ても良い。そのようなフオルダーは、それぞれ、他のフ
オルダーと重なり合つており、「前面のフオルダー」が
現在作業中のフアイルを構成する。ユーザーは現在フア
イルフオルダーウインドーからの情報の削除又はウイン
ドーへの情報の追加,フアイルフオルダーへの新たな項
目の追加,フアイルフオルダーウインドーの別の場所へ
のリフアイルなどを行うことができ、一般的には、フア
イルフオルダーウインドーを、それがオフイスの実物の
フアイルフオルダーであるかのように取扱うことができ
る。
従つて、ユーザーがユーザーの指令を表わすための手
段として自身が良く知つている図形画像を使用するよう
にし、周知の対象物とほぼ同じ方法で画像に手を加え、
操作することができるようにすれば、コンピユータは、
ユーザーにとつて、より容易に操作できるものとなり且
つ一層のスピードアツプがはかれる。
図形表示がコンピユータシステムに有用であることは
わかつているが、図形文字の発生,記憶,操作には大容
量のメモリが必要である。陰極線管に図形表示を発生さ
せる場合、画面一杯の画像又はテキストを含むスクリー
ンは、「ビツトマツプ」として知られるメモリのブロツ
クに、1(黒い点)又は0(白い点)のいずれかとして
表わされる。最も簡単な形態をとつたとしても、スクリ
ーン上の各画素(ピクセル)は1つのメモリビツトによ
り表わされなければならない。表示スクリーンが1024×
1024個の画素を有するとすれば、それぞれのスクリーン
を表わすためには、百万ビツトのメモリが必要である。
これを実現するには、データ処理記憶システムにおい
て、メモリの1つのブロツクに、表示システムの対応す
る1つの画素にマツピングされる各メモリビツト(1又
は0)を割当てれば良い。このようなビツトマツプと、
陰極線管表示との1対1の対応性を得るためには、コン
ピユータのコアメモリ内部にきわめて大きな記憶スペー
スが要求される。さらに、1つの画像又は文字の発生と
操作には、画像の変更のために、それに続いて、ビツト
マツプ中のほぼ全てのビツトを更新しなければならな
い。このような手順は反復されるので多くの時間を要
し、会話形図形表示オペレーテイングシステムの実用を
著しく制約する。
そのようなシステムに対して必要な図形能力を与える
ために必要な記憶容量を減少させるために、様々な方法
が考案されているが、従来のシステムは、全て、処理可
能な画像の種類などに関して限界がある。
〔問題点を解決するための手段〕
本発明は、デジタルコンピユータと組合せて使用する
と有利であり、図形能力を向上させることができる方法
及び装置を提供する。本発明の方法によるば、任意に規
定されたどのような領域であつても、「形状表」によつ
て提示し且つ操作することができる。
本発明の方法及び装置では、図形表示の直線状の縁部
と、湾曲した縁部を、いずれも、規定し、描出し、クリ
ツプし、組合せることができる。
本発明によれば、画像とクリツプ領域の双方の解析記
述は、画像のクリツプ又は描出に先立つて、形状データ
構造に変換される。その後、1つの形状を別の形状に対
して操作し、それにより、元の2つの形状データ構造に
応じて決定される新たな形状を発生するために、ブール
演算子が形状データ構造に適用される。この後、出力形
状は描出されても良く、後続する形状演算のために使用
されても良い。
本発明によれば、1つの形状は、装置座標におけるス
クリーンの1つの部分領域を規定する矩形の分類リスト
から構成される。このリストはY軸に沿つて昇順に分類
されるものと定義されている。Y範囲ごとに、同様に昇
順に分離される関連Χ範囲が有在する。
以下の説明から明白になるであろうが、形状データ構
造を使用して規定される構造は大きく、多種多様であ
り、しかも、比較的少数の規定点を利用するだけであ
る。従つて、形状データ構造を使用して図形構造を記憶
するために必要なメモリの容量は、より一般的に採用さ
れている図形記憶方法で使用されるメモリと比べて、著
しく小さい。さらに、形状データ構造は、周知のブール
演算子を利用するコンピユータシステムにより容易に操
作可能である。
〔表記法及び用語〕
以下の詳細な説明は、主に、コンピユータメモリ内部
でのデータビツトに対する演算のアルゴリズム及び記号
表示に関して示される。そのようなアルゴリズムの説明
と表示は、データ処理の分野に習熟している人にとつて
は、その作業の実体を他の当業者に最も有効に伝えるた
めに使用する手段となる。
ここでは、また、一般的にも、アルゴリズムは、所望
の結果に導く矛盾のない一連のステツプであると理解さ
れている。そのステツプは、物理的な量を物理的に操作
することを要求するステツプである。それらの量は、通
常、記憶,転送,組合せ,比較及びその他の方法による
操作が可能な電気信号又は磁気信号の形態をとるが、必
ずそれに限定されるものではない。場合によつては、主
に一般に共通する用いられかたを考えて、それらの信号
をビツト,値,要素,記号,文字,項,数などと呼ぶと
好都合である。しかしながら、それらの用語及びそれに
類する用語は、全て、適切な物理量に関連させるべきも
のであり、単に、それらの量に便宜上与えられたラベル
にすぎないということに留意すべきである。
さらに、実行される操作は加算又は比較のような用語
で表わされることが多い。それらの用語は、一般に、人
間のオペレータが実行する知的動作と関連している。多
くの場合、ここに説明される、本発明の一部を成す動作
のいずれにおいても、人間のオペレータのそのような能
力は不要であるか、又は望ましくない。動作は機械動作
である。本発明の動作を実行するのに有用な機械には、
汎用デジタルコンピユータ又はそれに類似する操作があ
る。あらゆる場合に、コンピユータを操作するときの方
法動作と、計算それ自体の方法との区別を心に留めてお
くべきである。本発明は、電気信号又はその他の(たと
えば、機械的,化学的)物理信号を処理して、別の所望
の物理信号を発生させる際にコンピユータを動作させる
ための方法過程に関する。
本発明は、また、それらの動作を実行するための装置
にも関する。この装置は要求される目的のために特別に
構成されても良いが、コンピユータに記憶されたコンピ
ユータプログラムにより選択的に作動又は再構成される
ような汎用コンピユータを具備していても良い。ここに
提示されるアルゴリズムは、本来、何らかの特定のコン
ピユータ又はその他の装置に関連するものではない。す
なわち、本発明の教示に従つて書込まれるプログラムと
共に使用して良い汎用機械は種々存在する。あるいは、
要求される方法過程を実行するためにより専門化した装
置を設計するほうが好都合であると判明する場合もある
であろう。様々なこれらの機械に必要な構造は、以下の
説明から明白になるであろう。
〔実施例〕
システム全般の構成 第1図は、本発明に従つてコンピユータグラフイツク
画像を発生させるための典型的な計算機ベースシステム
を示す。ここに図示されるコンピユータ20は、コンピユ
ータ20の他の部分及び関連機器との間で、適切な構造を
有する形態の情報を通信するために使用される入出力回
路22と、中央処理装置(CPU)24と、メモリ26とを含
む。これらの構成要素は多くの汎用コンピユータ及び専
用コンピュータで一般に見られる構成であり、コンピユ
ータ20の内部に含まれるいくつかの要素はこのような広
い意味でのデータプロセツサを代表すべきものである。
コンピユータ20の機能を果たすのに適するデータプロセ
ツサの特定の例を挙げれば、カルフオルニア州マウンテ
ン・ビユーのSun Microsystems.,Inc.製造の装置がある
が、その他のコンピユータでも、以下に説明するいくつ
かの機能を実行するようにきわめて容易に適用させうる
ことは自明である。
第1図には、キーボードとして構成される入力装置30
がさらに示されている。ただし、この入力装置30は、実
際には、カード読取装置,磁気テープ読取装置又は紙テ
ープ読取装置であつても良く、また、当然のことなが
ら、別のコンピユータなどの別の周知の入力装置であつ
ても良い。入出力回路22に結合される大容量記憶装置32
は、コンピユータ20の記憶能力をさらに向上させる。大
容量記憶装置32はプログラム,所定の文字の字体などを
記憶するために使用されれば良く、磁気テープ読取装
置,紙テープ読取装置又はその他の周知の装置の形態を
とつていても良い。大容量記憶装置32に保持されるデー
タが、場合に応じて、メモリ26の一部としてコンピユー
タ20に標準的形式で適宜編入されても良いことは明白で
あろう。
さらに、図示されてい表示モニター34は、本発明によ
り発生される画像を表示するために使用される。このよ
うな表示モニター34はいくつかの周知の種類の陰極線管
のいずれか、又はその他の周知の種類の何らかの表示装
置として形成されれば良い。
周知のように、メモリ26は、中央処理装置24により実
行されるべき様々な命令シーケンスを表わすプログラム
を含んでいても良い。たとえば、プログラム,デイスク
作動システムなどを監視し且つ制御するための以下に説
明する演算及びルーチンを実現する制御プログラムがメ
モリ26に記憶されれば良い。
当然のことながら、専用デジタルコンピユータ並びに
第1図に示す汎用コンピユータの使用により本発明を実
施しうることは当業者には自明である。
形状データ構造 本発明は、任意に規定された領域を、いずれも、形状
データ構造として表示する。そのような構造は、装置座
標において陰極線管のスクリーンの1つの領域を規定す
る矩形のリストから構成される。この矩形リストは、そ
のY軸に基づいて昇順に分類されている。Y範囲ごと
に、同様に昇順に分類された関連Χ範囲が存在してい
る。
ここで、第2図に関して説明すると、形状データ構造
として定義して良い構造が示されている。図示されてい
る構造は一般化項で規定される。構造の左側に沿つて、
垂直のY軸は上方の点Y0からY3で終わる位置までいくつ
かの点を経て増加順に続いている。左から右へ増加順に
進む上方水平軸に沿つて、ΧからΧとラベル付けさ
れた点がある。それぞれの形状データ構造は、Y軸に沿
つて図の最上部から最下部へ進む一連の矩形により規定
される。たとえば、第2図に示す一般化形状は3つの矩
形により規定される。形状データ構造を規定するために
使用される矩形には、最初のY軸点から始めて、Χ軸上
の構造の寸法に変化が起こるまでY軸に沿つて辿り続け
ることにより到達する。すなわち、第2図の構造の場
合、第1の矩形はY座標Y0とY1との間と、Χ座標Χ
Χとの間に位置している。第2図では、この矩形の座
標を構造の右側の1行目に(Y0,Y1)(Χ1)とし
て一般化した形で表わしている。第2の矩形は第1の矩
形がΧ寸法の変化位置で終わるところから始まつてお
り、この矩形はY座標としてY1とY2を有し、Χ座標とし
てΧとΧを有する。この矩形の座標は構造の右側の
2行目に示されている。第3の矩形は、構造の右側の3
行目に示す通り、Y座標Y2及びY3と、Χ座標Χ及びΧ
とにより規定される。形状データ構造は、プリンタ装
置における1ページのある1つの領域を表すこともでき
る。このアルゴリズムはプリンタの図形にも適用可能で
ある。
第2図の一般化形状データ構造により規定される領域
全体は、点Y0Χで始まり、点Y0Χ2,Y1Χ2,Y1Χ3,Y2Χ
3,Y2Χ2,Y3Χ2,Y3Χ0,Y1Χ及びY1Χを通つて時計回
りに連続し、最初の点Y0Χに戻るほぼ直線で囲まれた
図形である。
この時点で、境界限定ボツクスをさらに規定しなけれ
ばならない。境界限定ボツクスは、形状の縁部と接触し
つつ形状全体を包囲する最小の矩形である。第2図の形
状の場合、境界限定ボツクスは、点Y0Χ0,Y0Χ3,Y3Χ
及びY3Χを結ぶ矩形により包囲される矩形である。
第3図は、特定の指定点を有する形状データ構造によ
り表わされる特定化した直線図形である。第3図の形状
では、領域を表わす矩形はY0点から始まり、Χ軸に沿つ
て規定される領域で最初の変化に達するまで下方へ続い
ている。この第1の形状はY軸に沿つて(0,2),Χ軸
に沿つて(0,3)(6,9)の座標を有し、従つて、Y寸法
は同じであるが、Χ寸法は異なる1対の矩形により規定
される。これらの座標は、構造の右側に(0,2)及び
(0,3)(6,9)として挙げられている。第2の矩形はY
軸に沿つて座標(2,5)を有し、Χ軸に沿つた0からΧ
軸に沿つた9まで続く。この第2の矩形の座標は、構造
の右側に、(2,5)(0,9)として示されている。形状デ
ータ構造の第3の矩形はY軸に沿つて(5,8)、Χ軸に
沿つて(0,4)の座標を有する。この形状に関する座標
は構造に右側の3行目に示されている。
ウインドーなどに使用されるような種類の角が丸い切
れ目のない矩形の形状データ構造は第4図に示されてい
る。この形状にかする形状データ構造は、第4図に一般
化した形で示される矩形から構成される。最も上方の矩
形はY座標Y0,Y1と、Χ座標Χ6とを有する。尚、
この第1の矩形は、おそらくは、陰極線関の1本の走査
線を成すものと考えられる。しかしながら、この形状を
始めとして、湾曲した角部を規定するその他の矩形は、
第4図には、概念の理解を助けるために、より広い間隔
で離間しているように示されている。第2の矩形はY座
標Y1,Y2と、Χ座標Χ5とを有する。矩形はY軸に
沿つて、Χ寸法を次々に変化させながら下方へ順に続
き、最後に点Y6に達する。この点から先の構造は、点Y6
と点Y7との間でΧ寸法を変えない。すなわち、次の矩形
は座標Y6,Y7及びΧ013を有する。中央のこのように
規定される大きな矩形を過ぎると、形状データ構造は、
それぞれ、陰極線管の1本の走査線により実質的に規定
される一連のより小さな矩形として下方へ続いてゆく。
それらの矩形には、座標Y7,Y8及びΧ012の矩形か
ら、座標Y12,Y13及びΧ6の矩形までが含まれる。
ここで形状データ構造方式を利用して規定される構造
からわかるように、比較的少数の規定点を使用するだけ
で、大きな構造や、様々な構造を規定できる。従つて、
図形構造を記憶するために必要なメモリの容量は、より
普遍的な図形記憶方法で使用されるメモリと比べて、著
しく小さくなつている。
形状データ構造の操作 特定の1つの領域に関して規定された形状データ構造
を、標準設定演算子によつて操作して、有用な出力を得
ることができる。第5図は、互いに重なり合う2つの矩
形形状データ構造について実行しうる3つの標準設定演
算子を示す。
第5図aは、2つの入力形状データ構造により包囲さ
れる領域全体を表わす出力形状を発生する合併演算子の
論理的な意味を示す。この出力形状は、領域が重なり合
つているか否かにかかわらず発生される。
第5図bは、2つの矩形に共通分演算子を適用するこ
との論理的な意味を示す。この共通分演算子は、2つの
入力形状に共通する領域を表わす出力形状を発生する。
これは、陰極線管に表示されるべき2つの領域の重複部
分をクリツプし且つ確定するのに特に有用である。
第5図cは、2つの矩形領域に差演算子を利用したと
きの結果を示す。差演算子は、一方の入力形状に含ま
れ、他方の入力形状のどの領域とも重ならなり(どの領
域によつても覆われない)部分領域を表わす出力形状を
発生する。これは、特に、他のウインドーと重なるウイ
ンドーの可視領域を計算する場合に有用である。
形状データ構造の操作を説明するに当たり、説明をよ
り簡明にするために、アルゴリズムを利用する。それら
のアルゴリズムを利用する場合には、一度に2つの入力
形状データ構造を比較するが、その入力形状データ構造
は矩形ごとに走査され、比較される。各形状データ構造
の複数のセグメントは対ごとに処理される。それらのセ
グメントとは、各形状データ構造を構成するそれぞれの
矩形を規定するΧ座標及びY座標を含む線である。ある
特定の時点において、考慮すべき1対のセグメントは、
第1の形状データ構造からの1つのセグメントと、第2
の形状データ構造からの1つのセグメントとを含む。た
だし、プロセスが進行するに従つて、セグメントは、操
作されたばかりの元のセグメントから取出された新たな
セグメントと置換えられても良い。いずれかの形状の全
てのセグメントが処理されたとき、出力形状は完成す
る。
合併,共通分及び差の演算子のいずれかによつて発生
されるべき出力形状データ構造を確定するために、オー
バーラツプルーチンが考えられている。このオーバーラ
ツプルーチンは、2つの線セグメントが互いに重なり合
うことができるようにする条件の全てを提示し、特定の
演算によつて、それぞれの重複形態に従つた出力を発生
する。考えられる重複条件が第6図に示されている。オ
ーバーラツプルーチンのどの場合についても、第1の線
セグメントはP1,1及びP1,2として一般化された点によ
り規定され、第2の線セグメントはP2,1及びP2,2とし
て一般化された点により規定される。負数を付したコー
ドは、実際には重なり合つていない線セグメントにおけ
るコードである。
−1とラベル付けされた第1の例は、第1の線セグメ
ントが第2の線セグメントと全く重ならずに、完全に第
2の線セグメントの右側に位置しているような1対の線
セグメントを示す。−2とラベル付された第2の例にお
いては、第1の線セグメントは第2の線セグメントの左
側にあつて、第2の線セグメントと重ならない。1とラ
ベル付けされた第3の例では、2つの線セグメントが重
なり合い、第1の線セグメントは第2の線セグメントの
右側まで延び、第2の線セグメントは第1の線セグメン
トの左側まで延びている。第6図に2とラベル付された
第4の例は、第1の線セグメントが第2の線セグメント
より短く、第2の線セグメントが第1の線セグメントを
越えて両方向へ延びているような2つの線セグメントに
関する。第6図に3とラベル付けされた第5の例は、第
2の線セグメントより長く、第2の線セグメントと両端
で重なる第1の線セグメントを示す。第6図に4とラベ
ル付けされた第6の例は、第1の線セグメントが第2の
線セグメントの左側部分と重なり、第2の線セグメント
は第1の線セグメントの右側部分と重なるような例を示
す。尚、これらの重なり合いが、2つの平行な線セグメ
ントについて存在しうるあらゆる重複条件を表わすため
に利用できるものであることは明白であろう。
アルゴリズムを利用する場合、第6図に示すオーバー
ラツプルーチンを使用して、2つの線セグメント(4つ
の入力点)を比較し、重複の種類を示す出力コードを発
生すれば良い。オーバーラツプルーチンは、ΧとY双方
の重複条件を検出するために使用される。
オーバーラツプルーチンにより戻された出力コード
は、演算ごとに出力形状データ構造中に複写されるべき
ものを決定するのみならず、演算で次に比較すべきセグ
メントをも決定する。それぞれの演算子アルゴリズムを
処理する際に、重複コードは次の順序で試験される。ま
ず、重複コード2がそれに適合するか否かを知るために
考慮される。適合していなければ、重複コード1が考慮
され、続いて、重複コード−1,重複コード−2,重複コー
ド4,最後に重複コード3の順序で考慮される。多くの状
況の下で、2つのコードのいずれか一方を利用すれば良
いことがあるが、それらのコードは共に同じ出力を発生
し、次の演算に対して同じセグメントを規定する。
第7図の表は、出力形状データ構造に複写されるべき
出力セグメントと、共通分演算,差演算及び合併演算の
それぞれに関して比較されるべき次のセグメントとを指
示するために、第6図の重複コードと共に利用される。
第7図は、3つの演算の出力を規定する3つの表を示
す。上の表は、共通分演算の出力に関するアルゴリズム
を示す。2番目の表は、差演算を決定するアルゴリズム
を示し、下の表は、合併演算を決定するアルゴリズムを
示す。第7図の法を読むに当たつて、「セグメント1」
及び「セグメント2」の名称は、形状1又は形状2から
取り出したセグメントに関する現在値を意味する。さら
に、「形状1の次のセグメント」のような語句は、次の
セグメントの現在値を与えるためには次のセグメントを
形状1から取出すべきであることを意味する。
第8図は、2つの重なり合う矩形に共通分演算子を適
用するときに第6図の重複コードをどのように使用する
かを一般化した形で示す。2づの矩形に関する形状デー
タ構造は、矩形の右と下に形状式により示されている。
共通分演算子を適用する場合、第1の形状データ構造
(左上の矩形)からの第1のYセグメントY0,Y2が、第
2の形状データ構造(右下の矩形)からの第2のYセグ
メントY1,Y3と比較される。第1のセグメントは、形状
データ構造の下方に、一般の記述P1,1及びP1,2と、特
定の記述Y0及びY2の双方を使用して示され、第2のセグ
メントは、一般の記述P2,1,P2,2と、特定の記述Y1及び
Y3の双方を使用して示されている。2つのセグメントは
Y軸の原点に対してその一次元位置に配列され、第6図
に示すような重複の種類の決定が行われる。たとえば、
第8図のセグメントY0,Y2と、セグメントY1,Y3とは、第
6図のコード4により表わされるように重なり合つてい
る。すなわち、点Y0は点Y1の左側にあり、点Y2は点Y3
左側,点Y1の右側の位置にある。
第7図の共通分の表は、コード4の重複がY1,Y2と等
しいP2,1,P1,2の出力セグメントを発生することを示
す。この出力セグメントは記録され、2つの形状データ
構造の当初のYセグメントと関連するΧセグメントにつ
いての比較が行われる。この比較は、矩形1からのセグ
メントΧ0と、矩形2からのセグメントΧ1
の比較である。それらのセグメントをΧ軸の原点に対し
て一次元位置に配列すると、第6図では同様にコード4
に規定されている重複があることがわかる。その結果、
2,1 P1,2,すなわちΧ1の出力セグメントが発生
される。第1のYセグメントに関してはΧセグメントが
それ以上存在しないので、次の1対のYセグメントが選
択される。最後のY演算は重複コード4の演算であつた
ため、第7図の共通分の表によれば、それらのセグメン
トは形状1の次のセグメント及び最後のYセグメント比
較からのセグメントP1,2 P2,2である。そのセグメント
は規定されるが、矩形1には次のYセグメントがないの
で、共通分演算は完了する。そこで、出力形状データ構
造は(Y1Y2)(ΧΧ)として規定される構造であ
り、それは予期された正しい結果である。
次に、第9図に関して説明すると、本発明の形状デー
タ構造を利用して操作できる2つのさらに複雑な形状が
示されている。第9図に示される第1の形状は大文字の
Uの形をしており、第2の形状は大文字のTの形をして
いる。2つの形状は、Χ軸及びY軸に対して、本発明の
適用方法をさらに容易に理解するために利用できるよう
な数値点を形成するように描かれている。第9図におい
ては、Χ軸はUの左上角の位置でゼロから始まり、右へ
正方向に続き、一方、Y軸は左上角でゼロから始まり、
下方へ正方向に進む。大文字のTは、第9図に示す位置
で、大文字のUの上に重なつている。
共通分 形状データ構造を使用して実行されるべき最初の演算
は、第9図に示す位置での大文字のUと大文字のTとの
共通分である。前述のように、共通分演算は、2つの入
力形状に共通する部分領域を表わす出力形状を発生す
る。このような演算は、コンピユータグラフイツクス表
示装置において重なり合う領域をクリツプし且つ確定す
るときに有用である。
使用すべき共通分アルゴリズムは、擬似コードの形態
で次のように記述されて良いであろう。
共通分形状(形状1,形状2) いずれかの入力形状が空であるか又は境界限定ボツク
スが重なり合わない場合には、空の形状を戻す。
初期Y範囲をY11,Y12,Y21,Y22で求める。
次の1対のセグメントに関して Yコード=重複(Y11,Y12,Y21,Y22) Y範囲が重複していれば、 重複するY範囲を出力する(Yコードに基づく)。
初期Χ範囲をΧ11122122で求める。
次の1対のセグメントに関して Χコード=重複(Χ11122122) Χ範囲が重複していれば、 重複するΧ範囲を出力する(Χコードに基づく)。
Χ11122122を設定する(Χコードに基づ
く)。
形状1又は形状2を進める(Χコードに基づく)。
いずれか一方のΧリストが尽きれば終了する。
重複するΧ範囲出力がなければ、先に出力されたY範
囲をはずす。
Y11,Y12,Y21,Y22を設定する(Yコードに基づく)。
形状1又は形状2を進める(Yコードに基づく)。
いずれかの入力形状が尽きれば、ループを出る。
上記のアルゴリズムに示されるように、出力形状デー
タ構造に導入される出力を発生するために、まず、Yセ
グメントが比較される。次に、対のYセグメントに対応
するΧセグメントが同様にして走査される。重なり合う
セグメントは出力形状に付加される。従来のセグメント
対に関して重なり合うΧ範囲がなければ、先に決定され
たY出力範囲ははずされる。
この説明の中では、U字形構造を形状1として扱い、
T字形構造を形状2として扱う。上記のアルゴリズムに
よれば、2つの形状は、まず、共通分に関して処理され
る。いずれか一方の形状が空であるか、又は境界限定ボ
ツクスが重なり合わない場合には、アルゴリズムは空形
状を結果として戻す。この最初のステツプは、2つの形
状の共通分が全く存在しないような状況を処理するもの
で、アルゴリズムは完了する必要がない。定義という観
点からいえば、空入力形状とは部分領域を含まない形状
であり、(前述のように)境界限定ボツクスは、1つの
特定の形状を包含しうる最小の矩形である。たとえば、
第9図のU字形構造に対する境界限定ボツクスは0,10の
Χ座標と、0,9のY座標とを有し、T字形構造の境界限
定ボツクスは1,9のΧ座標と2,11のY座標とを有する。
第9図に示す2つの形状の場合、いずれの条件にも適合
しないことは明白であるので、アルゴリズムの次のステ
ツプが実行される。
アルゴリズムの次のステツプによれば、2つの形状の
初期Y範囲が選択される。一般化した形態でいえば、初
期Y範囲はY11,Y12と、Y21,Y22であるが、実際の図にお
いては、U字形の第1の矩形に関してはYセグメン0,6,
T字形の第2の矩形に関してはYセグメント2,4である。
これらの初期Y範囲を選択した後、アルゴリズムは「次
のループのための」演算に移るが、その場合、出力セグ
メントのYコードは2つのYセグメントの重複に等し
い。
2つのセグメントを比較するために、第6図に示す重
複コード表を使用すると、適用すべき重複コードはコー
ド3であることがわかる。また、第7図の共通分の表か
ら、出力はP21,P22(Y21Y21)、すなわち、Yセグメン
ト2,4である。これは、Y範囲が重なり合うならば、重
複Y範囲はそのYコードに基づいて出力として発生され
ることを述べているアルゴリズムにより確認される。2
つのYセグメントのグラフは0から6と、2から4の範
囲で示すので、Yセグメントの重複は2から4に等し
い。2つの範囲の重複部分は2,4であるので、これが第
1の出力として発生されるYセグメントである。
アルゴリズムの次のステツプとは、第1のYセグメン
トに関する重複Χ範囲を出力する。アルゴリズムのこの
部分は、「初期Χ範囲をΧ11122122で求め
る」ステツプで始まる。第9図からわかるように、形状
1の初期Χ範囲は0,3である。すなわち、Χ11は0に等
しく、Χ12は3に等しいる。形状2(「T」)の初期Χ
範囲は1,9である。すなわち、Χ21は1に等しく、Χ22
は9に等しい。
次に、プログラムはこの1対のセグメントに関して
「次のための」ループに入り、第1及び形状2の第1の
1対のΧセグメントの重複に等しいΧコードを発生す
る。それらのΧ範囲が重なり合つていれば、Χコードに
基づいて、重複するΧ範囲に等しい出力が発生される。
発生される出力は、第9図のΧセグメントを目視比較す
ることにより決定されても良い。初期セグメントのΧ範
囲は、第9図では、1と3の間で重なり合う。この結果
は、第6図に示す重複コードを使用することにより決定
されても良い。初期Χ線セグメントは、コード4で示す
状態と重なり合つてい。第7図の共通分の表のコード4
を見てみると、第9図でセグムントの重複を目視観察す
ることにより先に決定したのと全く同様に、出力は1で
あるP21と、3であるP12とであることがわかるであろ
う。
アルゴリズムの次のステツプでは、Χセグメントを、
Χコードに基づいてΧ1112及びΧ2122に関して新
たな値に設定する。これは、最前の演算での第7図の共
通分表に対する基準により行なわれる。コード4の演算
によれば、次のセグメント1は形状1の次のセグメント
(7から10までのΧセグメント)に設定され、セグメン
ト2は最前のΧ反復からのP12,P22(3,9である)に設定
される。本質的には、これは、T字形のΧセグメント
の、先の反復ではU字形と重なつていなかつた部分を、
U字形から形成される第1の形状データ構造の残るΧセ
グメントと比較することである。アルゴリズムの「次の
ループのための」部分は、それら2つのセグメントのΧ
コード重複を判定し、Χ範囲が重なつていれば、重複す
る範囲について出力を発生するために使用される。第9
図を見ればわかるように、これらの2つのセグメントの
Χ範囲の重複部分は7,9である。第6図に関していえ
ば、この出力は、第7図の共通分の表が7,9を有する
P11,P22の、すなわち、同じΧ値の出力を示すようなコ
ード1の重複として決定されても良い。
Χ反復の次のステツプでは、Χコードに基づいてΧセ
グメントをリセツトする。これは、実行されたばかりの
比較演算に関するコード1の下で、第7図から決定され
ても良い。セグメント1はP22,P12、すなわち、9,10に
設定され、セグメント2は形状2の次のセグメントに設
定される。形状2を進ませるべきΧセグメントはそれ以
上存在しない(すなわち、この第1の矩形についてはΧ
リストが尽きた)ため、アルゴリズムのΧ部分は終了
し、Yコードに基づいて次のYセグメントが設定され
る。
この時点で、既に発生された出力を検討してみると、
2から4のYセグメントが発生されており、それと関連
して、1から3と、7から9の2つのΧセグメントがあ
ることがわかる。それらの中間出力は、第9図のグラフ
でそれらの部分領域を包囲する1本線の斜線により示さ
れるボツクスを含む中間形状係数を発生している。
アルゴリズムを継続するに際して、Y11,Y12及びY21,Y
22セグメントをYコードに基づいて設定するためには、
最前のY演算(すなわち、U字形からのYセグメント0,
6と、T字形からのYセグメント2,4との比較)に戻つて
考える。先に説明した通り、その比較は、第6図の重複
コードを使用すると、コード3の比較であつた。第7図
の第1の表によれば、Y比較で利用されるべき次のセグ
メントはP22,P21のセグメント1と、形状2の次のYセ
グメントであるセグメント2である。
Yセグメント0,6と、Yセグメント2,4との最前の比較
から取出されたP22,P12はYセグメント4,6であり、一
方、形状2の次のYセグメントはセグメント4,11であ
る。そこで、それらのYセグメントが選択され、アルゴ
リズムは次のステツプへ進み、Y比較に関する「次のた
めの」ループが開始される。このステツプにおいては、
Yコードは、選択されたばかりの2つのYセグメントの
重複と等しくなるように設定される。すなわち、Yコー
ドは4,6に等しい。この場合にも、このY値は第6図に
示す重複コードにより決定されても良い。この時点で、
セグメントが同じΧ点又は同じY点から始まる場合、ア
ルゴリズムは重複コードを特定の順序で次のように考慮
することに留意すべきである。まず、コード2の重複が
それに適合するか否かを知るために考慮される。適合し
ていなければ、重複コード−1が考慮され、続いて、コ
ード1,コード−2,コード4,最後にコード3の順序で考慮
される。2つのコードのいずれか一方を利用すれば良い
という多くの状況においては、2つのコードは共に同じ
出力を提供し、次の演算のために同じセグメントを規定
する。
この場合、2つのセグメントは、共に、4に等しいY
で始まつている。ただし、形状2のセグメントのほうが
長く、11に等しいYまで延びている。そのため、コード
2(考慮すべき最初のコード)はこの状況を包含してお
り、P11,P12の出力を発生する。尚、これらのセグメン
トを含むものとして考えることが可能であろう重複コー
ド4も、点Y11及びY21が同一であることにより、同じ出
力を発生するであろう。さらに、コード2及び4のそれ
ぞれに関する次のセグメント1及び2は同じである。従
つて、重複コード2又は4のいずれか一方は出力として
4,6のYセグメントを発生する。
次のステツプでは、それらのセグメントに関して重複
するΧ範囲を出力する。アルゴリズムは依然として第1
の形状データ構造(U字形)の第1の矩形を処理してい
るが、演算は第2の形状データ構造(T字形)の第2の
矩形に移行しているので、U字形の関連Χセグメントは
依然として0,3であるが、T字形の関連Χセグメントは
4,6である。次のステツプ(「次のための」反復)を適
用すると、これら2つのセグメントの重複のΧコード出
力が発生される。これらの範囲が重なり合わないことは
第9図を目で見て確定されても良く、従つて、出力とし
て、Χセグメントは発生されない。第6図の重複コード
−2を適用し、コード−2の場合には出力が示されてい
ない第7図の第1の表を参照しても、同じ結果が得られ
る。
第7図の表は、また、考慮すべき次のセグメントが形
状1の次のセグメントと、形状2の次のセグメントであ
ることを示している。アルゴリズムは依然としてU字形
形状データ構造の第1の矩形に関わつているので、「形
状1の次のセグメント」は7,10である。一方、T字形形
状データ構造については4,6の同じセグメントである。
この場合にも、「次のための」コードの反復により、重
複があれば、出力が発生される。しかしながら、これら
2つのセグメントは重なり合つていないので、第9図に
よつても、また、第7図の共通分の表で解釈される第6
図の重複コード表によつても、Χセグメントの出力は発
生されない。
コード1を使用するΧセグメント対に関する「次のた
めの」コードの次のステツプによれば、セグメント1は
不変である。すなわち、形状データ構造1のΧセグメン
トが7,10であるのに対し、形状2のΧセグメントは形状
2の次のセグメントである。形状2の次のセグメントは
存在しないため、Χセグメント演算の「次のための」コ
ードは、リストが尽きたことにより、終了となり、アル
ゴリズムはYセグメントの次の比較の設定に戻る。
最前に選択されたΧセグメントと、Yセグメントの最
終セツトを検討すると、Yセグメントを比較したときは
出力が発生されたが、2組のΧセグメントのいずれかを
比較したときは出力が発生されなかつたことがわかる。
従つて、Yセグメントが発生されたときにΧセグメント
が発生されなければ、出力は全く存在せず、そのYセグ
メントは放棄される。
この時点で、プログラムは、最前のYコード比較に基
づいて、次のYセグメント比較を設定する。最前の比較
はY(4,6)と、Y(4,11)であり、第7図の第1の表
によれば、コード2の比較であつた。この表を参照する
と、形状1の次のセグメントはY(6,9)であつて、こ
れを、最前の比較におけるP12,P22と比較すべきである
ことがわかる。最前の比較ではP12は6であり、P22は11
であつた。従つて、比較すべき2つのセグメントはY
(6,9)と、Y(6,11)である。「次のための」ループ
の今回の反復では、2つのセグメントの重複に等しいY
コード出力はY(6,9)になることが明らかであろう。
同様に6,9に等しいP11,P12の出力を挙げている第6図の
重複コード2を利用しても、これと同じ結果に到達す
る。
この時点で、アルゴリズムは、最前のYセグメント比
較に関する初期Χ範囲の設定に移行する。これらのΧ範
囲は、第9図から、Χ(9,10)と、Χ(4,7)に等しい
ことがわかる。次に、「次のための」ループに入り、こ
れら2つのΧセグメントの重複、すなわち、Χ(4,6)
に等しいΧコード出力発生される。同じ出力は、第6図
の重複コード3の結果(P21,P22の出力)としても示さ
れている。この時点で、Χコードに基づき、次のΧセグ
メントが設定される。重複コード3によれば、形状1の
次のΧセグメントはP22,P12,すなわち、Χ(6,10)であ
る。しかしながら、Χコード3による形状2の次のセグ
メントは形状2の次のセグメントであり、それは存在し
ない。従つて、プログラムはΧに関する「次のための」
ループを終了して、次のYセグメントの選択に戻る。と
ころが、この時点では、重複コード2(最前のYセグメ
ント比較)の下で、形状1の次のセグメントは存在しな
いので、Yコードに基づいて利用可能なYセグメントは
それ以上ない。そこで、アルゴリズムは終了し、入力形
状が完成する。
尚、発生されるべき形状データ構造の最後の部分は6,
9のYセグメントと、4,6のΧセグメントとを有する。そ
の結果、2つの入力形状に共通する部分領域である総合
共通分出力形状が発生されている。これは、第9図に、
1本線の斜線を付した領域として示されている。
差 第9図は、図示される2つの形状データ構造を利用し
て差の演算を説明するために利用されても良い。先に説
明した通り、差演算子は、一方の入力形状に含まれる
が、他方には含まれない部分領域を表わす出力形状を発
生する。他のウインドーと重なり合うウインドーの可視
領域を計算するために差演算子を使用することができ
る。
差アルゴリズムは、上述の共通分アルゴリズムと同様
に、セグメントを対ごとに処理する。この場合にも、形
状ごとに最初の2つのYセグメントが比較され、出力セ
グメントは出力形状に導入される。次に、対応するΧの
差が計算される。第1の入力形状と、第2の入力形状と
重ならない部分が出力形状に含まれる。第2の形状の重
複しない部分は放棄される。セグメントが重なつていな
ければ、形状1の現在のセグメントを付加する。第2の
形状の端部に達したとき、第1の形状からの残る入力
は、全て、出力形状中に複写される。第1の形状が尽き
れば、プログラムは終了する。
差アルゴリズムは擬似コード形態で次のように進行す
る。
形状1が空であれば、空形状を戻す。
形状2が空であれば、形状1を戻す。
境界限定ボツクスが重なり合わなければ、形状1を戻
す。
初期Y範囲をY11,Y12,Y21,Y22で求める。
次の1対のセグメントに関して Yコード=重複(Y11,Y12,Y21,Y22) Y範囲が重複していてば、Y範囲の差を出力する。
Y出力が発生されれば、形状1からのΧ範囲を出力す
る。
Y範囲の重複を出力する。
Χ範囲の差を出力する。
初期Χ範囲をΧ11122122で求める。
次の1対のセグメントに関して Χコード=重複(Χ11122122) Χ範囲が重複していれば、Χ範囲の差を出力する(Χ
コードに基づく)。
Χ11122122を設定する(Χコードに基づ
く)。
形状1又は形状2を進める(Χコードに基づく)。
Χリストが尽きれば、終了する。
最後に進めたのが形状2であれば、Χ1112と、形
状1のΧリストの残りの部分とを出力する。
Y11,Y12,Y21,Y22を設定する(Yコードに基づく)。
形状1又は形状2を進める(Yコードに基づく)。
いずれかの入力形状が尽きれば終了する。
形状1の残り部分を出力する。
このアルゴリズムを使用すると、出力形状に2種類の
Y範囲が付加される。比較すべき対のうち第1のセグメ
ントが第2のものの左側にあるとき、重ならないY範囲
は出力として発生される。形状1からの現在Χリストも
出力に追加される。セグメントが重複するならば、重複
するY範囲は出力形状に加えられる。その後、形状1
と、形状2からの現在Χセグメントの差が求められる。
このステツプにより付加されるΧ対がなければ、先のΧ
範囲がはずされる。
Χ寸法に関する差演算はYの差演算より簡単である。
形状1出力からのΧセグメントと、形状2からのセグメ
ントは、Χセグメントの重複が現われるか又はいずれか
一方のΧリストの終端に達するまでスキツプされる。次
に、その1対のセグメントの差が出力として発生され、
走査は継続する。
以下、第9図の2つの形状に差演算子がどのように適
されるかを簡単に説明する。それらの形状は、共通分演
算子の説明で述べた通りに扱われるものとする。すなわ
ち、U字形を形状1として考え、T字形を形状2として
考える。
アルゴリズムの第1のステツプは、形状1が空である
場合について考慮するが、第9図の状況はこれに当ては
まらない。アルゴリズムの第2のステツプは、形状1が
空であるときに、形状1全体が出力として現われるよう
に、形状1を欠けるところなく戻す。ステツプ3は、2
つの形状の境界限定ボツクスが重なり合わない場合に、
形状1を戻す。
セグメントが重複する場合のより複雑な演算に際して
は、アルゴリズムの第1のステツプで、初期Y範囲を選
択する。このY範囲は、当然のことながら、U字形から
のY(0,6)と、T字形からのY(2,4)である。1対の
初期セグメントに関して、重複状態に従つてYコードが
決定される。第6図は、重複コードが3の重複であるこ
とを示す。第7図の差の表によれば、コード3の重複は
P11,P21の出力、すなわち、0,2のYセグメントを発生す
る。
第1のステツプでY出力が発生されたならば、形状1
からのΧ範囲も出力として発生される。それらの範囲は
0,3と7,10である。Y範囲が発生されているため、これ
は、0から2のY寸法と、0から3及び7から10のΧ寸
法とを有する2つの矩形ボツクスを発生する。
アルゴリズムの次のステツプでは、Y範囲の重複を出
力する。差演算処理表から、Y範囲の重複が2,4のYセ
グメントであることが決定されるであろう。次に、アル
ゴリズムのΧ範囲の差を出力する。アルゴリズムは、2
つの形状に関して初期Χ範囲を選択する。それらのΧ範
囲は、U字形ではΧ(0,3)であり、T字形ではΧ(1,
9)である。次に、「次のための」ループに入り、2つ
のΧセグメントの重複により決定されるΧコードが与え
られる。Χ範囲が重複していれば、このΧモードに基づ
くΧ範囲の差が出力として提供される。この場合、第6
図は、P11,P12の出力、すなわち、Χ(1,2)のΧセグメ
ントを発生する重複コード4を示している。次のΧセグ
メントは、コード4を使用して、形状1の次のセグメン
ト(7,10)と、P12,P22,すなわち、Χ(3,9)とに設定
される。それらのセグメントに関して、第6図の重複コ
ードから、コード1に等しい新たなΧコードが決定され
る。その結果、そのΧコードに基づいて、又は第7図の
差の表におけるコード1に従つて、Χ範囲の差である出
力「なし」が発生される。
コード1に基づいて、次のΧセグメントはP22,P12,す
なわち、Χ(9,10)と、形状2の次のセグメントに設定
される。形状2の次のセグメントは存在しないので、Χ
に関する。次のための」ループは終了し、形状2のセグ
メントが残つていないならば、Χ1112と、形状1の
Χリストの残る部分とである出力は発生される。この場
合はそれに当てはまるので、Χ(9,10)が出力として提
供される。
これにより、Y(2,4)のY寸法と、Χ(0,1)及びΧ
(9,10)のΧ寸法とを有する付加的な2つの矩形が得ら
れる。ここで、アルゴリズムのΧ部分は終了し、最前の
Yコード設定に基づいて、次のYセグメントが設定され
る。最前のYコード設定はY(0,6)と、Y(2,4)との
コード3の比較であつた。従つて、第7図の差の表によ
り示すように、次のセグメント1はY(4,6)であり、
セグメント2はY(4,11)である。
アルゴリズムループは「次のための」ループの開始時
に戻り、それらの2つのセグメントの重複に基づいてY
コードを決定する。実行すべき最初の比較は、Yセグメ
ントの重複に基づいて出力を発生するためのコード2の
比較である。第7図の差の表におけるコード2の比較に
よれば、出力は発生されない。従つて、先のステツプで
発生されるY出力は存在しないことになるので、次のス
テツプ(形状1からのΧ範囲を出力する)は省略され
る。
アルゴリズムは、Y範囲の重複、すなわち、Y(4,
6)の値を有するセグメントの出力へ移行し、次に、ア
ルゴリズムのΧ差決定の部分へ移行する。初期Χセグメ
ントが選択される。これは、U字形からの(0,3)と、
T字形からの(4,6)である。これらのΧ範囲が重複す
るならば、Χコードに基づいてそれらのセグメント範囲
の差である出力が発生される。この場合の範囲は−2コ
ードに従つて重なり合つて、Χ(0,3)であるP11,P12
出力を発生する。このコードに基づいて、次のΧセグメ
ントは形状1の次のセグメント、すなわち、Χ(7,10)
と、不変である形状2のセグメントΧ(4,6)とに設定
される。重複は、第6図から、「なし」の出力を発生す
る−1コードの重複であると決定される。−1コードに
より設定されるべき次のΧセグメントはΧ(7,10)のセ
グメント1と、形状2の次のセグメントである。形状2
の次のセグメントは存在しないので、「次のための」ル
ープは終了し、Χ1112,すなわち、セグメントΧ(7,
10)が出力として発生される。
この時点で、出力形状には、セグメントY(4,6)及
びΧ(0,3),Χ(7,10)によりさらに2つの矩形が形
成されている。
次の1組のYセグメントは、Y(4,6)とY(4,11)
との比較、すなわち、コード2の比較であつた最前のY
比較に基づいて選択される。すなわち、次のYセグメン
トは、Y(6,9)である形状1の次のYセグメントと、
形状2のYセグメントY(6,11)である。これら2つの
セグメントは重複コード2に基づくYコードと、「な
し」の出力とを発生する。このステツプで出力はないの
で、形状1からは出力としてΧ範囲は出力されない。ア
ルゴリズムは、Y(4,6)であるY範囲の重複の出力
と、Χ範囲の差の出力とに移行する。ループのΧ部分
で、次のΧセグメントが選択される。それらのセグメン
トは、U字形ではΧ(0,10),T字形ではΧ(4,6)であ
る。重複コードは、P11,P21の出力、すなわち、Χ(0,
6)の出力を発生するコード3である。Χ形状は、P22,P
12,すなわち、Χ(6,10)と、形状2の次のセグメント
である新たなセグメントに進む。形状2の次のセグメン
トは存在しないので、Χ1112,すなわち、Χ(6,10)
である出力が発生される。
これにより、Y(6,9)のYセグメントと、Χ(0,6)
及びΧ(6,10)のΧセグメントとを有するさらに2つの
矩形ボツクスが発生される。アルゴリズムは次のYセグ
メントを捜し、形状1の次のセグメントがないことを知
る。そこで、アルゴリズムは終了し、形状1の残り部分
を出力として発生する。形状1の残り部分は存在しない
ため、アルゴリズムは既に完了しており、第9図に直交
平行線を付して示している図形が出力形状として発生さ
れる。
合併 合併アルゴリズムを適用した場合の演算は、共通分ア
ルゴリズム及び差アルゴリズムに関する説明を余すとこ
ろなく理解すれば、当業者には明白なはずであるため、
ここではごく簡単に説明する。
合併の場合のアルゴリズムは次の通りである。
形状1が空であれば、形状2を戻す。
形状2が空であれば、形状1を戻す。
初期Y範囲をY11,Y12,Y21,Y22で求める。
次の1対のセグメントに関して Yコード=重複(Y11,Y12,Y21,Y22) Y範囲が重複していれば、 他方のセグメントと重ならない一方のセグメントの最
小値Y範囲を出力する(以下の第1表に示す場合)。
上記Y範囲出力に対応するセグメントのΧ範囲を出力
する。
Y範囲の重複を出力する。
初期Χ範囲をΧ11122122で求める。
次の1対のセグメントに関して Χコード=重複(Χ11122122) Χ範囲を出力する(第7図に示すようなΧコードに基
づく)。
Χ11122122を設定する(Χコードに基づ
く)。
形状1又は形状2を進める(Χコードに基づく)。
いずれか一方のΧリストが尽きれば終了する。
Χリストの残り部分を出力する。
もしくは いずれか一方のセグメントの最小値Y範囲を出力す
る。
上記Y範囲に対応するセグメントのΧ範囲を出力す
る。
Y11,Y12,Y21,Y22を設定する(Yコードに基づく)。
形状1又は形状2を進める(Yコードに基づく)。
いずれか一方の入力形状が尽きれば終了する。
形状の残り部分を出力する。
合併のアルゴリズムは、入力形状の重なり合わない部
分が放棄されるのではなく、出力形状に複写されるとい
う点を除いて、共通分のアルゴリズムと同様である。第
9図の2つの形状にこのアルゴリズムを適用する場合、
結果として得られる出力形状データ構造は、第9図に示
す2つの形状を合わせたものに等しい。合併セグメント
の処理は上記のアルゴリズムと、第6図及び第7図と、
上記の第1表とから、当業者には十分に明白である。合
併演算子により、単純な形状から複雑な形状を構成する
ことができる。
以上、本発明を特定の構成及びシステムに関連して説
明したが、それらの構成及びシステムの詳細は実例を挙
げて説明するという目的のためのものであり、本発明を
限定する事項として考えられてはならないことは当業者
には明白であろう。本発明の方法及び装置が、陰極線管
又はその他の出力装置への図形表示が望まれるあらゆる
適用用途で有用であることは明らかであろう。従つて、
通常の当業者により、本発明の趣旨から逸脱することな
く、数多くの変更及び変形を行いうると考えるべきであ
る。
【図面の簡単な説明】
第1図は本発明を利用しうる汎用コンピユータシステム
を示すブロツク線図、第2図は本発明による第1の二次
元形状データ構造を示す図、第3図は本発明による第2
の二次元形状データ構造を示す図、第4図は本発明に従
つて形状図により表わされたコンピユータグラフイツク
ス表示に利用されるウインドーの図、第5図(a)から
第5図(c)は本発明に従つて実行しうる特定の一般化
ブール演算を示す図、第6図は本発明に従つて実行され
る一次元決定において2つの線セグメントに関して考え
られる様々な重複状態を示す図、第7図は本発明の実施
に際して第5図に示すブール演算を実行するときに発生
される出力及び指示される次のステツプのセグメントを
示す図、第8図は本発明に従つて実行される一般化演算
を示す図、第9図は本発明に従つて実行されるより特定
化したブール演算を示す図である。 20……コンピユータ、22……入出力回路、24……中央処
理装置、26……メモリ、32……大容量記憶装置、36……
表示モニター。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ノーラ・ドネート アメリカ合衆国 95014 カリフオルニ ア州・クーパチノ・バレー グリーン ドライブ・20990・アパートメント ナ ンバ 26 (58)調査した分野(Int.Cl.6,DB名) G06T 1/00 - 11/80 G09G 5/00 - 5/40

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】Χ軸と前記Χ軸に直交するY軸を有する2
    次元デジタル図形画像を、コンピュータ表示装置システ
    ムを使用して記憶し操作する方法であって、 この方法は、前記図形画像を、各々がΧ軸に平行で前記
    Y軸に沿って厚みを有する、一個または複数の平行矩形
    形状のみから構成され、各矩形形状が前記Χ軸に沿った
    Χ1座標とΧ2座標とで定義される第1寸法、前記Y軸
    に沿ったY1座標とY2座標で定義される共通第2寸法とを
    有し、共通第2寸法が前記Y軸に沿った前記厚さに等し
    い、複数の薄片にスライスする段階と、 前記矩形形状を、先ず共通第2寸法を有する矩形形状を
    ひとまとめにするように各矩形の前記Y軸に沿ったY1お
    よびY2座標の値で、次いで各矩形形状の前記Χ軸に沿っ
    たΧ1座標とΧ2座標の値で連続して順序付けして前記
    矩形形状を連続した順序で並べたリストにすることによ
    って、前記図形画像を定義する形状データ構造を形成す
    る段階と、 前記形状データ構造をメモリに記憶する段階と を有し、前記形状データ構造の複数にブール演算子を適
    用して少なくとも一つの出力形状データ構造を生成する
    ことを特徴とする方法。
  2. 【請求項2】複数の矩形形状から構成される図形画像
    を、コンピュータ表示装置システムを使用して記憶し操
    作する方法であって、 この方法は、図形画像を、各々が直線座標系のΧ軸に平
    行でY軸に沿って厚さを有する、それぞれ一個または複
    数の平行矩形形状のみから構成され、前記各平行矩形形
    状が前記Y軸に沿って薄層の厚さに等しい厚さを有す
    る、複数の薄片にスライスする段階と、 前記Χ軸に沿ったΧ1座標およびΧ2座標を有する第1
    線セグメントとこのΧ軸に垂直な前記Y軸に沿ったY1お
    よびY2座標を有する第2線セグメントによってそれぞれ
    が表される、各薄片内の平行矩形形状を表す複数の矩形
    定義を形成する段階であって、Y軸に沿って最初に第2
    線セグメントが定義され、かつその第2線セグメントが
    増加順に順序づけられ、次ぎに記憶された第2線セグメ
    ントに関連した第1線セグメントを定義し、その第1セ
    グメントを増加順に順序づけることによって、各矩形定
    義が図形画像を形成する全ての矩形定義が定義されるま
    で定義される段階と、 各画像を表す前記矩形定義を表す前記第1および第2線
    セグメントの前記それぞれの座標をメモリに記憶する段
    階と から構成されることを特徴とする方法。
JP1240303A 1988-10-03 1989-09-18 画像操作方法 Expired - Fee Related JP2955995B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US25258988A 1988-10-03 1988-10-03
US252,589 1988-10-03

Publications (2)

Publication Number Publication Date
JPH02122378A JPH02122378A (ja) 1990-05-10
JP2955995B2 true JP2955995B2 (ja) 1999-10-04

Family

ID=22956658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1240303A Expired - Fee Related JP2955995B2 (ja) 1988-10-03 1989-09-18 画像操作方法

Country Status (5)

Country Link
JP (1) JP2955995B2 (ja)
AU (1) AU624137B2 (ja)
CA (1) CA1329960C (ja)
GB (1) GB2223383B (ja)
HK (1) HK98993A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819278A (en) * 1996-08-23 1998-10-06 Adobe Systems Incorporated Maintaining invalidation information in tiled image representations
JP4311391B2 (ja) * 2005-10-03 2009-08-12 ソニー株式会社 接触形状算出装置及び接触形状算出方法、並びにコンピュータ・プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4199815A (en) * 1978-05-12 1980-04-22 Electra Corporation Typesetter character generating apparatus
US4622545A (en) * 1982-09-30 1986-11-11 Apple Computer, Inc. Method and apparatus for image compression and manipulation
US4620287A (en) * 1983-01-20 1986-10-28 Dicomed Corporation Method and apparatus for representation of a curve of uniform width
US4660029A (en) * 1984-07-06 1987-04-21 Tektronix, Inc. Method of providing raster information for a graphics display employing linked lists
GB2178277B (en) * 1985-07-18 1989-08-23 Anamartic Ltd Graphics system for display of shaded polygons
US4812834A (en) * 1985-08-01 1989-03-14 Cadtrak Corporation Graphics display system with arbitrary overlapping viewports
US4780709A (en) * 1986-02-10 1988-10-25 Intel Corporation Display processor
US4788538A (en) * 1986-11-17 1988-11-29 Lotus Development Corporation Method and apparatus for determining boundaries of graphic regions

Also Published As

Publication number Publication date
AU3458389A (en) 1990-04-05
AU624137B2 (en) 1992-06-04
JPH02122378A (ja) 1990-05-10
GB2223383B (en) 1993-03-31
GB8911335D0 (en) 1989-07-05
CA1329960C (en) 1994-05-31
HK98993A (en) 1993-09-30
GB2223383A (en) 1990-04-04

Similar Documents

Publication Publication Date Title
US4622545A (en) Method and apparatus for image compression and manipulation
US4829470A (en) Text flow around irregular shaped graphic objects
US4723211A (en) Editing of a superblock data structure
US5930813A (en) Method and system for designating objects
US5339390A (en) Operating a processor to display stretched continuation of a workspace
JP3329855B2 (ja) 階層化ディスプレイでノードをセンタリングするための方法
US4723210A (en) Superblock structure in a multiple in a data editor
US4769636A (en) Display control method for multi-window system
EP0323558B1 (en) Polygon filling method
EP0694829B1 (en) A method and apparatus for visualization of database search results
US4949388A (en) Method and apparatus for recognition of graphic symbols
US5079719A (en) Method and apparatus for clipping polygons
Sander VCG-visualization of compiler graphs
JPH0610812B2 (ja) 表示装置
JPH07109629B2 (ja) 多角形の識別方法、多角形を識別するシステム
US8665293B2 (en) Automatic draw order
US5020002A (en) Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system
US5261032A (en) Method for manipulation rectilinearly defined segmnts to form image shapes
JP2955995B2 (ja) 画像操作方法
US5068803A (en) Method and apparatus for filling contours in digital typefaces
US5724073A (en) Method for the entry of a graphic character by specifying a parallelogram where the character is to be displayed
JPH08329004A (ja) アプリケーション・プログラム使用の端末操作性向上方法
KR100237659B1 (ko) 도형 편집 장치 및 방법
EP0315172B1 (en) Automatic program generation method with a visual data structure display
JP2740506B2 (ja) 画像認識方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees