JPH0679341B2 - 図形情報処理装置におけるベクトルクリッピング方法 - Google Patents

図形情報処理装置におけるベクトルクリッピング方法

Info

Publication number
JPH0679341B2
JPH0679341B2 JP60169534A JP16953485A JPH0679341B2 JP H0679341 B2 JPH0679341 B2 JP H0679341B2 JP 60169534 A JP60169534 A JP 60169534A JP 16953485 A JP16953485 A JP 16953485A JP H0679341 B2 JPH0679341 B2 JP H0679341B2
Authority
JP
Japan
Prior art keywords
value
line segment
coordinate
coordinate axis
midpoint
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
Application number
JP60169534A
Other languages
English (en)
Other versions
JPS6231481A (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.)
Mutoh Industries Ltd
Original Assignee
Mutoh Industries Ltd
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 Mutoh Industries Ltd filed Critical Mutoh Industries Ltd
Priority to JP60169534A priority Critical patent/JPH0679341B2/ja
Publication of JPS6231481A publication Critical patent/JPS6231481A/ja
Publication of JPH0679341B2 publication Critical patent/JPH0679341B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • Digital Computer Display Output (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はグリフィックディスプレイ装置等の図形情報処
理装置において、線分の始終点データに基づき、この線
分のウインドウとの境界点の座標値を得るためのベクト
ルクリッピング方法に関する。
〔従来の技術〕
従来の図形情報処理装置では、2次元あるいは3次元空
間におけるスクリーン上の直線のクリッピング方式とし
て中点分割法が公知である。該中点分割法においては、
第6図に示す、ウインドウ2と直線4との交点PBの座標
値xb,ybを次のような方法で求めている。
この場合、直線4の始点p1と、終点P2のx,y座標値は既
知で、点PBのXかY座標のどちらかが既知である。第6
図の場合は、X座標値xbが既知であるため、図7のフロ
ーチャートでは始点PBのX座標xbが既知であるとしてい
る。
まず、コンピュータは、直線4の中点PCのxy座標値x0,y
0を次の(1)(2)式で演算する。
x0=(x1+x2)÷2 ……(1)式 y0=(y1+y2)÷2 ……(2)式 更に上記x0から前記中点PCと点PBとの間のX座標軸上の
距離BBを演算する。
BB=x0−xb 次に、x1>x2を判断し、YESであればBBにマイナス1を
かける。第6図の場合は、x1<x2なので、BBはその正負
の付号が反転されない。BBが図示するようにプラスであ
れば x2=x0 y2=y0 として、このx2,y2を、上記(1)(2)式に代入し
て、線分P1,P2の中点PC′を求め、この中点PC′とクリ
ップ点PBとのX座標軸上の距離BBを求める。これは、前
に求めた中点をクリップ点を含む線分の端部とすること
であり、この端部とクリップ点を含む線分の他端とを結
ぶ線分の中点を次に求める。また、BBがマイナスであれ
ば、x1=x0,y1=y0として、このx1,y1を上記(1)
(2)式に代入して、前に求めた。中点をクリップ点を
含む線分の端部として、該端部とクリップ点を含む線分
の他端とを結ぶ線分の中点を求める。上記の計算をくり
返し行うことによりBB=0となったときのx0,y0が求め
るクリップ点のxy座標値である。
〔発明が解決しようとする問題点〕
整数計算によって前記中点分割法を用いてクリップ点を
求める場合、第3図のようにdy/dx>1のような直線に
対しては、dxが小さいため中点をくり返し求めてゆく
と、精度が悪くなってしまう。本発明は、このような欠
点を除去することを目的とするものである。
〔問題点を解決する手段〕
上記目的を達成するため、本発明は特許請求の範囲に記
載のごとき各ステップで構成したものである。
〔実施例〕
以下に本発明の構成を添付図面に示す実施例を参照して
説明する。
第3図に示す線分l上の任意の一点(クリップ点PB)の
Y座標値ybを求める場合について説明する。
マイクロコンピュータのCPU6には被計算値として線分l
の始点座標P1(x1,y1)、終点座標P2(x2,y2)及びクリ
ップ点のX座標xbを、記憶回路8,10,12,14,16に入力す
る。求めるのはクリップ点PBのY座標ybである。
記憶回路8,10から比較回路18にx1,x2が入力され、ここ
で、x1とx2が比較される(ステップ1)。x1<x2の場合
は、x1のデータは、データ選択回路20を経て、x1記憶回
路22に入力され、x2は、データ選択回路24を経てx2記憶
回路26に入力される。一方、y1は、記憶回路12からデー
タ選択回路28を経てy1記憶回路30に入力され、y2は、記
憶回路14からデータ選択回路32を経てy2記憶回路34に入
力される。一方、x1>x2の場合は、x1はx2に、y1はy2
に、x2はx1に、y2はy1にそれぞれ変換される、即ち、計
算の便宜上、線分lの始点と終点を入れかえる。具体的
には、データ選択回路20,24,28,32の制御により、x1はx
2記憶回路26に入力されてx2として処理され、x2は、x1
記憶回路22に入力されてx1として処理される。更に、y1
はy2記憶回路34に入力されてy2として処理され、y2はy1
記憶回路30に入力されてy1として処理される(ステップ
2)。
次に、演算回路36は、dx=x2−x1を演算し、演算回路38
はdxb=xb−x1を演算し、演算回路40は、dy=y2−y1を
演算する(以上ステップ3)。dx,dyは補数回路42,44に
より絶対値|dx|,|dy|に変換され、|dx|,|dy|は、比較回
路46に入力される。比較回路46は補数回路42のデータ|d
x|と補数回路44のデータdyとを比較し、|dx|<|dy|のと
きは、ライン48にHighの信号を出力し、|dx|=|dy|のと
きは、ライン50にHighの信号を出力し、|dx|>|dy|のと
きはライン52にHighの信号を出力する。制御回路54は、
ライン48がHighのとき、データ選択回路56,58を制御し
て、演算回路60,62のデータ(dx×2),(dxb×2)を
記憶回路64,66にdx,dxbとして入力する。記憶回路64に
入力されたdx=2dxは補数回路42によって絶対値化さ
れ、比較回路46に再び入力される。一方記憶回路34のデ
ータdyは記憶回路68及び補数回路44を経て比較回路46に
入力される。比較回路46は、再び補数回路42の入力デー
タ|dy|と補数回路44の入力データ|dy|とを比較し、|dx|
<|dy|であれは再びライン48にHighの信号を出力する。
このようにして、dxとdyを比較し、|dx|≧|dy|が成立す
るまでdx,dxbを2のn乗倍する。ここではnはくり返し
回数である。即ち、|dx|<|dy|であれば、dx=2dx,dxb
=2dxbとする。更に、|2dx|<|dy|であればdx=4dx,dxb
=4dxbとする(ステップ5′)。更に|4dx|<|dy|であ
ればdx=(2のn乗)dx,dxb=(2のn乗)dxbとす
る。上記線分lをPB点を中心として第4図に示す如くX
座標方向に2のn乗倍拡大してもこの拡大によって求め
るクリップ点PBのY座標値ybは、第4図から明らかなよ
うにY座標軸上を移動しない。尚、第4図において、PB
点を不動点としたのは説明の便宜のためであり、実際
は、dxを、第3図上のP1点を基準として拡大すれば、PB
点も、その拡大倍数に応じてX座標軸上を移動するが、
この移動によって求めるクリップ点PB点のy座標値ybが
変化することはない。(2のn乗)dx|≧|dy|となった
ところで、即ち補数回路42のデータ|dx|と補数回路44の
データ|dy|との関係が|dx|≧|dy|となったところで、ラ
イン50,52はHighを出力し、制御回路54,70の制御によっ
てデータ選択回路72,74が作動され、記憶回路64のデー
タdxが線分l′の終点x2′として、記憶回路76に入力さ
れるとともに(ステップ5)、記憶回路78に線分l′の
始点x1′としてゼロ80が入力されて、上記拡大線分l′
のクリップ点のY座標値を求める演算即ち中点分解法に
よる計算ロジックが作動される。
上記x2′=dx,x1′=0の線分l′の図形は第5図に図
示される。第5図は、線分l′を中点分割する前の、座
標原点変換を表し、これにより、l′の初期状態におい
て、第5図から明らかなように、 線分l′の始点のX座標値x1′=x1−x1=0 線分l′の終点のY座標値y1=y1 線分l′の終点のx座標値x2′=2ndx 線分l′の終点のY座標値y2=y2 クリップ点PBと線分l′の始端x1′との間のX座標値dx
b=2ndxb となる。
ここで、線分l′の中点PCのX・Y座標値(X0,Y0)
は、以下の式により求めることができる。
X0=(X1′+X2′)÷2=(0+2ndx)÷2=2ndx÷2 Y0=(Y1+Y2)÷2 X0は、第1図において、演算回路80,82により演算さ
れ、記憶回路84に記憶される。
一方、記憶回路86,88のデータy1,y2に基づき、演算回路
90は、y1+y2=wを演算し、この演算値を記憶回路92に
記憶させ、この記憶回路92のデータWに基づいて演算回
路94はW÷2を演算し、該演算値y0を記憶回路96にセッ
トする(ステップ6)。次に、比較回路98は、データx0
とdxbとを比較する(ステップ7)。
x0>dxbの場合、第5図中、P1を線分の始端PCを線分の
終端として、線分 の中点PC′を求める。即ち 記憶回路78には、x1′=0 記憶回路86にはy1=y1 記憶回路76にはx2′=2ndx÷2 記憶回路88にはy2=(y1−y2)÷2 が入力され(ステップ8)、 x0=(x1′+x2′)÷2=(0+2ndx÷2)÷2 =2 dx÷4 y0=(y1+y2)÷2 =〔y1+(y1+y2)÷2〕÷2 =3y1+y2÷4 が演算回路82,94によって演算される(ステップ6)。
x0=dxb即ち、x0−dxb=2ndx÷4−dxbがゼロとなった
ときのx0とy0の値がクリップ点PBのXY座標値となる。以
上の動作を要約すると、線分の中点を求め、この中点の
X座標値がクリップ点のx座標値dxbより大であるとき
は、求めた中点を線分の終端とし、クリップ点を含む側
の線分の一端を始端とする線分の中点を求め、この中点
のx座標値がdxbと一致するまでこの作業をくり返し
て、線分を細分割してゆくことである。
x0<dxbの場合には(ステップ9)、 記憶回路78には、x1′=2ndx÷2 記憶回路86にはy1=(y1+y2)÷2 記憶回路76にはx2′=2ndx 記憶回路86にはy2=y2 が入力され、 x0=(x1′+x2′)÷2 =(2ndx÷2+2ndx)÷2 y0=(y1+y2)÷2 =(Y1+y2)÷2+y2÷2 が演算回路82,94によって演算される。x0=dxbがゼロと
なったところで、記憶回路84,96の記憶データx0,y0の値
は、線分lのクリップ点PBのXY座標値(xb,yb)としてC
PU6に入力される。上記y0のコンピュータによる整数計
算において、y1+y2を1/2にすると端数の切り捨てがお
こるので、端数(最下位の1ビットがオン)が2回でる
と次にy0を求めるとき、1/2する前に1を加えて補正す
る(ステップ6)。これを以下に説明する。
記憶回路92の最終桁が奇数の場合(第1回目)、論理積
回路102は“1"を出力する。演算回路104によるic=ic+
(W and1)の式により、記憶回路106は1を記憶する。
記憶回路92の最終桁が2回目の奇数の状態になると、演
算回路104は2を出力し、記憶回路106に2が入力され
る。これにより演算回路108は1を演算し、これを記憶
回路110に入力するとともに、演算回路90にid=1が供
給される。このとき、演算回路114は(ic−2id)の式か
ら、ゼロを記憶回路106に入力して、ic=0となる。こ
のようにして、記憶回路92のに端数が2回出ると、次に
y0を求めるとき、y1+y2を1/2する前に演算回路90にid
=1が供給される。
〔効果〕
本発明は上述の如く構成したので従来の中点分割法に比
し、計算速度をあまり損うことなく計算精度を向上させ
ることができ、しかも、論理と構造が簡単なため、他の
手法よりも高速でローコストを実現することができる効
果が存する。
【図面の簡単な説明】
第1図はブロック回路図であり、コンピュータの一般的
制御線を省略したもの、第2図はフローチャート、第3
図は説明図、第4図は説明図、第5図は説明図、第6図
は従来技術の説明図、第7図は同、フローチャートであ
る。
フロントページの続き (72)発明者 稲沢 栄 東京都世田谷区池尻3−1―3 武藤工業 株式会社内 (56)参考文献 特開 昭57−74779(JP,A) 特開 昭59−226383(JP,A) 特開 昭55−140866(JP,A) 特開 昭54−98532(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】記憶装置のXY座標平面上の線分図形データ
    をディスプレイに表示し、前記ディスプレイにウィンド
    ウを設定し、このウィンドウと前記線分図形データに基
    づく、前記ディスプレイに表示された線分図形との境界
    であるクリップ点のXY座標軸上の未知の座標値を求め、
    この求めた座標値と前記ウィンドウの既知の座標値とに
    よって前記クリップ点のXY座標値を特定し、該クリップ
    点のXY座標値に基づいて、前記線分図形の前記ウィンド
    ウ外の線分を前記ディスプレイから消去するようにした
    図形情報処理装置におけるベクトルクリッピング方法に
    おいて、前記線分図形の両端部間の前記XY座標軸のうち
    の前記クリップ点の既知の座標値を含む一方の座標軸上
    の距離の絶対値を演算するステップと、該絶対値と前記
    線分図形の両端部間の前記XY座標軸のうちの前記クリッ
    プ点の未知の座標値を含む他方の座標軸上の距離の絶対
    値を演算するステップと、上記2つ絶対値を比較するス
    テップと、前記一方の座標軸上の距離の絶対値が前記他
    方の座標軸上の距離の絶対値よりも小さいときは、前記
    一方の座標軸上の距離の絶対値が前記他方の座標軸上の
    距離の絶対値と等しいかあるいはそれより大きくなるま
    で、前記線分図形の両端部間の前記一方の座標軸上にお
    ける距離を拡大して前記線分図形の前記他方の座標軸に
    対する傾きを所定の値に設定するステップと、前記拡大
    した線分図形の両端部間の前記XY座標軸の第1の中点を
    求めるステップと、前記第1の中点の前記一方の座標軸
    上における値と、前記線分拡大後における前記クリップ
    点の前記一方の座標軸上における値とを比較するステッ
    プと、前記第1の中点の前記一方の座標軸上の値と前記
    線分拡大後における前記クリップ点の前記一方の座標軸
    上における値とが不一致のとき前記第1の中点を前記拡
    大後の線分図形の端部とし該端部と前記クリップ点を含
    む側の線分図形の端部との間の第2の中点を演算するス
    テップと、該第2の中点の前記一方の座標軸上の値と前
    記クリップ点の前記一方の座標軸上における値とを比較
    するステップと、前記第2の中点の前記一方の座標軸上
    の値と前記クリップ点の前記一方の座標軸上における値
    とが不一致のとき前記第2の中点を前記拡大線分図形の
    端部と成し、この端部と前記クリップ点を含む側の線分
    図形の端部との間の第3の中点を演算するステップと、
    前記ステップと同様の動作を演算した中点の前記一方の
    座標軸上の値と前記クリップ点の前記一方の座標軸上の
    値とが一致するまで続けるステップとから成る図形情報
    処理装置におけるベクトルクリッピング方法。
JP60169534A 1985-07-31 1985-07-31 図形情報処理装置におけるベクトルクリッピング方法 Expired - Lifetime JPH0679341B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60169534A JPH0679341B2 (ja) 1985-07-31 1985-07-31 図形情報処理装置におけるベクトルクリッピング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60169534A JPH0679341B2 (ja) 1985-07-31 1985-07-31 図形情報処理装置におけるベクトルクリッピング方法

Publications (2)

Publication Number Publication Date
JPS6231481A JPS6231481A (ja) 1987-02-10
JPH0679341B2 true JPH0679341B2 (ja) 1994-10-05

Family

ID=15888274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60169534A Expired - Lifetime JPH0679341B2 (ja) 1985-07-31 1985-07-31 図形情報処理装置におけるベクトルクリッピング方法

Country Status (1)

Country Link
JP (1) JPH0679341B2 (ja)

Also Published As

Publication number Publication date
JPS6231481A (ja) 1987-02-10

Similar Documents

Publication Publication Date Title
JP3318914B2 (ja) ベツィエスプラインをレンダリングするためのシステムおよび方法
EP0199587A2 (en) Image processing system
EP0360155A2 (en) Image transformation method and device
EP0388089B1 (en) Image processing apparatus
US4479192A (en) Straight line coordinates generator
KR920003479B1 (ko) 곡선의 절선근사방법 및 장치
JPH0523439B2 (ja)
JP2674287B2 (ja) グラフィックマイクロコンピュータ
JP3210141B2 (ja) 直線描画装置
JPS62195979A (ja) フアクシミリ符号変換装置
JP2538645B2 (ja) 曲線の折線近似装置
JPS6231481A (ja) ベクトルクリツピング方式
JP2507812B2 (ja) 平方根計算方法
JPS63140382A (ja) 円類の多角形近似描画方法
JP2748787B2 (ja) 曲線発生装置
JPH0368086A (ja) 直線補間回路
JP3214722B2 (ja) ストローク文字発生器
JPS6120002B2 (ja)
JP2780496B2 (ja) 描画装置のクリッピング処理方式
JP2940294B2 (ja) 製図装置
JPH0261779A (ja) 座標データ処理装置
JP2776347B2 (ja) プリンタ用描画装置
JP2650271B2 (ja) 輪郭情報の格納方法
JPH07181944A (ja) アウトラインフォント描画装置
JPH05205041A (ja) 曲線近似装置及び方法