JP3028029B2 - 多角形図形のクリッピング描画方式 - Google Patents
多角形図形のクリッピング描画方式Info
- Publication number
- JP3028029B2 JP3028029B2 JP6110420A JP11042094A JP3028029B2 JP 3028029 B2 JP3028029 B2 JP 3028029B2 JP 6110420 A JP6110420 A JP 6110420A JP 11042094 A JP11042094 A JP 11042094A JP 3028029 B2 JP3028029 B2 JP 3028029B2
- Authority
- JP
- Japan
- Prior art keywords
- clip
- points
- point
- clipping
- frame
- 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 - Lifetime
Links
Landscapes
- Image Generation (AREA)
Description
【0001】
【産業上の利用分野】本発明は二次元多角形図形の描画
方式に関し、特に描画対象の二次元多角形図形のうちク
リップ枠内に存在する部分のみを表示装置に表示する多
角形図形のクリッピング描画方式に関する。
方式に関し、特に描画対象の二次元多角形図形のうちク
リップ枠内に存在する部分のみを表示装置に表示する多
角形図形のクリッピング描画方式に関する。
【0002】
【従来の技術】描画対象となる二次元多角形図形のうち
クリップ枠からはみ出た部分を切り落とし、即ちクリッ
ピングして、クリップ枠内に存在する部分のみを表示装
置に表示する場合、従来は、先ず、クリッピング手段に
より多角形図形をクリップ枠に従ってクリッピングして
クリッピング済の多角形図形を作成し、次に、描画デー
タ作成手段によりクリッピング済の多角形図形の各辺の
辺情報データ(辺の端点の座標値と辺の傾き等)を作成
し、次いで、描画処理手段により辺情報データに基づい
て例えば台形分割法等の手法で表示装置にクリッピング
済の多角形図形を表示するのが一般的であった。
クリップ枠からはみ出た部分を切り落とし、即ちクリッ
ピングして、クリップ枠内に存在する部分のみを表示装
置に表示する場合、従来は、先ず、クリッピング手段に
より多角形図形をクリップ枠に従ってクリッピングして
クリッピング済の多角形図形を作成し、次に、描画デー
タ作成手段によりクリッピング済の多角形図形の各辺の
辺情報データ(辺の端点の座標値と辺の傾き等)を作成
し、次いで、描画処理手段により辺情報データに基づい
て例えば台形分割法等の手法で表示装置にクリッピング
済の多角形図形を表示するのが一般的であった。
【0003】そして、上記クリッピング手段としては、
サザーランド・ホッジマン法を用いた手段が使用されて
いた。
サザーランド・ホッジマン法を用いた手段が使用されて
いた。
【0004】ここで、サザーランド・ホッジマン法と
は、クリップ枠Wと描画対象となる多角形図形P0との
位置関係が例えば図13(a)の関係にあるとすると、
先ずクリップ枠Wの上辺より上の部分を切り捨てて同図
(b)の中間多角形P1を生成し、次にクリップ枠Wの
下辺より下の部分を切り捨てて同図(c)の中間多角形
P2を生成し、次にクリップ枠Wの左辺より左の部分を
切り捨てて同図(d)の中間多角形P3を生成し、最後
にクリップ枠Wの右辺より右の部分を切り捨てて同図
(e)のクリップ済多角形P4を生成する手法である。
は、クリップ枠Wと描画対象となる多角形図形P0との
位置関係が例えば図13(a)の関係にあるとすると、
先ずクリップ枠Wの上辺より上の部分を切り捨てて同図
(b)の中間多角形P1を生成し、次にクリップ枠Wの
下辺より下の部分を切り捨てて同図(c)の中間多角形
P2を生成し、次にクリップ枠Wの左辺より左の部分を
切り捨てて同図(d)の中間多角形P3を生成し、最後
にクリップ枠Wの右辺より右の部分を切り捨てて同図
(e)のクリップ済多角形P4を生成する手法である。
【0005】なお、サザーランド・ホッジマン法を適用
したクリッピング装置を記載した文献としては、例えば
特開平2−15385号公報がある。
したクリッピング装置を記載した文献としては、例えば
特開平2−15385号公報がある。
【0006】
【発明が解決しようとする課題】従来は上述したような
方式で二次元多角形図形をクリップ枠でクリッピングし
て表示していたが、サザーランド・ホッジマン法による
クリッピングを実施していたために、以下のような問題
点があった。
方式で二次元多角形図形をクリップ枠でクリッピングし
て表示していたが、サザーランド・ホッジマン法による
クリッピングを実施していたために、以下のような問題
点があった。
【0007】クリッピング処理中に生成される中間多角
形を格納しておくための格納領域が必要となる。この格
納領域は多角形の頂点数が多ければ多いほど大容量の領
域が必要となるため、描画対象となる多角形のうちの最
大頂点数に見合った大容量のものが必要である。
形を格納しておくための格納領域が必要となる。この格
納領域は多角形の頂点数が多ければ多いほど大容量の領
域が必要となるため、描画対象となる多角形のうちの最
大頂点数に見合った大容量のものが必要である。
【0008】クリッピング手段からは図13(e)に示
す最終的なクリッピング済多角形P4が生成された時点
で初めて、クリッピング済多角形P4の各頂点の座標値
が描画データ作成手段に与えられるので、処理が逐次処
理とならざるを得ず、クリッピング処理と描画データ作
成処理とを並行に進めることができない。
す最終的なクリッピング済多角形P4が生成された時点
で初めて、クリッピング済多角形P4の各頂点の座標値
が描画データ作成手段に与えられるので、処理が逐次処
理とならざるを得ず、クリッピング処理と描画データ作
成処理とを並行に進めることができない。
【0009】そこで本発明の目的は、クリッピング処理
に際して大容量な格納領域を必要とせず、またクリッピ
ング処理と描画データ作成処理とを並行して進めること
ができる多角形図形のクリッピング描画方式を提供する
ことにある。
に際して大容量な格納領域を必要とせず、またクリッピ
ング処理と描画データ作成処理とを並行して進めること
ができる多角形図形のクリッピング描画方式を提供する
ことにある。
【0010】
【課題を解決するための手段】本発明は上記の目的を達
成するために、描画対象の二次元多角形図形のうちクリ
ップ枠内に存在する部分のみを表示装置に表示する多角
形図形のクリッピング描画方式において、辺の両端点の
座標値を入力して、その辺のクリップ枠に対するクリッ
プ点を以下の(1)〜(3)の規則に基づいて算出し、
算出結果が得られる毎にその結果を出力する複数の辺ク
リッピング手段と、 (1)辺の両端点がクリップ枠内に存在する場合、辺の
両端点の座標値を辺の始点から順に並べた2点をクリッ
プ点とする。 (2)辺の一方の端点のみがクリップ枠内に存在する場
合、クリップ枠内に存在する端点の座標値と、辺とクリ
ップ枠との交点の座標値と、更に辺がクリップ枠の延長
線とも交わるときにはその交点に最も近いクリップ枠の
角点の座標値とを、辺の始点に近い順に並べた2点また
は3点をクリップ点とする。 (3)辺の両端点がクリップ枠外に存在する場合で、
辺がクリップ枠と1点または2点で交わるときは、辺と
クリップ枠との交点の座標値と、更に辺がクリップ枠の
延長線とも交わるときにはその交点に最も近いクリップ
枠の角点の座標値とを、辺の始点に近い順に並べた1
点,2点,3点または4点をクリップ点とする。辺が
クリップ枠と交わらないときで、クリップ枠の延長線と
も交わらないときはクリップ点無しの算出結果を出力
し、クリップ枠の延長線と交わるときは、その交点に最
も近いクリップ枠の角点の座標値を、辺の始点に近い順
に並べた1点,2点または3点をクリップ点とする。 前
記複数の辺クリッピング手段を所定の順序で順次に選択
して、描画対象となる二次元多角形図形を構成する辺の
並び順に、1辺ずつその辺の両端点の座標値を前記選択
した辺クリッピング手段に出力する多角形分割手段と、
前記複数の辺クリッピング手段を所定の順序で順次に選
択して、該選択した 辺クリッピング手段からクリップ点
が入力される毎に、それまで入力したクリップ点と今回
入力されたクリップ点とから、クリッピング後の多角形
図形を構成する辺を認識しつつ辺情報データを順次に作
成する描画データ作成手段と、該描画データ作成手段で
作成された辺情報データに基づき、クリッピング後の多
角形図形を前記表示装置に描画する描画処理手段とを備
えている。
成するために、描画対象の二次元多角形図形のうちクリ
ップ枠内に存在する部分のみを表示装置に表示する多角
形図形のクリッピング描画方式において、辺の両端点の
座標値を入力して、その辺のクリップ枠に対するクリッ
プ点を以下の(1)〜(3)の規則に基づいて算出し、
算出結果が得られる毎にその結果を出力する複数の辺ク
リッピング手段と、 (1)辺の両端点がクリップ枠内に存在する場合、辺の
両端点の座標値を辺の始点から順に並べた2点をクリッ
プ点とする。 (2)辺の一方の端点のみがクリップ枠内に存在する場
合、クリップ枠内に存在する端点の座標値と、辺とクリ
ップ枠との交点の座標値と、更に辺がクリップ枠の延長
線とも交わるときにはその交点に最も近いクリップ枠の
角点の座標値とを、辺の始点に近い順に並べた2点また
は3点をクリップ点とする。 (3)辺の両端点がクリップ枠外に存在する場合で、
辺がクリップ枠と1点または2点で交わるときは、辺と
クリップ枠との交点の座標値と、更に辺がクリップ枠の
延長線とも交わるときにはその交点に最も近いクリップ
枠の角点の座標値とを、辺の始点に近い順に並べた1
点,2点,3点または4点をクリップ点とする。辺が
クリップ枠と交わらないときで、クリップ枠の延長線と
も交わらないときはクリップ点無しの算出結果を出力
し、クリップ枠の延長線と交わるときは、その交点に最
も近いクリップ枠の角点の座標値を、辺の始点に近い順
に並べた1点,2点または3点をクリップ点とする。 前
記複数の辺クリッピング手段を所定の順序で順次に選択
して、描画対象となる二次元多角形図形を構成する辺の
並び順に、1辺ずつその辺の両端点の座標値を前記選択
した辺クリッピング手段に出力する多角形分割手段と、
前記複数の辺クリッピング手段を所定の順序で順次に選
択して、該選択した 辺クリッピング手段からクリップ点
が入力される毎に、それまで入力したクリップ点と今回
入力されたクリップ点とから、クリッピング後の多角形
図形を構成する辺を認識しつつ辺情報データを順次に作
成する描画データ作成手段と、該描画データ作成手段で
作成された辺情報データに基づき、クリッピング後の多
角形図形を前記表示装置に描画する描画処理手段とを備
えている。
【0011】
【0012】
【0013】
【作用】 本 発明においては、多角形分割手段が、複数の
辺クリッピング手段を所定の順序で順次に選択して、描
画対象となる二次元多角形図形を構成する辺の並び順
に、1辺ずつその辺の両端点の座標値をその選択した辺
クリッピング手段に出力し、辺の両端点の座標値を入力
された各々の辺クリッピング手段が、その辺のクリップ
枠に対するクリップ点を所定の規則に基づいて算出し、
算出結果が得られる毎にその結果を出力し、描画データ
作成手段が、複数の辺クリッピング手段を所定の順序で
順次に選択して、その選択した辺クリッピング手段から
クリップ点が入力される毎に、それまで入力したクリッ
プ点と今回入力されたクリップ点とから、クリッピング
後の多角形図形を構成する辺を認識しつつ辺情報データ
を順次に作成し、描画処理手段が、描画データ作成手段
で作成された辺情報データに基づき、クリッピング後の
多角形図形を表示装置に描画する。
辺クリッピング手段を所定の順序で順次に選択して、描
画対象となる二次元多角形図形を構成する辺の並び順
に、1辺ずつその辺の両端点の座標値をその選択した辺
クリッピング手段に出力し、辺の両端点の座標値を入力
された各々の辺クリッピング手段が、その辺のクリップ
枠に対するクリップ点を所定の規則に基づいて算出し、
算出結果が得られる毎にその結果を出力し、描画データ
作成手段が、複数の辺クリッピング手段を所定の順序で
順次に選択して、その選択した辺クリッピング手段から
クリップ点が入力される毎に、それまで入力したクリッ
プ点と今回入力されたクリップ点とから、クリッピング
後の多角形図形を構成する辺を認識しつつ辺情報データ
を順次に作成し、描画処理手段が、描画データ作成手段
で作成された辺情報データに基づき、クリッピング後の
多角形図形を表示装置に描画する。
【0014】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
詳細に説明する。
【0015】図1を参照すると、本発明の一実施例の多
角形図形のクリッピング描画方式は、座標変換手段1
と、多角形分割手段2と、3個の辺クリッピング手段3
−1〜3−3と、描画データ作成手段4と、描画処理手
段5と、表示手段6とで構成されている。表示手段6は
例えばCRTディスプレイ装置等で構成され、他の手段
1〜5は例えば所定のプログラムで動作するMPUで構
成される。特に、辺クリッピング手段3−1〜3−3,
描画データ作成手段4は各々独立して並行に動作するよ
うに構成されている。
角形図形のクリッピング描画方式は、座標変換手段1
と、多角形分割手段2と、3個の辺クリッピング手段3
−1〜3−3と、描画データ作成手段4と、描画処理手
段5と、表示手段6とで構成されている。表示手段6は
例えばCRTディスプレイ装置等で構成され、他の手段
1〜5は例えば所定のプログラムで動作するMPUで構
成される。特に、辺クリッピング手段3−1〜3−3,
描画データ作成手段4は各々独立して並行に動作するよ
うに構成されている。
【0016】なお、本実施例は、描画対象とする多角形
図形の辺毎に分割して複数の辺クリッピング手段で並列
的にクリッピング処理を行うものであり、辺クリッピン
グ手段の個数は3個に限定されるものではない。
図形の辺毎に分割して複数の辺クリッピング手段で並列
的にクリッピング処理を行うものであり、辺クリッピン
グ手段の個数は3個に限定されるものではない。
【0017】座標変換手段1は、描画対象となる多角形
図形を指定された通りの倍率に拡大したり或いは指定さ
れた向きに回転したりする手段であり、座標変換後の多
角形図形を多角形分割手段2に出力する。座標変換後の
多角形図形の情報はその頂点の座標値の並びで多角形分
割手段2に与えられるものであり、本実施例では頂点の
座標値の並びの最後尾に先頭の頂点の座標値を付加する
ようにしている。即ち、頂点A,B,C,Dを持つ多角
形については、(A,B,C,D,A)という形式で与
えられる。
図形を指定された通りの倍率に拡大したり或いは指定さ
れた向きに回転したりする手段であり、座標変換後の多
角形図形を多角形分割手段2に出力する。座標変換後の
多角形図形の情報はその頂点の座標値の並びで多角形分
割手段2に与えられるものであり、本実施例では頂点の
座標値の並びの最後尾に先頭の頂点の座標値を付加する
ようにしている。即ち、頂点A,B,C,Dを持つ多角
形については、(A,B,C,D,A)という形式で与
えられる。
【0018】多角形分割手段2は、複数の辺クリッピン
グ手段3−1〜3−3を所定の順序、例えば3−1,3
−2,3−3,3−1,…の順で順次に選択して、描画
対象となる二次元多角形図形を構成する辺の並び順に、
1辺ずつその辺の両端点の座標値を、選択した辺クリッ
ピング手段に出力する手段である。
グ手段3−1〜3−3を所定の順序、例えば3−1,3
−2,3−3,3−1,…の順で順次に選択して、描画
対象となる二次元多角形図形を構成する辺の並び順に、
1辺ずつその辺の両端点の座標値を、選択した辺クリッ
ピング手段に出力する手段である。
【0019】図2は多角形分割手段2の処理例を示すフ
ローチャートである。多角形分割手段2は、座標変換手
段1から描画対象となる多角形図形の頂点の座標値の並
びが入力されると、図2に示す処理を開始し、先ず、変
数i,jを1に初期化し(S1)、変数Xに第1番目の
頂点の座標値をセットし(S2)、変数iを+1して
(S3)、変数Yに第2番目の頂点の座標値をセットす
る(S5)。そして、変数X,Yにセットした座標値を
第1番目の辺クリッピング手段3−1に出力してクリッ
ピングを要求する(S6)。次に、変数Yにセットされ
た座標値を変数Xにセットし(S7)、変数jを+1す
る(S8)。但し、変数jが>3になった場合は1に戻
す。そして、変数iを+1して(S3)、変数Yに第3
番目の頂点の座標値をセットし(S5)、変数X,Yに
セットした座標値を第2番目の辺クリッピング手段3−
2に出力してクリッピングを要求する(S6)。以上の
ような動作をステップS4で最後の頂点まで処理し終え
たと判別するまで続け、最後の頂点まで処理し終える
と、第j番目の辺クリッピング手段にクリッピング終了
通知を出力し(S9)、図2の処理を終える。
ローチャートである。多角形分割手段2は、座標変換手
段1から描画対象となる多角形図形の頂点の座標値の並
びが入力されると、図2に示す処理を開始し、先ず、変
数i,jを1に初期化し(S1)、変数Xに第1番目の
頂点の座標値をセットし(S2)、変数iを+1して
(S3)、変数Yに第2番目の頂点の座標値をセットす
る(S5)。そして、変数X,Yにセットした座標値を
第1番目の辺クリッピング手段3−1に出力してクリッ
ピングを要求する(S6)。次に、変数Yにセットされ
た座標値を変数Xにセットし(S7)、変数jを+1す
る(S8)。但し、変数jが>3になった場合は1に戻
す。そして、変数iを+1して(S3)、変数Yに第3
番目の頂点の座標値をセットし(S5)、変数X,Yに
セットした座標値を第2番目の辺クリッピング手段3−
2に出力してクリッピングを要求する(S6)。以上の
ような動作をステップS4で最後の頂点まで処理し終え
たと判別するまで続け、最後の頂点まで処理し終える
と、第j番目の辺クリッピング手段にクリッピング終了
通知を出力し(S9)、図2の処理を終える。
【0020】再び図1を参照すると、辺クリッピング手
段3−1〜3−3は、多角形分割手段2から辺の両端点
の座標値を入力して、その辺のクリップ枠に対するクリ
ップ点を所定の規則に基づいて算出し、算出結果が得ら
れる毎にその結果を描画データ作成手段4に出力する手
段である。
段3−1〜3−3は、多角形分割手段2から辺の両端点
の座標値を入力して、その辺のクリップ枠に対するクリ
ップ点を所定の規則に基づいて算出し、算出結果が得ら
れる毎にその結果を描画データ作成手段4に出力する手
段である。
【0021】図3は辺クリッピング手段3−1〜3−3
の処理例を示すフローチャートである。辺クリッピング
手段3−1〜3−3は、多角形分割手段2からクリッピ
ング要求あるいはクリッピング終了通知が入力される毎
に図3に示す処理を開始する。先ず、クリッピング要求
が入力されたか、クリッピング終了通知が入力されたか
を判別し(S11)、クリッピング終了通知が入力され
た場合には、クリッピング終了通知を描画データ作成手
段4に出力し(S12)、図3の処理を終える。
の処理例を示すフローチャートである。辺クリッピング
手段3−1〜3−3は、多角形分割手段2からクリッピ
ング要求あるいはクリッピング終了通知が入力される毎
に図3に示す処理を開始する。先ず、クリッピング要求
が入力されたか、クリッピング終了通知が入力されたか
を判別し(S11)、クリッピング終了通知が入力され
た場合には、クリッピング終了通知を描画データ作成手
段4に出力し(S12)、図3の処理を終える。
【0022】他方、クリッピング要求が入力された場合
には、同要求で入力された2つの頂点の座標値で特定さ
れる辺αβのクリップ枠に対するクリップ点を所定の規
則に基づいて算出する(S13)。なお、クリップ枠の
情報は事前に与えられているものとする。また、所定の
規則については後述する。そして、ステップS13にお
いて、少なくとも1つのクリップ点を求めた場合には
(S14でYES)、求めた全てのクリップ点を描画デ
ータ作成手段4に出力し(S15)、図3の処理を終え
る。また、クリップ点が1つも算出されなかった場合に
は(S14でNO)、クリップ点なしの通知を描画デー
タ作成手段4に出力し(S16)、図3の処理を終え
る。
には、同要求で入力された2つの頂点の座標値で特定さ
れる辺αβのクリップ枠に対するクリップ点を所定の規
則に基づいて算出する(S13)。なお、クリップ枠の
情報は事前に与えられているものとする。また、所定の
規則については後述する。そして、ステップS13にお
いて、少なくとも1つのクリップ点を求めた場合には
(S14でYES)、求めた全てのクリップ点を描画デ
ータ作成手段4に出力し(S15)、図3の処理を終え
る。また、クリップ点が1つも算出されなかった場合に
は(S14でNO)、クリップ点なしの通知を描画デー
タ作成手段4に出力し(S16)、図3の処理を終え
る。
【0023】図3のステップS13の処理では、以下の
ような規則に基づいてクリップ点を算出する。
ような規則に基づいてクリップ点を算出する。
【0024】(1)辺の両端点がクリップ枠内に存在す
る場合、辺の両端点の座標値を辺の始点から順に並べた
2点をクリップ点とする。即ち、図4に示すような辺4
00の場合、その両端点α,βが共にクリップ枠W内に
存在するので、α,βの2点をクリップ点とする。
る場合、辺の両端点の座標値を辺の始点から順に並べた
2点をクリップ点とする。即ち、図4に示すような辺4
00の場合、その両端点α,βが共にクリップ枠W内に
存在するので、α,βの2点をクリップ点とする。
【0025】(2)辺の一方の端点のみがクリップ枠内
に存在する場合、クリップ枠内に存在する端点の座標値
と、辺とクリップ枠との交点の座標値と、更に辺がクリ
ップ枠の延長線とも交わるときにはその交点に最も近い
クリップ枠の角点の座標値とを、辺の始点に近い順に並
べた2点または3点をクリップ点とする。即ち、図5に
示すような辺500の場合は、α,aの2点をクリップ
点とする。また辺501の場合は、一点鎖線で示すクリ
ップ枠の延長線とも交わっているので、,b,βの3
点をクリップ点とする。なお、はクリップ枠Wの角点
(後述する〜も同様),a,bは辺500,501
とクリップ枠Wとの交点である。
に存在する場合、クリップ枠内に存在する端点の座標値
と、辺とクリップ枠との交点の座標値と、更に辺がクリ
ップ枠の延長線とも交わるときにはその交点に最も近い
クリップ枠の角点の座標値とを、辺の始点に近い順に並
べた2点または3点をクリップ点とする。即ち、図5に
示すような辺500の場合は、α,aの2点をクリップ
点とする。また辺501の場合は、一点鎖線で示すクリ
ップ枠の延長線とも交わっているので、,b,βの3
点をクリップ点とする。なお、はクリップ枠Wの角点
(後述する〜も同様),a,bは辺500,501
とクリップ枠Wとの交点である。
【0026】(3)−1 辺の両端点がクリップ枠外に
存在する場合で、辺がクリップ枠と1点または2点で交
わるときは、辺とクリップ枠との交点の座標値と、更に
辺がクリップ枠の延長線とも交わるときにはその交点に
最も近いクリップ枠の角点の座標値とを、辺の始点に近
い順に並べた1点,2点,3点または4点をクリップ点
とする。即ち、図6に示すような辺600の場合は、ク
リップ枠Wと1点で交わるので、クリップ枠Wの角点
の1点をクリップ点とし、辺601の場合は、クリップ
枠Wと2点a,bで交わるので、それらをクリップ点と
する。また、辺602の場合は、クリップ枠Wとの1
点で交わり、クリップ枠Wの延長線とc,dの2点で交
わるので、,,の3点をクリップ点とし、辺60
3の場合は、クリップ枠Wとi,jの2点で交わり、ク
リップ枠Wの延長線とkの1点で交わるので、i,j,
の3点をクリップ点とする。更に、辺604の場合
は、クリップ枠Wとf,gの2点で交わり、且つクリッ
プ枠Wの延長線とe,hの2点で交わるので、,f,
g,の4点をクリップ点とする。
存在する場合で、辺がクリップ枠と1点または2点で交
わるときは、辺とクリップ枠との交点の座標値と、更に
辺がクリップ枠の延長線とも交わるときにはその交点に
最も近いクリップ枠の角点の座標値とを、辺の始点に近
い順に並べた1点,2点,3点または4点をクリップ点
とする。即ち、図6に示すような辺600の場合は、ク
リップ枠Wと1点で交わるので、クリップ枠Wの角点
の1点をクリップ点とし、辺601の場合は、クリップ
枠Wと2点a,bで交わるので、それらをクリップ点と
する。また、辺602の場合は、クリップ枠Wとの1
点で交わり、クリップ枠Wの延長線とc,dの2点で交
わるので、,,の3点をクリップ点とし、辺60
3の場合は、クリップ枠Wとi,jの2点で交わり、ク
リップ枠Wの延長線とkの1点で交わるので、i,j,
の3点をクリップ点とする。更に、辺604の場合
は、クリップ枠Wとf,gの2点で交わり、且つクリッ
プ枠Wの延長線とe,hの2点で交わるので、,f,
g,の4点をクリップ点とする。
【0027】(3)−2 辺の両端点がクリップ枠外に
存在する場合で、辺がクリップ枠と交わらないときで、
クリップ枠の延長線とも交わらないときはクリップ点な
しの算出結果を出力し、クリップ枠の延長線と交わると
きは、その交点に最も近いクリップ枠の角点の座標値
を、辺の始点に近い順に並べた1点,2点または3点を
クリップ点とする。即ち、図7に示すような辺700の
場合にはクリップ点なしとする。また、クリップ枠Wの
延長線とaの1点で交わる辺701の場合はの1点
を、クリップ枠Wの交差する2本の延長線とb,cの2
点で交わる辺702の場合はの1点を、それぞれクリ
ップ点とする。更に、クリップ枠Wの平行な2本の延長
線とd,eの2点で交わる辺703の場合は,の2
点をクリップ点とする。また更に、クリップ枠Wの交差
する2本の延長線と他の1本の延長線とf,g,hの3
点で交わる辺704の場合は,の2点をクリップ点
とし、クリップ枠Wの4本の延長線とi,j,k,lの
4点で交わる辺705の場合は,,の3点をクリ
ップ点とする。
存在する場合で、辺がクリップ枠と交わらないときで、
クリップ枠の延長線とも交わらないときはクリップ点な
しの算出結果を出力し、クリップ枠の延長線と交わると
きは、その交点に最も近いクリップ枠の角点の座標値
を、辺の始点に近い順に並べた1点,2点または3点を
クリップ点とする。即ち、図7に示すような辺700の
場合にはクリップ点なしとする。また、クリップ枠Wの
延長線とaの1点で交わる辺701の場合はの1点
を、クリップ枠Wの交差する2本の延長線とb,cの2
点で交わる辺702の場合はの1点を、それぞれクリ
ップ点とする。更に、クリップ枠Wの平行な2本の延長
線とd,eの2点で交わる辺703の場合は,の2
点をクリップ点とする。また更に、クリップ枠Wの交差
する2本の延長線と他の1本の延長線とf,g,hの3
点で交わる辺704の場合は,の2点をクリップ点
とし、クリップ枠Wの4本の延長線とi,j,k,lの
4点で交わる辺705の場合は,,の3点をクリ
ップ点とする。
【0028】再び図1を参照すると、描画データ作成手
段4は、複数の辺クリッピング手段3−1〜3−3を多
角形分割手段2と同じ順序で順次に選択して、その選択
した辺クリッピング手段からクリップ点が入力される毎
に、それまで入力したクリップ点と今回入力されたクリ
ップ点とから、クリッピング後の多角形図形を構成する
辺を認識しつつ辺情報データを順次に作成する手段であ
る。
段4は、複数の辺クリッピング手段3−1〜3−3を多
角形分割手段2と同じ順序で順次に選択して、その選択
した辺クリッピング手段からクリップ点が入力される毎
に、それまで入力したクリップ点と今回入力されたクリ
ップ点とから、クリッピング後の多角形図形を構成する
辺を認識しつつ辺情報データを順次に作成する手段であ
る。
【0029】図8は描画データ作成手段4の処理例を示
すフローチャートである。この描画データ作成手段4は
多角形分割手段2の起動時にほぼ同時に起動されるもの
であり、起動されることにより図8に示す処理を実行す
る。先ず、変数jを1に初期化し(S21)、第1番目
の辺クリッピング手段3−1の出力を入力する(S2
2)。次に、この選択した第1番目の辺クリッピング手
段3−1の出力中のクリップ点から新しい辺を認識する
(S25)。そして、新しい辺を認識できた場合(S2
6でYES)、その新しい辺の辺情報データを作成して
保存し(S27)、新しい辺を認識できなかった場合は
(S26でNO)、ステップS27をスキップする。こ
こで、辺情報データとは、後段の描画処理手段5の描画
処理に必要となる情報であり、例えば、その辺の両端点
の座標値およびその辺の傾きである。そして、変数jを
+1して2とし(S28)、第2番目のクリッピング手
段3−2の出力を入力する(S22)。次に、この第2
番目の辺クリッピング出力3−2の出力中のクリップ点
と現在までのクリップ点とから新しい辺を認識し(S2
5)、新しい辺を認識できたら(S26でYES)、そ
の新しい辺の辺情報データを作成して保存する(S2
7)。そして、jを+1して(S28)、ステップS2
2へ戻る。
すフローチャートである。この描画データ作成手段4は
多角形分割手段2の起動時にほぼ同時に起動されるもの
であり、起動されることにより図8に示す処理を実行す
る。先ず、変数jを1に初期化し(S21)、第1番目
の辺クリッピング手段3−1の出力を入力する(S2
2)。次に、この選択した第1番目の辺クリッピング手
段3−1の出力中のクリップ点から新しい辺を認識する
(S25)。そして、新しい辺を認識できた場合(S2
6でYES)、その新しい辺の辺情報データを作成して
保存し(S27)、新しい辺を認識できなかった場合は
(S26でNO)、ステップS27をスキップする。こ
こで、辺情報データとは、後段の描画処理手段5の描画
処理に必要となる情報であり、例えば、その辺の両端点
の座標値およびその辺の傾きである。そして、変数jを
+1して2とし(S28)、第2番目のクリッピング手
段3−2の出力を入力する(S22)。次に、この第2
番目の辺クリッピング出力3−2の出力中のクリップ点
と現在までのクリップ点とから新しい辺を認識し(S2
5)、新しい辺を認識できたら(S26でYES)、そ
の新しい辺の辺情報データを作成して保存する(S2
7)。そして、jを+1して(S28)、ステップS2
2へ戻る。
【0030】以上のような動作を辺クリッピング手段3
−1〜3−3からクリップ点が出力される毎に繰り返
す。なお、選択した辺クリッピング手段からクリップ点
なしの通知を受けた場合(S24でYES)、ステップ
S25〜S27をスキップする。また、選択した辺クリ
ッピング手段からクリッピング終了通知を受けた場合
(S23でYES)、後述する退避クリップ点(この場
合、最後に認識した辺の終点)が第1番目に作成した辺
情報データ中の始点と同一か否かを調べ(S29)、同
一であれば、保存しておいた全ての辺情報データを描画
処理手段5に出力し(S2A)、図8の処理を終える。
他方、同一でなければ、退避クリップ点を始点とし、第
1番目に作成した辺情報データ中の始点を終点とする辺
の辺情報データを作成して保存する(S2B)。そし
て、ステップS2Aに進んで、保存しておいた全ての辺
情報データを描画処理手段5に出力し(S2A)、図8
の処理を終える。
−1〜3−3からクリップ点が出力される毎に繰り返
す。なお、選択した辺クリッピング手段からクリップ点
なしの通知を受けた場合(S24でYES)、ステップ
S25〜S27をスキップする。また、選択した辺クリ
ッピング手段からクリッピング終了通知を受けた場合
(S23でYES)、後述する退避クリップ点(この場
合、最後に認識した辺の終点)が第1番目に作成した辺
情報データ中の始点と同一か否かを調べ(S29)、同
一であれば、保存しておいた全ての辺情報データを描画
処理手段5に出力し(S2A)、図8の処理を終える。
他方、同一でなければ、退避クリップ点を始点とし、第
1番目に作成した辺情報データ中の始点を終点とする辺
の辺情報データを作成して保存する(S2B)。そし
て、ステップS2Aに進んで、保存しておいた全ての辺
情報データを描画処理手段5に出力し(S2A)、図8
の処理を終える。
【0031】図9は図8のステップS25の詳細を示す
フローチャートである。選択した辺クリッピング手段か
らクリップ点が出力された場合、先ず、その中の第1番
目のクリップ点の座標値を変数Aにセットする(S3
0)。次に、退避クリップ点Xが存在するか否かを判別
する(S31)。ここで、退避クリップ点Xは、未だ辺
に結び付かない端点あるいは直前に認識した辺の終点を
保存したもので、描画データ作成手段4の起動時にはク
リアされている。このステップS31で、退避クリップ
点Xが存在すると認識した場合は(S31でYES)、
今回の第1番目のクリップ点が退避クリップ点Xと同一
座標値であるか否かを調べ(S32)、同一座標値でな
ければ、退避クリップ点Xを始点とし、今回の第1番目
のクリップ点を終点とする辺XAを新しい辺として認識
する(S33)。そして、変数Aにセットされた座標値
を退避クリップ点Xにセットし(S34)、ステップS
35に進む。また、今回の第1番目のクリップ点が退避
クリップ点Xと同一座標値であれば(S32でYE
S)、ステップS33,S34をスキップしてステップ
S35に進む。更に、退避クリップ点Xが存在しない場
合(S31でYES)、ステップS32,S33をスキ
ップしてステップS34に進み、今回の第1番目のクリ
ップ点を退避クリップ点Xにセットし、ステップS35
に進む。ステップS35では、今回の入力中に次のクリ
ップ点があるか否かを調べ、あれば、そのクリップ点の
座標値を変数Aにセットし(S36)、ステップS31
に戻る。次のクリップ点がなければ(S35でNO)、
図9の処理を終える。
フローチャートである。選択した辺クリッピング手段か
らクリップ点が出力された場合、先ず、その中の第1番
目のクリップ点の座標値を変数Aにセットする(S3
0)。次に、退避クリップ点Xが存在するか否かを判別
する(S31)。ここで、退避クリップ点Xは、未だ辺
に結び付かない端点あるいは直前に認識した辺の終点を
保存したもので、描画データ作成手段4の起動時にはク
リアされている。このステップS31で、退避クリップ
点Xが存在すると認識した場合は(S31でYES)、
今回の第1番目のクリップ点が退避クリップ点Xと同一
座標値であるか否かを調べ(S32)、同一座標値でな
ければ、退避クリップ点Xを始点とし、今回の第1番目
のクリップ点を終点とする辺XAを新しい辺として認識
する(S33)。そして、変数Aにセットされた座標値
を退避クリップ点Xにセットし(S34)、ステップS
35に進む。また、今回の第1番目のクリップ点が退避
クリップ点Xと同一座標値であれば(S32でYE
S)、ステップS33,S34をスキップしてステップ
S35に進む。更に、退避クリップ点Xが存在しない場
合(S31でYES)、ステップS32,S33をスキ
ップしてステップS34に進み、今回の第1番目のクリ
ップ点を退避クリップ点Xにセットし、ステップS35
に進む。ステップS35では、今回の入力中に次のクリ
ップ点があるか否かを調べ、あれば、そのクリップ点の
座標値を変数Aにセットし(S36)、ステップS31
に戻る。次のクリップ点がなければ(S35でNO)、
図9の処理を終える。
【0032】再び図1を参照すると、描画処理手段5
は、描画データ作成手段4で作成された辺情報データに
基づき、クリッピング後の多角形図形を公知の台形分割
描画方式により表示手段6に描画する手段である。但
し、この描画処理手段5は、辺情報データを用いて描画
データを作成する際、辺のうち水平な辺を除き、更に台
形分割を行う際、even−oddで辺を組み合わせて
(例えば左から0番目と1番目の辺,2番目と3番目の
辺,…という組み合わせ)、垂直な辺どうしの組み合わ
せができた場合、その部分を描画処理から除外する。
は、描画データ作成手段4で作成された辺情報データに
基づき、クリッピング後の多角形図形を公知の台形分割
描画方式により表示手段6に描画する手段である。但
し、この描画処理手段5は、辺情報データを用いて描画
データを作成する際、辺のうち水平な辺を除き、更に台
形分割を行う際、even−oddで辺を組み合わせて
(例えば左から0番目と1番目の辺,2番目と3番目の
辺,…という組み合わせ)、垂直な辺どうしの組み合わ
せができた場合、その部分を描画処理から除外する。
【0033】次に、図10に示した頂点A,B,C,
D,E,F,Gを持つ多角形図形が座標変換手段1から
出力された場合を例にして、本実施例の動作を説明す
る。なお、この場合、座標変換手段1から多角形分割手
段2へは、(A,B,C,D,E,F,G,A)という
頂点の座標値の並びが与えられる。
D,E,F,Gを持つ多角形図形が座標変換手段1から
出力された場合を例にして、本実施例の動作を説明す
る。なお、この場合、座標変換手段1から多角形分割手
段2へは、(A,B,C,D,E,F,G,A)という
頂点の座標値の並びが与えられる。
【0034】多角形分割手段2は、図2の処理を実行す
ると、先ず最初に変数Xに頂点Aの座標値を、変数Yに
頂点Bの座標値をセットし(S2,S5)、頂点A,B
の2つの座標値を第1番目の辺クリッピング手段3−1
に出力してクリッピングを要求する(S6)。次に、変
数Xに変数Yを代入し(S7)、変数Yに頂点Cの座標
値をセットし(S5)、頂点B,Cの2つの座標値を第
2番目の辺クリッピング手段3−2に出力してクリッピ
ングを要求する(S6)。次に、変数Xに変数Yを代入
し(S7)、変数Yに頂点Dの座標値をセットし(S
5)、頂点C,Dの2つの座標値を第3番目の辺クリッ
ピング手段3−3に出力してクリッピングを要求する
(S6)。次に、変数Xに変数Yを代入し(S7)、変
数Yに頂点Eの座標値をセットし(S5)、頂点D,E
の2つの座標値を再び第1番目の辺クリッピング手段3
−1に出力してクリッピングを要求する(S6)。以
下、同様に、頂点E,Fの2つの座標値を第2番目の辺
クリッピング手段3−2に、頂点F,Gの2つの座標値
を第3番目の辺クリッピング手段3−3に、頂点G,A
の2つの座標値を第1番目の辺クリッピング手段3−1
に、それぞれ出力し、最後に、クリッピング終了通知を
第2番目の辺クリッピング手段3−2に出力して、図2
の処理を終える。
ると、先ず最初に変数Xに頂点Aの座標値を、変数Yに
頂点Bの座標値をセットし(S2,S5)、頂点A,B
の2つの座標値を第1番目の辺クリッピング手段3−1
に出力してクリッピングを要求する(S6)。次に、変
数Xに変数Yを代入し(S7)、変数Yに頂点Cの座標
値をセットし(S5)、頂点B,Cの2つの座標値を第
2番目の辺クリッピング手段3−2に出力してクリッピ
ングを要求する(S6)。次に、変数Xに変数Yを代入
し(S7)、変数Yに頂点Dの座標値をセットし(S
5)、頂点C,Dの2つの座標値を第3番目の辺クリッ
ピング手段3−3に出力してクリッピングを要求する
(S6)。次に、変数Xに変数Yを代入し(S7)、変
数Yに頂点Eの座標値をセットし(S5)、頂点D,E
の2つの座標値を再び第1番目の辺クリッピング手段3
−1に出力してクリッピングを要求する(S6)。以
下、同様に、頂点E,Fの2つの座標値を第2番目の辺
クリッピング手段3−2に、頂点F,Gの2つの座標値
を第3番目の辺クリッピング手段3−3に、頂点G,A
の2つの座標値を第1番目の辺クリッピング手段3−1
に、それぞれ出力し、最後に、クリッピング終了通知を
第2番目の辺クリッピング手段3−2に出力して、図2
の処理を終える。
【0035】従って、第1番目の辺クリッピング手段3
−1には、先ず、頂点A,Bの座標値が入力されてクリ
ッピングが要求され、次に頂点D,Eの座標値が入力さ
れてクリッピングが要求され、次に頂点G,Aの座標値
が入力されてクリッピングが要求される。また、第2番
目の辺クリッピング手段3−2には、先ず、頂点B,C
の座標値が入力されてクリッピングが要求され、次に頂
点E,Fの座標値が入力されてクリッピングが要求さ
れ、次にクリッピング終了通知が入力される。更に、第
3番目の辺クリッピング手段3−3には、先ず、頂点
C,Dの座標値が入力されてクリッピングが要求され、
次に頂点F,Gの座標値が入力されてクリッピングが要
求される。
−1には、先ず、頂点A,Bの座標値が入力されてクリ
ッピングが要求され、次に頂点D,Eの座標値が入力さ
れてクリッピングが要求され、次に頂点G,Aの座標値
が入力されてクリッピングが要求される。また、第2番
目の辺クリッピング手段3−2には、先ず、頂点B,C
の座標値が入力されてクリッピングが要求され、次に頂
点E,Fの座標値が入力されてクリッピングが要求さ
れ、次にクリッピング終了通知が入力される。更に、第
3番目の辺クリッピング手段3−3には、先ず、頂点
C,Dの座標値が入力されてクリッピングが要求され、
次に頂点F,Gの座標値が入力されてクリッピングが要
求される。
【0036】第1番目の辺クリッピング手段3−1は頂
点A,Bの座標値が入力されてクリッピングが要求され
ることにより図3に示す処理を開始し、辺ABは図5の
辺500の場合に相当するので、辺ABとクリップ枠W
との交点aと頂点Bとをその順に並べた2つのクリップ
点を描画データ作成手段4に出力する。次に、頂点D,
Eの座標値が入力されてクリッピングが要求された場合
には、辺DEは図7の辺702に相当するので、辺クリ
ップ枠Wの角点の1点をクリップ点として描画データ
作成手段4に出力し、次に頂点G,Aの座標値が入力さ
れてクリッピングが要求された場合には、辺GAは図7
の辺700に相当するので、クリップ点なしを描画デー
タ作成手段4に出力する。
点A,Bの座標値が入力されてクリッピングが要求され
ることにより図3に示す処理を開始し、辺ABは図5の
辺500の場合に相当するので、辺ABとクリップ枠W
との交点aと頂点Bとをその順に並べた2つのクリップ
点を描画データ作成手段4に出力する。次に、頂点D,
Eの座標値が入力されてクリッピングが要求された場合
には、辺DEは図7の辺702に相当するので、辺クリ
ップ枠Wの角点の1点をクリップ点として描画データ
作成手段4に出力し、次に頂点G,Aの座標値が入力さ
れてクリッピングが要求された場合には、辺GAは図7
の辺700に相当するので、クリップ点なしを描画デー
タ作成手段4に出力する。
【0037】また、第2番目の辺クリッピング手段3−
2は頂点B,Cの座標値が入力されてクリッピングが要
求されることにより図3に示す処理を開始し、辺BCは
図4の辺400の場合に相当するので、B,Cをその順
に並べた2つのクリップ点を描画データ作成手段4に出
力する。次に、頂点E,Fの座標値が入力されてクリッ
ピングが要求された場合には、辺EFは図7の辺701
に相当するので、クリップ枠Wの角点の1点をクリッ
プ点として描画データ作成手段4に出力し、次にクリッ
ピング終了通知が入力されると、描画データ作成手段4
にクリッピング終了を通知する。
2は頂点B,Cの座標値が入力されてクリッピングが要
求されることにより図3に示す処理を開始し、辺BCは
図4の辺400の場合に相当するので、B,Cをその順
に並べた2つのクリップ点を描画データ作成手段4に出
力する。次に、頂点E,Fの座標値が入力されてクリッ
ピングが要求された場合には、辺EFは図7の辺701
に相当するので、クリップ枠Wの角点の1点をクリッ
プ点として描画データ作成手段4に出力し、次にクリッ
ピング終了通知が入力されると、描画データ作成手段4
にクリッピング終了を通知する。
【0038】更に、第3番目の辺クリッピング手段3−
3は頂点C,Dのの座標値が入力されてクリッピングが
要求されることにより図3に示す処理を開始し、辺CD
は図5の辺500に相当するので、頂点Cと辺CDとク
リップ枠Wとの交点bとをその順に並べた2つのクリッ
プ点を描画データ作成手段4に出力する。次に、頂点
F,Gの座標値が入力されてクリッピングが要求された
場合には、辺FGは図7の辺704に相当するので、ク
リップ枠Wの2つの角点,をその順に並べたクリッ
プ点を描画データ作成手段4に出力する。
3は頂点C,Dのの座標値が入力されてクリッピングが
要求されることにより図3に示す処理を開始し、辺CD
は図5の辺500に相当するので、頂点Cと辺CDとク
リップ枠Wとの交点bとをその順に並べた2つのクリッ
プ点を描画データ作成手段4に出力する。次に、頂点
F,Gの座標値が入力されてクリッピングが要求された
場合には、辺FGは図7の辺704に相当するので、ク
リップ枠Wの2つの角点,をその順に並べたクリッ
プ点を描画データ作成手段4に出力する。
【0039】他方、描画データ作成手段4は、図8に示
す処理の実行を開始すると、先ず、第1番目の辺クリッ
ピング手段3−1から最初に出力されたクリップ点a,
Bを入力し(S22)、ステップS25すなわち図9の
処理を実行する。先ず、入力中の第1番目のクリップ点
aを変数Aにセットし(S30)、退避クリップ点Xは
この時点では存在しないので(S31でYES)、退避
クリップ点Xにクリップ点aをセットし(S34)、次
のクリップ点Bを変数Aにセットする(S36)。次に
退避クリップ点X(a)が存在し(S31でNO)、且
つ、クリップ点Bと相違するので、クリップ点aを始点
とし、クリップ点Bを終点とする辺aBを新しい辺とし
て認識する(S33)。そして、退避クリップ点Xにク
リップ点Bをセットし(S34)、次のクリップ点が存
在しないので図9の処理を終え、図8のステップS26
へ進む。ステップS26では、新しい辺aBが認識され
たことを判別し、辺aBの辺情報データを作成して保存
する(S27)。そして、変数jを+1して2とし、ス
テップS22に戻る。
す処理の実行を開始すると、先ず、第1番目の辺クリッ
ピング手段3−1から最初に出力されたクリップ点a,
Bを入力し(S22)、ステップS25すなわち図9の
処理を実行する。先ず、入力中の第1番目のクリップ点
aを変数Aにセットし(S30)、退避クリップ点Xは
この時点では存在しないので(S31でYES)、退避
クリップ点Xにクリップ点aをセットし(S34)、次
のクリップ点Bを変数Aにセットする(S36)。次に
退避クリップ点X(a)が存在し(S31でNO)、且
つ、クリップ点Bと相違するので、クリップ点aを始点
とし、クリップ点Bを終点とする辺aBを新しい辺とし
て認識する(S33)。そして、退避クリップ点Xにク
リップ点Bをセットし(S34)、次のクリップ点が存
在しないので図9の処理を終え、図8のステップS26
へ進む。ステップS26では、新しい辺aBが認識され
たことを判別し、辺aBの辺情報データを作成して保存
する(S27)。そして、変数jを+1して2とし、ス
テップS22に戻る。
【0040】描画データ作成手段4は、次に第2番目の
辺クリッピング手段3−2から最初に出力されたクリッ
プ点B,Cを入力し(S22)、図9の処理を実行す
る。先ず、入力中の第1番目のクリップ点Bを変数Aに
セットし(S30)、退避クリップ点Xにはクリップ点
Bがセットされており、今回のクリップ点Bと一致する
ので(S32でYES)、次のクリップ点Cを変数Aに
セットする(S36)。そして、このクリップ点Cは退
避クリップ点X(=B)と相違するので(S32でN
O)、クリップ点Bを始点とし、クリップ点Cを終点と
する辺BCを新しい辺として認識する(S33)。そし
て、退避クリップ点Xにクリップ点Cをセットし(S3
4)、次のクリップ点が存在しないので図9の処理を終
え、図8のステップS27へ進み、辺BCの辺情報デー
タを作成して保存する。そして、変数jを+1して2と
して、ステップS22に戻る。
辺クリッピング手段3−2から最初に出力されたクリッ
プ点B,Cを入力し(S22)、図9の処理を実行す
る。先ず、入力中の第1番目のクリップ点Bを変数Aに
セットし(S30)、退避クリップ点Xにはクリップ点
Bがセットされており、今回のクリップ点Bと一致する
ので(S32でYES)、次のクリップ点Cを変数Aに
セットする(S36)。そして、このクリップ点Cは退
避クリップ点X(=B)と相違するので(S32でN
O)、クリップ点Bを始点とし、クリップ点Cを終点と
する辺BCを新しい辺として認識する(S33)。そし
て、退避クリップ点Xにクリップ点Cをセットし(S3
4)、次のクリップ点が存在しないので図9の処理を終
え、図8のステップS27へ進み、辺BCの辺情報デー
タを作成して保存する。そして、変数jを+1して2と
して、ステップS22に戻る。
【0041】次に描画データ作成手段4は、第3番目の
辺クリッピング手段3−3から最初に出力されたクリッ
ピング点C,bを入力し(S22)、図9の処理を実行
する。先ず、入力中の第1番目のクリップ点Cを変数A
にセットし(S30)、退避クリップ点Xにはクリップ
点Cがセットされており、今回のクリップ点Cと一致す
るので(S32でYES)、次のクリップ点bを変数A
にセットする(S36)。そして、このクリップ点bは
退避クリップ点X(=C)と相違するので(S32でN
O)、クリップ点Cを始点とし、クリップ点bを終点と
する辺Cbを新しい辺として認識し(S33)、退避ク
リップ点Xにクリップ点bをセットして(S34)、辺
Cbの辺情報データを作成して保存する(S27)。そ
して、変数jを+1して再び1とし、ステップS22に
戻る。
辺クリッピング手段3−3から最初に出力されたクリッ
ピング点C,bを入力し(S22)、図9の処理を実行
する。先ず、入力中の第1番目のクリップ点Cを変数A
にセットし(S30)、退避クリップ点Xにはクリップ
点Cがセットされており、今回のクリップ点Cと一致す
るので(S32でYES)、次のクリップ点bを変数A
にセットする(S36)。そして、このクリップ点bは
退避クリップ点X(=C)と相違するので(S32でN
O)、クリップ点Cを始点とし、クリップ点bを終点と
する辺Cbを新しい辺として認識し(S33)、退避ク
リップ点Xにクリップ点bをセットして(S34)、辺
Cbの辺情報データを作成して保存する(S27)。そ
して、変数jを+1して再び1とし、ステップS22に
戻る。
【0042】従って、次には再び第1番目の辺クリッピ
ング手段3−1から出力が取り出される。この場合、辺
クリッピング手段3−1から出力される次の出力は、ク
リップ点なので、それを変数Aにセットし(S3
0)、退避クリップ点Xにセットされたクリップ点bと
から、クリップ点bを始点として、クリップ点を終点
とする辺bを認識し(S33)、退避クリップ点Xに
クリップ点をセットし、辺bの辺情報データを作成
して保存する(S27)。そして、変数jを+1して2
とし、ステップS22に戻る。
ング手段3−1から出力が取り出される。この場合、辺
クリッピング手段3−1から出力される次の出力は、ク
リップ点なので、それを変数Aにセットし(S3
0)、退避クリップ点Xにセットされたクリップ点bと
から、クリップ点bを始点として、クリップ点を終点
とする辺bを認識し(S33)、退避クリップ点Xに
クリップ点をセットし、辺bの辺情報データを作成
して保存する(S27)。そして、変数jを+1して2
とし、ステップS22に戻る。
【0043】次に描画データ作成手段4は、第2番目の
辺クリッピング手段3−2から出力を取り出す。その出
力はクリップ点なので、退避クリップ点Xにセットさ
れているクリップ点を始点とし、今回のクリップ点
を終点とする辺を認識し(S33)、退避クリップ
点Xにクリップ点をセットし、辺の辺情報データ
を作成して保存する(S27)。そして、変数jを+1
して3とし、ステップS22に戻る。
辺クリッピング手段3−2から出力を取り出す。その出
力はクリップ点なので、退避クリップ点Xにセットさ
れているクリップ点を始点とし、今回のクリップ点
を終点とする辺を認識し(S33)、退避クリップ
点Xにクリップ点をセットし、辺の辺情報データ
を作成して保存する(S27)。そして、変数jを+1
して3とし、ステップS22に戻る。
【0044】描画データ作成手段4は、次に第3番目の
辺クリッピング手段3−3から出力を取り出す。その出
力はクリップ点,であるが、第1番目のクリップ点
は退避クリップ点にセットされているクリップ点と
一致するので、次のクリップ点と退避クリップ点と
に基づいて新らしい辺を認識し(S33)、退避ク
リップ点Xにクリップ点をセットし、辺の辺情報
データを作成して保存する(S27)。そして、変数j
を+1して再び1とし(S28)、ステップS22に戻
る。
辺クリッピング手段3−3から出力を取り出す。その出
力はクリップ点,であるが、第1番目のクリップ点
は退避クリップ点にセットされているクリップ点と
一致するので、次のクリップ点と退避クリップ点と
に基づいて新らしい辺を認識し(S33)、退避ク
リップ点Xにクリップ点をセットし、辺の辺情報
データを作成して保存する(S27)。そして、変数j
を+1して再び1とし(S28)、ステップS22に戻
る。
【0045】次に描画データ作成手段4は、再び第1番
目の辺クリッピング手段3−1から出力を取り出す。そ
の出力はクリップ点なしの通知なので、ステップS24
からステップS28に進み、jを+1して2とし、ステ
ップS22に戻る。
目の辺クリッピング手段3−1から出力を取り出す。そ
の出力はクリップ点なしの通知なので、ステップS24
からステップS28に進み、jを+1して2とし、ステ
ップS22に戻る。
【0046】次に描画データ作成手段4は、第2番目の
辺クリッピング手段3−2から出力を取り出す。その出
力はクリッピング終了通知なので、退避クリップ点Xが
第1番目に作成した辺情報データ中の始点と同一か否か
を調べる(S29)。今の場合、退避クリップ点Xは
であり、第1番目に作成した辺情報データ中の始点はa
なので、両者は相違する。従って、を始点とし、aを
終点とする辺の辺情報データを作成して保存する(S2
B)。そして、ステップS2Aに進んで、保存しておい
た全ての辺情報データ、即ち、辺aB,辺BC,辺C
b,辺b,辺,辺,辺aの辺情報データを
描画処理手段5に出力する(S2A)。
辺クリッピング手段3−2から出力を取り出す。その出
力はクリッピング終了通知なので、退避クリップ点Xが
第1番目に作成した辺情報データ中の始点と同一か否か
を調べる(S29)。今の場合、退避クリップ点Xは
であり、第1番目に作成した辺情報データ中の始点はa
なので、両者は相違する。従って、を始点とし、aを
終点とする辺の辺情報データを作成して保存する(S2
B)。そして、ステップS2Aに進んで、保存しておい
た全ての辺情報データ、即ち、辺aB,辺BC,辺C
b,辺b,辺,辺,辺aの辺情報データを
描画処理手段5に出力する(S2A)。
【0047】描画処理手段5は、これらの辺情報データ
を用い、図11に示すような台形分割描画方式でクリッ
ピング後の多角形図形を表示手段6に表示する。
を用い、図11に示すような台形分割描画方式でクリッ
ピング後の多角形図形を表示手段6に表示する。
【0048】ところで、図12(a)に示すようなA,
B,C,Dの頂点を持つ多角形図形がクリップ枠Wに対
して同図に示すような関係にあり、多角形分割手段2に
対して(A,B,C,D,A)という頂点の座標値の並
びが与えられた場合、 辺ABに対するクリップ点;, 辺BCに対するクリップ点;, 辺CDに対するクリップ点;,a,D 辺DAに対するクリップ点;D,b, が辺クリッピング手段3−1〜3−3で求められ、描画
データ作成手段4では、辺,辺,辺,辺
a,辺aD,辺Db,辺bを認識して、辺情報データ
を作成する。この結果、−bの部分と−aの部分が
誤って認識されることになる。このため、描画処理手段
5は、前述したように、辺情報データを用いて描画デー
タを作成する際、辺のうちの水平な辺を除き、更に台形
分割を行う際、even−oddで辺を組み合わせて垂
直な辺どうしの組み合わせができた場合、その部分を描
画処理から除外する。このような台形分割描画方式によ
れば、図12(a)において、先ず辺は水平辺なの
で除かれる。また、辺b,辺の−b間と、辺
a,辺の−a間とは、垂直な辺どうしの組み合わ
せなので台形とみなさず、描画データの作成を行わな
い。そして、残りの部分について台形分割を行う。これ
により、図12(b)に示すようにクリッピング後の多
角形図形を正確に描画することができる。
B,C,Dの頂点を持つ多角形図形がクリップ枠Wに対
して同図に示すような関係にあり、多角形分割手段2に
対して(A,B,C,D,A)という頂点の座標値の並
びが与えられた場合、 辺ABに対するクリップ点;, 辺BCに対するクリップ点;, 辺CDに対するクリップ点;,a,D 辺DAに対するクリップ点;D,b, が辺クリッピング手段3−1〜3−3で求められ、描画
データ作成手段4では、辺,辺,辺,辺
a,辺aD,辺Db,辺bを認識して、辺情報データ
を作成する。この結果、−bの部分と−aの部分が
誤って認識されることになる。このため、描画処理手段
5は、前述したように、辺情報データを用いて描画デー
タを作成する際、辺のうちの水平な辺を除き、更に台形
分割を行う際、even−oddで辺を組み合わせて垂
直な辺どうしの組み合わせができた場合、その部分を描
画処理から除外する。このような台形分割描画方式によ
れば、図12(a)において、先ず辺は水平辺なの
で除かれる。また、辺b,辺の−b間と、辺
a,辺の−a間とは、垂直な辺どうしの組み合わ
せなので台形とみなさず、描画データの作成を行わな
い。そして、残りの部分について台形分割を行う。これ
により、図12(b)に示すようにクリッピング後の多
角形図形を正確に描画することができる。
【0049】
【0050】
【0051】
【0052】
【0053】
【0054】
【0055】
【0056】以上、本発明について実施例を挙げて説明
したが、本発明は以上の実施例にのみ限定されず、その
他各種の付加変更が可能である。例えば、以下のように
することもできる。
したが、本発明は以上の実施例にのみ限定されず、その
他各種の付加変更が可能である。例えば、以下のように
することもできる。
【0057】図1の実施例においては、図8のステップ
S2Aに示したように描画データ作成手段4は辺情報デ
ータを描画処理手段5に渡して描画を要求したが、描画
データ作成手段4と描画処理手段5との間に両手段で共
有される描画データ保持用のメモリを設け、描画データ
作成手段4は作成した描画データをメモリに格納し、処
理終了時に、処理を描画処理手段5に移すように構成す
る。
S2Aに示したように描画データ作成手段4は辺情報デ
ータを描画処理手段5に渡して描画を要求したが、描画
データ作成手段4と描画処理手段5との間に両手段で共
有される描画データ保持用のメモリを設け、描画データ
作成手段4は作成した描画データをメモリに格納し、処
理終了時に、処理を描画処理手段5に移すように構成す
る。
【0058】描画データ作成手段4は、作成した辺情報
データから更に台形分割等を行ってスキャンライン毎の
線描画のデータ作成まで行い、描画処理手段5ではその
線描画のみを行う。
データから更に台形分割等を行ってスキャンライン毎の
線描画のデータ作成まで行い、描画処理手段5ではその
線描画のみを行う。
【0059】
【発明の効果】以上説明した本発明の多角形図形のクリ
ッピング描画方式によれば、以下のような効果を得るこ
とができる。
ッピング描画方式によれば、以下のような効果を得るこ
とができる。
【0060】多角形図形のクリッピングを多角形単位で
はなく辺単位で行うので、従来のようにクリップ枠の境
界毎に多角形のクリッピングを行った結果である中間多
角形を格納する必要がなくなり、その格納領域が不要に
なる。これは頂点数の多い多角形ほどその効果が著し
い。
はなく辺単位で行うので、従来のようにクリップ枠の境
界毎に多角形のクリッピングを行った結果である中間多
角形を格納する必要がなくなり、その格納領域が不要に
なる。これは頂点数の多い多角形ほどその効果が著し
い。
【0061】多角形図形のクリッピングを多角形単位で
なく辺単位で行ったことにより、辺情報データの作成を
多角形全体のクリッピングの終了を待たずに進めること
ができ、描画処理の高速化が可能となる。
なく辺単位で行ったことにより、辺情報データの作成を
多角形全体のクリッピングの終了を待たずに進めること
ができ、描画処理の高速化が可能となる。
【0062】複数の辺クリッピング手段で並行して処理
を進める構成によれば、描画処理速度をより一層高める
ことができる。
を進める構成によれば、描画処理速度をより一層高める
ことができる。
【図1】本発明の一実施例のブロック図である。
【図2】多角形分割手段の処理例を示すフローチャート
である。
である。
【図3】図1の辺クリッピング手段の処理例を示すフロ
ーチャートである。
ーチャートである。
【図4】辺クリッピング処理の説明図である。
【図5】辺クリッピング処理の説明図である。
【図6】辺クリッピング処理の説明図である。
【図7】辺クリッピング処理の説明図である。
【図8】図1の描画データ作成手段の処理例を示すフロ
ーチャートである。
ーチャートである。
【図9】図8のステップS25の詳細を示すフローチャ
ートである。
ートである。
【図10】描画対象となる二次元多角形図形とクリップ
枠とを示す図である。
枠とを示す図である。
【図11】クリッピング後の二次元多角形図形の描画状
態を示す図である。
態を示す図である。
【図12】描画処理手段の動作説明図である。
【図13】従来のクリッピング処理の説明図である。
1…座標変換手段 2…多角形分割手段 3−1〜3−3,7…辺クリッピング手段 4,8…描画データ作成手段 5…描画処理手段 6…表示手段
Claims (1)
- 【請求項1】 描画対象の二次元多角形図形のうちクリ
ップ枠内に存在する部分のみを表示装置に表示する多角
形図形のクリッピング描画方式において、辺の両端点の座標値を入力して、その辺のクリップ枠に
対するクリップ点を以下の(1)〜(3)の規則に基づ
いて算出し、算出結果が得られる毎にその結果を出力す
る複数の辺クリッピング手段と、 (1)辺の両端点がクリップ枠内に存在する場合、辺の
両端点の座標値を辺の始点から順に並べた2点をクリッ
プ点とする。 (2)辺の一方の端点のみがクリップ枠内に存在する場
合、クリップ枠内に存在する端点の座標値と、辺とクリ
ップ枠との交点の座標値と、更に辺がクリップ枠の延長
線とも交わるときにはその交点に最も近いクリップ枠の
角点の座標値とを、辺の始点に近い順に並べた2点また
は3点をクリップ点とする。 (3)辺の両端点がクリップ枠外に存在する場合で、 辺がクリップ枠と1点または2点で交わるときは、辺
とクリップ枠との交点の座標値と、更に辺がクリップ枠
の延長線とも交わるときにはその交点に最も近いクリッ
プ枠の角点の座標値とを、辺の始点に近い順に並べた1
点,2点,3点または4点をクリップ点とする。辺が
クリップ枠と交わらないときで、クリップ枠の延長線と
も交わらないときはクリップ点無しの算出結果を出力
し、クリップ枠の延長線と交わるときは、その交点に最
も近いクリップ枠の角点の座標値を、辺の始点に近い順
に並べた1点,2点または3点をクリップ点とする。 前
記複数の辺クリッピング手段を所定の順序で順次に選択
して、描画対象となる二次元多角形図形を構成する辺の
並び順に、1辺ずつその辺の両端点の座標値を前記選択
した辺クリッピング手段に出力する多角形分割手段と、 前記複数の辺クリッピング手段を所定の順序で順次に選
択して、該選択した 辺クリッピング手段からクリップ点
が入力される毎に、それまで入力したクリップ点と今回
入力されたクリップ点とから、クリッピング後の多角形
図形を構成する辺を認識しつつ辺情報データを順次に作
成する描画データ作成手段と、 該描画データ作成手段で作成された辺情報データに基づ
き、クリッピング後の多角形図形を前記表示装置に描画
する描画処理手段とを備えることを特徴とする多角形図
形のクリッピング描画方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6110420A JP3028029B2 (ja) | 1994-04-26 | 1994-04-26 | 多角形図形のクリッピング描画方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6110420A JP3028029B2 (ja) | 1994-04-26 | 1994-04-26 | 多角形図形のクリッピング描画方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07296172A JPH07296172A (ja) | 1995-11-10 |
JP3028029B2 true JP3028029B2 (ja) | 2000-04-04 |
Family
ID=14535319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6110420A Expired - Lifetime JP3028029B2 (ja) | 1994-04-26 | 1994-04-26 | 多角形図形のクリッピング描画方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3028029B2 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62209675A (ja) * | 1986-03-11 | 1987-09-14 | Canon Inc | 画像認識装置 |
-
1994
- 1994-04-26 JP JP6110420A patent/JP3028029B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH07296172A (ja) | 1995-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5808616A (en) | Shape modeling method and apparatus utilizing ordered parts lists for designating a part to be edited in a view | |
US6741243B2 (en) | Method and system for reducing overflows in a computer graphics system | |
JPH0325792B2 (ja) | ||
JP2002133428A (ja) | 描画処理装置 | |
JP3028029B2 (ja) | 多角形図形のクリッピング描画方式 | |
US5563995A (en) | Method and system for directly drawing a convex polygon having a given number of vertices with high speed | |
JPH04328956A (ja) | 画像デ−タの読出し方法 | |
JP2002208028A (ja) | 多角形のジオメトリクリッピング装置 | |
JP2643617B2 (ja) | 建築図等における壁または梁の作図方法およびその装置 | |
JP2856243B2 (ja) | 市松模様自動作成装置および方法 | |
KR20200055212A (ko) | 수치지도의 효율적인 편집을 위한 lisp 방식의 편집 방법과 편집장치 | |
JP2616557B2 (ja) | 図形近似方法およびその装置 | |
JP3080080B2 (ja) | 画像連接システム、および画像連接プログラムを記録した記録媒体 | |
JPH05103887A (ja) | 刺繍データ処理装置 | |
JPH08255010A (ja) | プログラミング装置におけるコメント表示装置 | |
JP2965021B2 (ja) | 塗り込み処理方式、塗り込み処理方法および塗り込み処理プログラムを記録した記録媒体 | |
JPH0816809A (ja) | 作図方式 | |
JP3355660B2 (ja) | プログラム変換方法 | |
JPH10143676A (ja) | 画像処理装置、画像処理方法、および記録媒体 | |
JPH0554148A (ja) | 多角形クリツピング方式 | |
JPH02257368A (ja) | 図形処理装置 | |
JPH0816624A (ja) | Cad装置における図面データの修正処理方法及びcad装置 | |
JPH08138027A (ja) | 画像表示生成装置 | |
JPH0227483A (ja) | 画像編集装置 | |
JPH07320089A (ja) | 図形の隠線化編集システム |