JPH07225849A - グラフィックスコンピュータと直線描画装置 - Google Patents

グラフィックスコンピュータと直線描画装置

Info

Publication number
JPH07225849A
JPH07225849A JP6147856A JP14785694A JPH07225849A JP H07225849 A JPH07225849 A JP H07225849A JP 6147856 A JP6147856 A JP 6147856A JP 14785694 A JP14785694 A JP 14785694A JP H07225849 A JPH07225849 A JP H07225849A
Authority
JP
Japan
Prior art keywords
data
coordinate
difference
straight line
value
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.)
Pending
Application number
JP6147856A
Other languages
English (en)
Inventor
Toshika Minami
利香 南
Mitsuru Watabe
満 渡部
Mamoru Oba
衛 大場
Akihiro Katsura
晃洋 桂
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6147856A priority Critical patent/JPH07225849A/ja
Priority to TW083110149A priority patent/TW276317B/zh
Priority to EP94309123A priority patent/EP0658858B1/en
Priority to KR1019940034148A priority patent/KR100368198B1/ko
Priority to US08/355,517 priority patent/US5771047A/en
Priority to CN94119595A priority patent/CN1097239C/zh
Publication of JPH07225849A publication Critical patent/JPH07225849A/ja
Priority to US08/996,151 priority patent/US6677950B1/en
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 フレームバッファを主メモリと一体化しCP
Uでグラフィックス処理することによりグラフィックス
コンピュータのハードウエア規模を縮小しコストを低減
する。 【構成】 主メモリにフレームバッファを配置し、この
フレームバッファから表示のために画素データを読みだ
すDMAと、この画素データを受取りカラーパレットに
出力するFIFOと、前記フレームバッファに対しCP
Uが描画する手順を記憶するメモリを設けた。 【効果】 フレームバッファを主メモリと一体化し、C
PUでのグラフィックス処理が可能となり、グラフィッ
クスコンピュータのハードウエア規模を縮小しコストを
低減することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、文字、図形、直線など
のグラフィクスを描画、表示あるいは印刷するグラフィ
ックスコンピュータおよび直線描画装置に係り、特に、
描画に要する時間を短縮するに好適なグラフィックスコ
ンピュータおよび直線描画装置に関する。
【0002】
【従来の技術】文字コードや図形データなどを記憶し、
これらを基にグラフィックスを描画,表示あるいは印刷
するグラフィックスコンピュータでは、表示画面の画素
に対応するデータ(以下画素データと呼ぶ)を記憶する
フレームバッファが用いられている。グラフィックスを
描画するためには文字コードや図形データなどから画素
の位置と画素データを演算し、画素の位置に応じてフレ
ームバッファに画素データを書き込む必要がある。表示
画面に安定した画像を表示するためには、表示装置のラ
スタ走査に同期して順次繰り返して表示画面の画素に対
応する画素データをフレームバッファから読みだす必要
がある。このようにグラフィックスの処理は描画と表示
に大きく区分されている。以下ではグラフィックスコン
ピュータを低価格にし、かつ高性能化する従来例につい
て、表示と描画の各々について説明する。
【0003】まず、表示に関係する従来技術について述
べる。グラフィックスコンピュータを低価格にする方法
として、大容量の主メモリにフレームバッファを統合す
る構成が知られている。このような例として特開平4−8
4192号に記載の図形処理装置と、米国学術刊行物IEEE 1
st International Conference on Computer Workstatio
n, pp.30−37(1985.11)に記載されたRobert P. Colwell
によるディスプレイアーキテクチャなどがある。これら
の装置ではフレームバッファのアドレスをハードウェア
で管理しているため、ハードウェアが充分に小型化され
ていないと考えられる。
【0004】続いて、描画に関係する従来技術について
述べる。グラフィックスコンピュータを低価格にする方
法として、描画の大半をCPUのソフトウェアで実現す
る方式が見受けられる様になってきた。このような例と
して米国学術刊行物IEEECOMPCOM SPRING '92 Digest of
Techical Papers pp. 122−128,Februaary 1992に記載
されたCasey Dowdell等によるワークステーションと、
同じくIEEE COMPCOM SPRING '92 Digest of Techical P
apers pp. 193−198,Februaary 1992に記載されたCraig
R. Frink等によるワークステーションがある。一般的
にこのようなグラフィックスコンピュータは描画にハー
ドウェアを用いたものに比較して性能が低かった。この
ため、これらのグラフィックスコンピュータでは特に描
画性能の向上が必要である。
【0005】グラフィックスコンピュータの描画に要す
る時間を短縮するために、文字や図形の位置あるいは大
きさに着目して改善したグラフィックスコンピュータが
知られている。
【0006】図形の位置に着目した例として特開平2−
244285号公報に記載のレンダリング処理のスキッ
プ処理方法及び表示処理装置がある。この装置ではグラ
フィックスの各図形要素に対してクリッピング領域との
位置関係の判定を描画の前に実施し、領域内の図形要素
に対してのみ描画している。描画の対象となる図形要素
の量が削減されるため描画に要する時間が短縮されるも
のである。
【0007】図形要素の大きさに着目した例として特開
平5−73259号公報に記載の画像シェーディング方
法及び画像処理装置がある。一般的に図形要素が小さく
表示されるとき描画手順の差による表示品質への影響が
少なくなる。それゆえ、この装置では演算時間を優先し
た描画手順と表示品質を優先した演算手順の二つの手順
を図形要素の大きさにより切り替えて実施することによ
り、描画に要する時間を短縮している。
【0008】これらの装置では、図形要素の大きさと位
置に着目しているのみで、描画される文字と図形の色の
演算方法などの図形要素の属性に対して着目していな
い。よって、描画に要する時間が充分に短縮されていな
いという問題がある。
【0009】さらに、グラフィックスコンピュータでは
図形描画の特殊形として文字描画がある。文字描画はグ
ラフィックスコンピュータにおいて不可欠であり、文字
描画性能を向上することは描画性能向上に不可欠であ
る。従来の文字描画装置の一例として、文献「HD64410
ARTOP ユーザーズマニュアル」の194頁から199頁
において論じられている。これによると、図8に示すよ
うな文字コードがARTOPに入力されるとビットマップ記
憶回路から2値のビットマップデータを読み出し、色展
開し、文字位置からフレームバッファのアドレスを算出
し、フレームバッファに描画する方法が述べられてい
る。次に、本装置で縁取り文字を描画する方法を述べ
る。ここでの縁取り文字とは、真の文字の周り1ピクセ
ルに真の文字とは異なった色で縁取りを付加した文字の
ことである。図7に本装置で縁取り文字を描画する方法
を示す。図7に示すように、真の文字データの周り8箇
所に文字を描画し、最後に真の文字データの位置に縁取
りをした色とは異なった色で文字を描画することで実現
している。すなわち、1個の縁取り文字を描画するため
に、位置をずらしながら8回文字描画した後に、色と位
置を変更し1回の文字描画をするものである。
【0010】また、図形描画あるいは文字描画では、記
憶容量を低減する目的で“0”と“1”でデータを記憶
している場合が多い。すなわち、描画時に“0”と
“1”で記憶されているデータを色のデータに置き換え
る処理(以下、この処理を多値展開と呼ぶ)を多用す
る。この多値展開の性能の向上は描画性能の向上につな
がる。従来の多値展開装置の一例として、文献「HD6441
0 ARTOP ユーザーズマニュアル」の194頁から199
頁において論じられている。これによると、図15に示
すような位置データを受け取るとアドレスを算出し、対
象となるドットを選択し、2値ビットマップ記憶回路か
ら2値ビットマップデータを読み出し、色情報を選択
し、フレームバッファに出力する方法が述べられてい
る。このように、多値展開とは、“1”あるいは“0”
のデータを予め設定しておいた“1”と“0”に対応す
る色情報に変換する処理である。図3に従来の多値展開
描画の処理フローを示す。図16に示すように、アドレ
ス演算,ドット選択,2値ビットマップデータ読みだ
し,色情報の選択,ドット描画、以上の処理により1ド
ットの多値展描画が終了するものである。
【0011】さらに、グラフィックスコンピュータでは
画面上のすべてのデータについて座標変換処理を実行す
ることが多く、座標変換処理を高速化することはグラフ
ィックスシステムの性能向上に有効である。従来の座標
変換装置の一例として、J.D.Foley及びA.Van Damによる
1982年発行の文献「Fundamentals of Interactive Comp
uter Graphics 」の51頁から55頁において論じられ
ている。これによると、座標変換演算で用いる係数を求
め、次に変換演算を実行する方法が述べられている。
【0012】一方、従来の直線描画方式の一例として、
James D.Foly,Andries Van
Dam共著、今宮淳美訳の「コンピュータ・グラフィッ
クス」(1984年発行)第443ぺ−ジ〜第446ペ
ージに記載されているように、2つの座標点から2点間
を結合する直線を表す式を求め、この式に従って2点間
の座標点を求める方法が知られている。
【0013】また他の方法として、特開昭57−200
087号公報に記載されているように、ベクトルデータ
をドット展開した値を、予めベクトルデータ記憶装置に
格納し、始点、終点の座標から格納アドレスを算出し、
X座標が1増加する時のY座標の増分で表されるベクト
ルデータを読み出すことで、描画する座標を求めるもの
が知られている。
【0014】
【発明が解決しようとする課題】本発明が解決しようと
する課題はグラフィックスコンピュータを低価格に構成
し、かつ、描画に要する時間を短縮することである。特
に、フレームバッファを主メモリ内に配置し、描画と表
示をCPUのソフトウェアで処理するグラフィックスコ
ンピュータにおいて、表示におけるフレームバッファの
アドレスを管理するハードウェアの規模を小型化するこ
とを目的とした。さらに、従来は考慮されていなかった
描画される文字と図形の色の演算方法などの図形要素の
属性に応じて描画に要する時間を短縮することを目的に
した。
【0015】文字描画において本発明が解決しようとす
る課題は、処理時間を短縮することである。文字のビッ
トマップデータは、記憶容量を圧縮するために文字の線
の部分は“1”、余白の部分は“0”の2値データで表
されている。そのため、これらのデータを色情報に変換
(以後、この処理を多値展開処理と呼ぶ。)した後に描画
しなければならない。すなわち、従来の技術で縁取り文
字を描画する場合、9回の多値展開処理と9回の描画が
必要となる。文字描画における本発明の目的は、高速に
縁取り文字を描画する文字描画装置及び文字描画方法を
提供することにある。
【0016】多値展開処理において本発明が解決しよう
とする課題は、処理時間を短縮することである。従来方
式ではドット毎に多値展開及び描画処理を、描画したい
ドット数分繰り返し実行する必要がある。多値展開にお
ける本発明の目的は、高速に多値展開描画処理を実行す
る多値展開描画装置及び多値展開描画方法を提供するこ
とにある。
【0017】座標変換処理において本発明が解決しよう
とする課題は、処理時間を短縮することである。例え
ば、ある単位毎に記憶されているディジタル地図データ
の複数単位を座標変換し、それらを同時に描画・表示す
る場合、座標変換演算の精度が低下すると、地図データ
の単位の境界で図形や線分等がずれてしまうという問題
がある。従来技術においては、データを実数で扱ってい
るため精度の点では問題ない。しかし、演算速度につい
ての十分な配慮がされておらず、その処理速度に問題が
あった。座標変換処理における本発明の目的は、精度を
保ち高速に座標変換処理を実行する座標変換装置を提供
することにある。
【0018】上記直線描画装置の課題の一つは、描画す
る直線の長さについて十分に配慮されてない点にあり、
直線の長さに関わらず座標点を算出するための式を求め
る必要がある。すなわち、座標点を算出するための式を
求める処理は、多数の命令の組み合わせによってプログ
ラムを記述する必要がある。このため、短い直線の場合
には描画処理時間よりも直線描画式算出時間の方が長く
なる。
【0019】また、直線描画装置の他の課題は、高速に
直線を描画するには有効であるが、ベクトルデータの容
量についてに十分に配慮されてない点にあり、ベクトル
データ記憶装置の容量が大きくなる。
【0020】そこで、本発明では、ベクトルデータの記
憶容量を低減しかつ高速に直線を描画することができる
直線描画装置およびこの装置を用いた図形表示装置を提
供することを目的としている。
【0021】
【課題を解決するための手段】前述の問題を解決するた
めに、表示用ハードウェアの小型化に関しては、表示に
おけるフレームバッファのアクセスを水平の走査と垂直
の走査に分割して管理するものとした。このための手段
として、フレームバッファ内の指定された部分を水平に
走査する手段と、水平走査の後の垂直走査により定めら
れる次の水平走査すべき部分を前記の水平に走査する手
段に指定する手段とを設けた。より詳細には、この水平
に走査する手段は画素データを一時的に蓄える手段へ表
示すべき画素データを含む主メモリのワードをフレーム
バッファから連続して転送するダイレクトメモリアクセ
スコントローラであり、垂直に走査する手段は次に水平
走査する部分を指定する手順を実行するマイクロコンピ
ュータである。
【0022】また、描画に要する時間を短縮するため
に、各図形要素に対して指定可能な属性に応じて描画す
る多機能手順を設け、高頻度で出現する図形要素に対し
ては特定の属性にて描画する単機能手順を設けた。
【0023】さらに、文字描画における上記目的を達成
するため、以下の手段を備えることを特徴とする。文字
コードと文字位置データを用いて文字を描画する文字描
画装置において、2値ボールドビットマップデータを生
成する2値ボールド回路と2値ボールドビットマップデ
ータを記憶するボールドビットマップデータ記憶回路と
真の文字を描画する文字位置データからボールド文字を
描画する位置を算出する位置変更回路を有することを特
徴とする文字描画装置である。
【0024】また、多値展開における上記目的を達成す
るため、以下の手段を備えることを特徴とする。位置デ
ータを用いて2値ビットマップデータを多値の色情報に
展開する装置において、ハードウェア・描画情報からド
ットデータを生成するドットデータ生成回路とそれを記
憶するドットデータ記憶回路と多ドットを同時に選択す
る多ドット選択回路と多値データを発生する多値パター
ン発生回路と多値パターン発生回路で生成した多値パタ
ーンを記憶する多値パターン記憶回路を有することを特
徴とする多値展開描画装置である。
【0025】また、座標変換処理における上記目的を達
成するため、以下の手段を備えることを特徴とする。変
換係数算出データと座標データを用いて座標変換処理す
る装置において、変換処理に必要な行列データとそれら
のデータの精度の情報である精度パラメータを算出する
係数演算回路と行列データと精度パラメータを記憶する
係数記憶回路と前記係数記憶回路に記憶されているデー
タと座標データを用いて座標変換演算を実行する変換演
算回路を有することを特徴とする座標変換処理装置であ
る。
【0026】ベクトルデータの容量を低減しかつ高速に
直線を描画するために、二次元座標系の特定の画素情報
に対応した複数のベクトルデータを記憶するデータ記憶
手段と、二次元座標系における直線の始点座標と終点座
標を含む座標データを受けこの座標データから直線の始
点座標と終点座標との差を算出する差分算出手段と、差
分算出手段の算出値が特定の値以下であるか否かを判定
する判定手段と、判定手段により肯定の判定結果が得ら
れたことを条件に差分算出手段の算出値に応じたベクト
ルデータをデータ記憶手段から選択するベクトルデータ
選択手段と、ベクトルデータ選択手段の選択によるベク
トルデータを基に直線の描画データを生成する描画デー
タ生成手段とを備えた直線描画装置を構成したものであ
る。
【0027】前記直線描画装置を構成するに際して、差
分データから二次元の絶対値データを生成する絶対値デ
ータ生成手段を設け、この絶対値データに応じてベクト
ルデータを選択するようにすることもできる。
【0028】ベクトルデータを画素の固定されたパター
ンテーブルとして記憶した場合には、以下の構成を採用
することができる。XY座標系における始点座標と終点
座標との差分の絶対値に対応した番地に2種類のベクト
ルデータを画素の固定されたパターンテーブルとして記
憶するデータ記憶手段と、XY座標系における直線の始
点座標と終点座標を含む座標データを受けこの座標デー
タから直線の始点座標と終点座標との差を示すXY座標
系の差分データを生成する差分データ生成手段と、差分
データ生成手段の生成による各差分データからXY座標
系の絶対値データを生成する絶対値データ生成手段と、
差分データ生成手段の生成による各差分データの示す差
分値の正負を判別する符号判別手段と、差分データ生成
手段の生成による各差分データの示す差分値が特定の値
以下であるか否かを判定する判定手段と、判定手段によ
り肯定の判定結果が得られたことを条件に符号判別手段
の判別結果に従った種類のベクトルデータを指定し指定
のベクトルデータの中から絶対値データ生成手段の生成
による絶対値データに対応したベクトルデータをデータ
記憶手段から選択するベクトルデータ選択手段と、前記
座標データと差分データ生成手段の生成による各差分デ
ータを基にベクトルデータ選択手段の選択によるベクト
ルデータの特定の座標をXY座標系の始点座標に調整す
る座標調整手段と、座標調整手段により座標の調整され
たベクトルデータから直線の描画データを生成する描画
データ生成手段とを備えた直線描画装置。
【0029】前記直線描画装置を構成する場合、データ
記憶手段として、XY座標系における始点座標と終点座
標との差分の絶対値に対応した番地に2種類のベクトル
データを画素可変長のパターンテーブルとして記憶する
ようにしたもので構成することができる。
【0030】始点座標と終点座標の中間点の座標から直
線を描画するものとして、二次元座標系における直線の
始点座標と終点座標を含む座標データを受けこの座標デ
ータから直線の始点座標と終点座標との差を算出する差
分算出手段と、差分算出手段の算出値が特定の値以下で
あるか否かを判定する判定手段と、判定手段により肯定
の判定結果が得られたことを条件に前記座標データを基
に始点座標と終点座標の中間点の座標を算出する中間点
座標算出手段と、中間点算出手段の算出による中間点座
標と前記座標データを基に直線の描画データを生成する
描画データ生成手段とを備えた直線描画装置を構成する
ことができる。
【0031】同様に、始点座標と終点座標の中間点の座
標から直線を描画するものとして、XY座標系における
直線の始点座標と終点座標を含む座標データを受けこの
座標データから直線の始点座標と終点座標との差を示す
XY座標系の差分データを生成する差分データ生成手段
と、差分データ生成手段の生成による各差分データから
XY座標系の絶対値データを生成する絶対値データ生成
手段と、差分データ生成手段の生成による各差分データ
の示す差分値の正負を判別する符号判別手段と、絶対値
データ生成手段の生成による各絶対値データの示す絶対
値が特定の値であるか否かを判定する判定手段と、判定
手段により肯定の判定結果が得られたことを条件に符号
判別手段の判別結果に応じたXY座標系の座標加算値を
生成する座標加算値生成手段と、座標加算値生成手段の
生成による座標加算値と前記座標データの始点座標とか
らXY座標系の中間点座標を生成する中間点座標生成手
段と、中間点座標生成手段の生成による中間点座標と前
記座標データの始点座標及び終点座標を基に直線の描画
データを生成する描画データ生成手段とを備えた直線描
画装置を構成することができる。
【0032】線分の属性から垂直線のみを描画するもの
として、XY座標系における直線の始点座標と終点座標
を含む座標データを受けこの座標データから直線の始点
座標と終点座標との差を示すXY座標系の差分データを
生成する差分データ生成手段と、差分データ生成手段の
生成による差分データからX座標の差分値が零か否かを
判定する垂直線判定手段と、差分データ生成手段の生成
による差分データのうちY座標の差分値の正負を判別す
る符号判別手段と、垂直線判定手段により肯定の判定結
果が得られたことを条件に符号判別手段の判別結果に応
じたY座標加算値を生成するY座標加算値生成手段と、
加算値がY座標の終点座標となるまでY軸の始点座標に
Y座標加算値生成手段の生成によるY座標加算値を順次
加算して新たなY座標を順次生成するY座標生成手段
と、Y座標生成手段の生成による各Y座標とX軸の始点
座標を基に垂直線の描画データを生成する描画データ生
成手段とを備えた直線描画装置を構成することができ
る。
【0033】線分の属性から水平線のみを描画するもの
として、XY座標系における直線の始点座標と終点座標
を含む座標データを受けこの座標データから直線の始点
座標と終点座標との差を示すXY座標系の差分データを
生成する差分データ生成手段と、差分データ生成手段の
生成による差分データからY座標の差分値が零か否かを
判定する水平線判定手段と、差分データ生成手段の生成
による差分データのうちX座標の差分値の正負を判別す
る符号判別手段と、水平線判定手段により肯定の判定結
果が得られたことを条件に符号判別手段の判別結果に応
じたX座標加算値を生成するX座標加算値生成手段と、
加算値がX座標の終点座標となるまでX座標の始点座標
にX座標加算値生成手段の生成によるX座標加算値を順
次加算して新たなX座標を順次生成するX座標生成手段
と、X座標生成手段の生成による各X座標とY座標の始
点座標を基に水平線の描画データを生成する描画データ
生成手段とを備えた直線描画装置を構成することができ
る。
【0034】前記各直線描画装置において、判定手段に
より否定の判定結果が得られた時には、始点座標と終点
座標との間の座標を指定の式に従って順次算出する座標
算出手段を備えることが望ましい。
【0035】また前記各直線描画装置において、描画デ
ータから画素データを生成する画素データ生成手段と、
画素データ生成手段の生成による画素データに従った図
形を画面上に表示する表示手段を設けることによって図
形表示装置を構成することができる。
【0036】
【作用】表示において、フレームバッファの水平走査を
ダイレクトメモリアクセスコントローラと呼ばれるハー
ドウェアで実現し、垂直走査をマイクロコンピュータの
ソフトウェアで実現した。マイクロコンピュータはアプ
リケーションプログラムや描画に必須のものであるた
め、特に表示のために設けたものではない。また、表示
の手順を記憶するメモリは大容量化が著しく上記手順を
記憶させてもメモリのチップ数が増加することはない。
よって、表示のアクセスにおけるハードウェア規模を小
型化できる。
【0037】また、図形要素を特定の属性にて描画する
単機能手順は属性に関する判定とフレームバッファから
の読みだしと演算の全てあるいは一部を実行する必要が
ないため特定の属性を持つ図形要素の描画に要する時間
が短縮できる。特定の属性と異なった属性の場合には多
機能手順によって描画が可能である。この判定はアプリ
ケーションプログラム作成時に定まるものであるから、
単機能手順と多機能手順のどちらを使用するかはあらか
じめ定まる。よって、どちらの手順を実行するかの判定
をソフトウェアで実施する必要がなく、この面でも描画
処理時間を短縮可能である。
【0038】文字描画においては、次の作用により前記
の目的が達成される。ビットマップ記憶回に文字コード
が入力されると、文字コードに応じたビットマップデー
タが出力され、2値ボールド回路に入力される。2値ボ
ールド回路は、ビットマップデータを受け取るとボール
ドビットマップデータを生成し、ボールドビットマップ
データ記憶回路に出力する。位置変更回路は、ボールド
文字を描画する位置を示すボールド文字位置データを算
出し、多値展開・描画回路に出力する。多値展開・描画
回路は先にボールドビットマップデータ記憶回路に記憶
されたボールドビットマップデータとボールド文字位置
データを用いてフレームバッファにボールド文字を描画
する。次に、ビットマップデータと文字位置データを用
いて真の文字をフレームバッファに描画する。以上2回
の描画で縁取り文字を描画することができる。その結
果、プログラムステップ数の増加を抑えて処理速度を高
めることができる。
【0039】多値展開処理においては、次の作用により
上記の目的が達成される。ドットデータ生成回路は、ハ
ードウェア・描画情報が入力されるとドットデータを生
成し、ドットデータ記憶回路に出力する。多値展開描画
装置に位置データが入力されると、多ドット選択回路は
ドットデータからそれに応じたドット数の2値ビットマ
ップデータを2値ビットマップ記憶回路から読み出し、
描画回路に出力する。多値パターン記憶回路には予め多
値パターン発生回路により生成された多値パターンが蓄
えられている。描画回路は、2値ビットマップ記憶回路
から読みだしたデータを多値パターンを選択する情報と
して用い、多値パターン記憶回路から多値パターンを引
き出す。一方、アドレス演算回路は、位置データからそ
れに対応するフレームバッファのアドレスを算出し、描
画回路に出力する。描画回路は、多値パターン記憶回路
から引き出した多値パターンをアドレス演算回路が算出
したフレームバッファのアドレスに出力する。以上のよ
うに多ドットを同時に多値展開及び描処理画を実行する
ことができる。その結果、プログラムステップ数の増加
を抑えて処理速度を高めることができる。
【0040】座標変換処理においては、次の作用により
上記の目的が達成される。座標変換処理装置に変換係数
算出データが入力されると、係数演算回路は変換係数の
行列データと精度パラメータを算出するようにし、係数
記憶回路は変換係数の行列データと精度パラメータを記
憶するようにし、変換演算回路は固定小数点演算で変換
演算処理を実行し、精度パラメータを用いてスケーリン
グをするようにしたから、精度を低下させることなく固
定小数点演算で処理することができる。その結果、精度
を落とすことなく、座標変換処理速度を高めることがで
きる。
【0041】直線描画装置の作用は以下のようになる。
【0042】直線を描画するに際して、座標データを受
けた時に、直線の始点座標と終点座標との差が特定の値
以下の時には、データ記憶手段から指定のベクトルデー
タを選択し、選択したベクトルデータを基に、直線の描
画を行うことができる。このため、特定の画素で構成さ
れる直線を描画する場合、データ記憶手段には特定の画
素情報に対応したベクトルデータのみを記憶すればよい
ので、ベクトルデータの記憶容量を低減することができ
る。さらに、データ記憶手段から指定のベクトルデータ
を選択するだけで、指定の式に従った演算を行う必要が
ないので、高速に直線を描画することができる。またデ
ータ記憶手段に画素可変長のパターンテーブルとしてベ
クトルデータを記憶した場合には、表示画素に対応した
ベクトルデータのみを記憶すればよいので、さらに記憶
容量を低減することができる。
【0043】また座標データの始点座標と終点座標を基
に始点座標と終点座標の中間点の座標を算出し、始点座
標、終点座標および中間点の座標から直線を描画する場
合には、ベクトルデータを記憶することなく直線を描画
することができる。
【0044】さらに、線分の属性の判定によって垂直線
と判定したときには、Y軸の始点座標に加算値がY座標
の終点座標となるまでY軸座標加算値を順次加算するこ
とによって垂直線を描画することができるため、ベクト
ルデータを記憶することなく垂直線を描画することがで
きる。また、線分の属性の判定から水平線と判定したと
きには、X軸の始点座標に、加算値がX座標の終点とな
るまでX座標加算値を順次加算することによって水平線
を描画することができるため、ベクトルデータを記憶す
ることなく水平線を描画することができる。
【0045】
【実施例】以下本発明の実施例を図面により説明する。
【0046】図1はグラフィックスコンピュータを小型
化し、さらに、描画に要する時間を短縮した本発明の一
実施例である。
【0047】本実施例のグラフィックスコンピュータ
は、描画と表示を制御する動作周波数20MHzのマイ
クロコンピュータ126と、DRAMで構成されており
フレームバッファ109を統合したデータ幅16ビット
の主メモリ103と、ROMで構成されており応用プロ
グラム133及び図形データ132を記憶するデータ幅
16ビットの第2のメモリ108と、主メモリ103か
ら連続して読みだした複数の画素データをディスプレイ
に同期して出力するまで一時的に蓄えているラスタバッ
ファ104と、画素データから赤色と緑色と青色の三原
色の輝度を定めるカラーパレット105と、表示制御信
号125を受け各手段で使用する信号に変換する表示制
御信号変換手段124と、大容量の図形データや応用プ
ログラムなどを記憶しCD−ROM装置またはハードデ
ィスク装置などで構成される外部メモリ134と、同期
タイミングがテレビジョンのNTSC方式に準拠した水
平方向320画素で垂直方向240画素の液晶ディスプ
レイ106を含む。図1ではカラーパレット105と液
晶ディスプレイ106を各々の略号であるCPLTとL
CDと表記した。以下ではこれら略号を使用する。ここ
ではグラフィックスコンピュータのディスプレイとして
LCD106を用いたが、本発明の本質を変えずにLC
D106の代わりに陰極線管など他のラスタスキャン型
ディスプレイを用いることが可能である。
【0048】マイクロコンピュータ126は演算手段で
あるCPU100と、ROMで構成されており描画手順
及び表示制御手順を記憶するデータ幅16ビットの第3
のメモリ118と、RAMで構成されておりデータ幅1
6ビットの第4のメモリ128と、表示においてフレー
ムバッファ109から画素データを読みだしてラスタバ
ッファ104へ転送するダイレクトメモリアクセスコン
トローラ101と、LCD106との同期を取るための
表示制御信号125を発生するPWM信号群発生手段1
02と、マイクロコンピュータ126の内部のバスであ
る第2のバス127と外部のバスである第1のバス10
7を接続するバスステートコントローラ123と、シス
テムクロック121を発生する発振器122を含む。図
1ではダイレクトメモリアクセスコントローラ101と
バスステートコントローラ123を各々の略号であるD
MACとBSCと表記した。以下これら略号を使用す
る。
【0049】以下では本実施例の描画に関する部分を説
明する。
【0050】CPU100は応用プログラムを実行し、
その要求に応じて文字および図形などのグラフィックス
のデータを発生する演算手段である。その動作は応用プ
ログラムにより与えられた文字や図形などの図形データ
に基づき、第3のメモリ118に格納された描画手順に従
ってフレームバッファ109内の画素位置とその画素デ
ータを演算し、BSC123と第1のバス107を介し
てその画素の位置にその画素データを書き込む。
【0051】BSC123は第2のバス127と第1の
バス107を接続すると同時に、DRAMで構成された
主メモリ103を第1のバス107を介してマイクロコ
ンピュータ126に直接接続するために行アドレスと列
アドレスをマルチプレクスし、行アドレスストローブと
列アドレスストローブなどのバス制御信号の発生する。
さらには主メモリ103に対する前回のアクセスにおけ
る行アドレスと現在のアクセスにおける行アドレスを比
較することにより高速ページモードが可能なアクセスを
自動的に検出し、高速ページモードでのアクセスを自動
的に発生する。このBSC123により論理手段を追加
することなく、主メモリ103あるいはフレームバッフ
ァ109の高速ページモードアクセスを自動的に実施す
るものとした。
【0052】グラフィックスの描画処理では一つの画素
にアクセスした後にその隣接する画素をアクセスするこ
とが多い。例えば、矩形領域の塗りつぶしでは水平線の
書き込みを垂直方向に繰り返す。また、一般的にフレー
ムバッファは水平方向の画素を連続するアドレスに配置
することがであり、本実施例でも表示アクセスの高速化
のために同様な配置にしている。このような場合、水平
線の書き込みは連続したアドレスに対する書き込みにな
る。よって、BSC123が高速ページモードアクセス
を自動的に実施することにより描画に要する時間を短縮
することができる。
【0053】第3のメモリ118は描画手順として多機
能手順119と単機能手順120を格納している。これ
らの手順は応用プログラムからの呼び出しにより、第2
のバス127を介してCPU100に順次取り込まれ実
行される。CPU100はこれらの手順を実行すること
によりフレームバッファに図形要素を描画する。どちら
の手順とも描画する図形要素に応じて独立した複数の手
順を含む。例えば点の描画において呼び出される手順
と、直線の描画において呼び出される手順と、矩形領域
の複写において呼び出される手順などがある。
【0054】多機能手順119は各図形要素に対して応
用プログラムが指定した属性に応じて描画する手順であ
る。このため属性の判定と、その結果に応じた処理に分
岐と、その処理が必要になる。単機能手順120は指定
された属性ではなく各図形要素に応じた特定の属性で図
形要素を描画する手順である。この特定の属性は各図形
要素において高頻度で出現する属性を用いた。詳細には
後述するが、例えば、点や直線や矩形領域の塗りつぶし
に関する高頻度で出現する属性は、色が単色で、既に描
画されている図形の上に重ね書きをするものである。こ
のような属性は一つの図形要素を描画するうえでの色の
変更や、背景となった画素データと書き込む画素データ
との間での演算が不用である。言い換えれば、単機能手
順120の描画は単に求めた画素データを求めた位置に
書き込めばよいことになる。このように属性に関する処
理が不用になるため、単機能手順120は多機能手順1
19に比較して高速である。
【0055】一方で、小量ではあるが属性を指定して描
画を実行する必要もある。このような例として破線を描
画する場合を説明する。破線を描画するには、実線と破
線を制御する属性に破線を指定し、破線の間隔を指定す
るデータを指定し多機能手順119を実行する。この属
性は線種と呼び、破線の間隔を指定するデータを線種パ
ターンと呼ぶ。この場合、線種パターンに応じて画素毎
に画素データを書き込むか否かを判定するため、処理時
間が単機能手順120より長くなる。このように高頻度
で出現する単純な属性を高速に処理する単機能手順12
0と、複雑な属性も処理できる多機能手順119を設け
ることにより、グラフィックスコンピュータの汎用性を
維持しながら、描画時間を短縮する。
【0056】これら多機能手順119と単機能手順12
0は高級言語で記述された応用プログラムから呼び出す
ことが可能なグラフィックスライブラリとして構築し
た。高級言語としては米国標準協会(ANSI)で規格
化されたC言語に対応した。図形要素の属性から見て単
機能手順120だけで充分な場合には汎用の多機能手順
119を応用プログラムに接続する必要はない。この場
合は第3のメモリ118の容量を節約できる。単機能手
順120を必要としない場合にも同様にこれらを応用プ
ログラムに接続する必要はない。この場合にも第3のメ
モリ118の容量を節約できる。後述する本発明を用い
た自動車ナビゲーションの例では単機能手順120に属
する様々な図形要素用の描画手順のうち、少数の手順の
みを利用している。従って、接続した手順も少なくの第
3のメモリ118に応用プログラムをも格納した。この
ように描画の手順を図形要素毎に設け、さらに、図形要
素の属性に多機能手順119と単機能手順120を設け
ることにより必要な描画手順のみを接続することにより
グラフィックスコンピュータにおいて必要となるメモリ
を小容量化でき、グラフィックスコンピュータの価格を
低減する。
【0057】ここでは、図1の実施例から離れ、描画手
順のその他の実施例について説明する。
【0058】描画手順のその他の実施例として、多機能
手順119に単機能手順120を含めて、図形要素ごと
に一つの手順とする構成がある。この場合、図形要素の
指定された属性が判定され、前記の特定の属性と一致し
たときに単機能手順120が起動される。この実施形態
でも、描画に要する時間を図形要素の属性に応じて短縮
するという目的は達成されている。さらに、図形要素ご
とに一つの手順であるため描画手順の個数が少なく、応
用プログラマがグラフィックスライブラリを理解しやす
い。また、指定した属性に従って描画が実行されるため
応用プログラムのデバックが容易になる。ここで、図形
要素の属性は応用プログラムを作成するときに既に決定
されていることが多い。よって、この実施例のように描
画手順のなかで特定の属性を判定することは応用プログ
ラマから見て冗長な処理である。言い換えれば、描画に
要する処理時間の短縮が図1の実施形態に比較して不十
分と考えられる。
【0059】以下では図1に戻り、本発明の表示に関す
る一実施例を説明する。
【0060】DMAC101はLCD106の水平走査
に同期したDMA要求信号110に応じて、第2のバス
127とBSC123と第1のバス107を介してフレ
ームバッファ109から1ラスタ分の画素データを連続
して読みだしラスタバッファ104に転送する。このと
き、DMAC101は第2のバスを使用するためにバス
調停信号113によりBSC123にバスアクセスを要
求する。これに応じて、BSC123はバス調停信号1
13によりCPU100を停止させ、さらに、DMAC
101にバスアクセス権を与える。バスアクセス権を得
たDMAC101 はCPU100によりあらかじめ設
定されたラスタの先頭アドレスから所定の画素分のリー
ドアクセスを連続して発行する。
【0061】複数の画素が1回のアクセスで得られるた
め、リードアクセス回数は1ラスタの画素数を1ワード
内に含まれる画素数で割った値である。例えば本実施例
では第1のバスのデータ幅が16ビットであり、画素デ
ータが8ビット(同時表示色256色)であるため、1
ワードに2画素が含まれる。フレームバッファ109と
LCD106の1ラスタ(水平方向の画素の列)が32
0画素であるため、160回アクセスする。
【0062】BSC123はその設定に応じて特定のア
ドレス空間に対するアクセスをDRAMに対するアクセスに
することができる。本実施例ではフレームバッファ10
9を内包する主メモリ103を安価に構成するためにD
RAMを用いた。そこで、主メモリ103を前記特定の
アドレス空間に配置し、この空間に対するアクセスをD
RAMに対するアクセスにすることをBSC123に設
定した。この設定は応用プログラムに従ってCPU10
0が実施する。
【0063】この設定に従ってBSC123はDMAC
101が発行するアドレスを行アドレスと列アドレスに
マルチプレクスし、第1のバス107に対してDRAM
のランダムリードサイクルを実施する。ここで、先行す
るDRAMのアクセスとの行アドレスと同一の行アドレ
スならば高速ページサイクルを実施する。さらに、DM
AC101によるアクセスであるためBSC123はD
MAライト信号111を発生し、フレームメモリ109か
ら読み出した画素データをそのリードアクセスサイクル
中にラスタバッファ104に書き込む。
【0064】本実施例で用いた262144ワードX1
6ビットのDRAMのアクセスタイムは80nsec、サイ
クルタイムは150nsecであり、同一行アドレス内のワ
ード数は512である。システムクロック121は20
MHzである。このためDRAMのアクセスサイクルを行ア
ドレスから発行されるランダムアクセスにおいて4クロ
ック、高速ページアクセスにおいて2クロックとするよ
うにBSC123を設定した。この設定は応用プログラ
ムに従ってCPU100が実施する。
【0065】1ラスタの初回アクセスはDRAMの行ア
ドレスが前回のアクセスと異なっていることが多いた
め、ランダムアクセスになる。1ラスタの連続アクセス
の途中で行アドレスが変更になることもある。同一行ア
ドレス内に512ワード存在することと1ラスタのアク
セスが160ワードであることより、この変更は多くと
も1回である。また、リフレッシュサイクルも1ラスタ
の転送中には多くとも1回である。よって、1ラスタ全
てのアクセスに要するサイクル数は322サイクルから
326サイクル程度であり、時間にして16.1マイク
ロ秒から16.3マイクロ秒である。平均して16.2マ
イクロ秒である。
【0066】1秒当たりの第1のバスの占有時間は、1
ラスタ当たりのアクセス時間に一画面のラスタ数(垂直
方向の画素数)を乗じ、さらに、垂直同期周波数を乗じ
た値である。一画面のラスタ数が240であり、LCD
106はテレビジョンのNTSC方式に準拠しているため垂
直同期周波数が59.9Hzである。以上より1秒当た
りの第1のバスの占有時間は233msecである。バス占
有率にすると23.3%である。
【0067】再び図1に戻り、フレームバッファ109
の垂直走査について説明する。
【0068】DMAC101は1ラスタ分の画素データ
をフレームバッファ109からラスタバッファ104へ
転送すると、転送が終了したことを第2の割り込み信号
131を介してCPU100に通知する。CPU100は
第3のメモリに格納した表示制御手順129を割り込み
処理として実行する。表示制御手順129はDMAC101の
転送終了の通知回数を計数し、この通知回数を基にDM
AC101が転送を終了したラスタがLCD106の画
面において垂直方向の最後のラスタであったかを判定す
る。
【0069】最後のラスタではない場合、DMAC10
1を再初期化する。その内容は次に送るべきラスタの先
頭アドレスと、1ラスタ分の画素データに対応した転送
すべきワード数と、そしてDMAC101をDMA要求
信号110待ちの状態にすることである。ここでフレー
ムバッファ109の大きさとLCD106の大きさが等
しいときは、DMAC101のソースアドレスが各アク
セス毎にインクリメントされているため、次に送るべき
ラスタの先頭アドレスをソースアドレスとして設定する
必要がない。既に生成されている。
【0070】一方、通知回数が最後のラスタを示した場
合、通知回数をクリアし、最初のラスタの先頭アドレス
と、1ラスタ分の画素データに対応した転送すべきワー
ド数と、そしてDMAC101をDMA要求信号110
待ちの状態にする。順次、以上の手順をCPU100が
実行することにより、フレームバッファ109の垂直走
査が実現できる。このように垂直走査をソフトウェアで
実現することによって、グラフィックスコンピュータの
低価格化を図ることができる。
【0071】また、フレームバッファ109をLCD1
06の画面より広くし、上記の表示制御手順129を用
いることにより、スムーズスクロール処理が可能であ
る。一般にスムーズスクロール処理はフレームバッファ
内の表示領域をわずかづつ繰り返し移動することにより
実現できることが知られている。表示制御手段129は
ラスタの先頭アドレスを指定する手順であるから、これ
らのアドレスをわずかづつ変更することでスムーズスク
ロール処理を実施した。
【0072】ラスタバッファ104に転送される1ラス
タ分の画素データは画素リード信号116によって一つ
づつ読みだされ、CPLT105のエントリ番号112
になる。この読みだしの順番はワード間ではFIFO
順、同一ワード内ではMSB側からの順番である。読み
だしのタイミングはLCD106の水平走査に同期して
いる。エントリ番号112は画素クロック117により
CPLT105に取り込まれる。ここでエントリ番号1
12は8ビットであり0番から255番までの256色
を指定可能である。応用プログラムに従ってCPU10
0が上記256色をCPLT105にあらかじめ設定す
る。CPLT105はエントリ番号112により指定され
た色をアナログのRGB信号115に変換し、LCD1
06へ出力する。
【0073】つぎに各部の同期方法について説明する。
【0074】表示制御信号発生手段102はシステムク
ロック121を入力し、LCD106の水平走査あるいは垂直
走査を制御する水平同期信号213と水平表示期間信号
211と垂直同期信号212と垂直表示期間信号210
とを発生する。CPU100が応用プログラムに従って
これら4本のPWM信号の周期と位相とパルス幅を設定
する。水平同期信号213はLCD106の1回の水平
走査の終了と次の水平走査の開始を示す信号である。水
平表示期間信号211はLCD106の各水平走査にお
いて表示の開始位置と終了位置を示す信号である。垂直
同期信号212はLCD106の1回の垂直走査の終了
と次の垂直走査の開始を示す信号である。垂直表示期間
信号210はLCD106の各垂直走査において表示の
開始位置と終了位置を示す信号である。水平表示期間信
号211が示す水平方向の表示期間と垂直表示期間信号
210が示す垂直方向の表示期間を合わせることによ
り、LCD106の表示領域が決定される。
【0075】また、表示制御信号発生手段102は垂直
表示期間信号210に同期してCPU100に割り込み
処理を要求する。割り込み処理の要求は垂直表示期間の
開始時と終了時である。本実施例では第1の割り込み信
号130を介して割り込み処理を要求する。この割り込
み処理の要求によってCPU100は第3のメモリ11
8に格納された単機能手順120あるいは多機能手順1
19などの描画手順、あるいは表示制御手順129を起
動する。これにより、描画や表示において発生するLC
D106の画面上の乱れが低減される。
【0076】具体的には、垂直表示期間の終了時の割り
込み処理の要求に応じて表示制御手順129から前述の
表示領域の変更処理を実施する。このようにすれば、ス
ムーズスクロール中にLCD106の画面上に境目の様
な乱れを発生しない。また、垂直表示期間の開始時の割
り込み処理の要求に応じて、垂直走査の速度がLCD106の
垂直走査の速度より遅い描画処理を起動する。これによ
りLCD106の画面上に描画の途中の不完全な図形を
表示するという見苦しさを発生しない。このような描画
処理として単機能手順120に属する多角形塗りつぶし
処理や矩形領域の複写処理がある。これらの描画処理の
起動を垂直走査に同期させるだけでなく、これらの描画
処理をLCD106の垂直走査の方向と同一の方向に走
査する手順にした。こうすることにより、描画の垂直走
査がLCD106の垂直走査を追い越すことがなく、ま
た、描画の垂直走査がLCD106の垂直走査に追い越
されることがないようにした。
【0077】つぎに、変換手段124を説明する。変換
手段124は表示に関係する信号を各構成手段に適した
形態にして供給する手段である。この手段はシステムク
ロック121と水平同期信号213と垂直同期信号21
2と水平表示期間信号211と垂直表示期間信号210
を入力し、フレームバッファ109からラスタバッファ
104へ1ラスタ分の画素データを転送することをDM
AC101に対して要求するDMA要求信号110と、
ラスタバッファ104に対してエントリ番号112を出
力するタイミングを示す画素リード信号116と、CP
LT105に対してエントリ番号112を取り込むタイ
ミングとRGB115を出力するタイミングを示す画素
クロック117と、LCD106に対して垂直走査と水
平走査のタイミングを1本の信号線で示す同期信号11
4を発生する。これらの変換を変換後の信号が入力され
る手段で実行してもよい。その場合には変換手段124
は不用となる。
【0078】以下、図2を用いてPWM信号群発生手段
102と表示制御信号変換手段124の構成について説
明する。
【0079】表示制御信号発生手段102は、システム
クロック121を8分の1に分周し8分周クロック22
0として出力する1/8分周器204と、8分周クロッ
ク220をクロックとして使用し垂直表示期間信号21
0を出力する第1のPWMタイマ200と、システムク
ロック121をクロックとして使用し水平表示期間信号
211を出力する第2のPWMタイマ201と、8分周
クロック220をクロックとして使用し垂直同期信号2
12を出力する第3のPWM202タイマと、システム
クロック121をクロックとして使用し水平同期信号2
13を出力する第1のPWMタイマ203とを含む。各
PWMタイマは第2のバス127に接続され、CPU1
00がこの第2のバス127を介して各PWM信号の周
期と位相とパルス幅を指定する。
【0080】第1のPWMタイマ200は前述の第1の
割り込み信号130を発生する。この信号が示す割り込
み要求は、垂直表示期間信号210が示す垂直表示期間
の開始時点と終了時点で発生する。言い換えると、垂直
表示期間の開始時点は垂直表示期間信号210の立ち下
がり時、垂直表示期間の終了時点は垂直表示期間信号2
10の立ち上がり時である。
【0081】変換手段124は、システムクロック12
1を入力しこれを3分の1に分周して画素クロック11
7として出力する画素クロック発生手段205と、画素
クロック117と垂直表示期間信号210と水平表示期
間信号211から画素リード信号116を発生する論理
手段と、垂直表示期間信号210と水平同期信号213
からDMA要求信号110を発生する論理手段と、垂直
同期信号212と水平同期信号213から同期信号11
4を発生する論理手段とを含む。各論理手段の内容は図
2に論理記号で示したものである。これらをTTL等の
ICを組み合わせて実現してもよいがボード面積が大き
くなる。そこで、本実施例ではこの変換手段124を1
個のフィールドプログラマブルロジックICにより実現
した。
【0082】第2から第4のPWMタイマは割り込み処
理を要求しないが、第1のPWMタイマと同一の構成で
あってもよい。本実施例では同一の構成のPWMタイマ
を4個使用した。以下ではこのPWMタイマの構成を第
1のPWMタイマ200を例として取り上げ、図3を用
いて説明する。
【0083】第1のPWMタイマ200は、リセット可
能な16ビットのタイマ300と、垂直表示期間信号2
10のパルス幅を記憶する16ビットの第1の比較レジ
スタ301と、垂直表示期間信号210の周期を記憶す
る16ビットの第2の比較レジスタ302と、第1の比
較レジスタ301の値とタイマ300の値とを比較し両
者の一致と不一致を示す第1の一致信号308を出力す
る第1の比較器303と、第2の比較レジスタ302の
値とタイマ300の値とを比較し両者の一致と不一致を
示す第2の一致信号309を出力する第2の比較器30
4と、第1の一致信号308が一致を示したときセット
され第2の一致信号309が一致を示したときリセット
される垂直表示期間信号210を出力するRSフリップ
フロップ305と、第1の一致信号308が一致を示し
たときと第2の一致信号309が一致を示したときにC
PU100に割り込み処理を要求する割り込み制御手段
306を含む。この割り込み処理の要求は第1の割り込
み信号130によりCPU100に通知される。
【0084】タイマ300は第2のバス127に接続さ
れCPU100により初期値を設定される。この初期値
が垂直表示期間信号210の位相を定める。第1の比較
レジスタ301は第2のバス127に接続されCPU1
00により垂直表示期間信号210のパルス幅を設定さ
れる。第2の比較レジスタ302は第2のバス127に
接続されCPU100により垂直表示期間信号210の
周期を設定される。割り込み制御手段306は第2のバ
ス127に接続されCPU100により第1の一致信号
308が一致を示したときに割り込み処理を要求するか
否かと第2の一致信号309が一致を示したときに割り
込み処理を要求するか否かとを設定される。周期とパル
ス幅を設定するとき、タイマ300の値が0からクロッ
クを計数するため、所望の時間をクロックの周期で割っ
た値から1引いた値を設定する。以上、図2と図3を用
いてLCD106との同期に関する信号とその発生方法
について説明した。各信号の関係をタイミングチャート
にまとめて図4に示した。ここで、LCD106の画面
を基準にして、その上方に水平走査に関係する信号のタ
イミングチャートを右方向に時間が進行するものとして
記した。また、LCD106の画面を基準にして、その
左方に垂直走査に関係する信号のタイミングチャートを
下方向に時間が進行するものとして記した。ここで、シ
ステムクロック121は20MHzであるから、時間の
最小単位を0.05 マイクロ秒とした。このためNTS
C規格から外れてしまうが、LCD106の同期引込範
囲内に各信号の周期と位相とパルス幅を治めた。
【0085】水平走査に関係する信号などについて説明
する。
【0086】水平同期信号213は水平周期を63.6
マイクロ秒としパルス幅を4.7マイクロ秒とし位相差
を0マイクロ秒とした。これらの値はNTSC規格の近
似値である。この水平同期信号213を発生するために
第4のPWMタイマ203の第2の比較レジスタ302
と第1の比較レジスタ301とタイマ300に1271
と93と0を設定した。ここでシステムクロック121
を3分周した画素クロック117と、この水平同期信号
213との位相差が常に一定でなければ表示画面に歪み
が生じる。これを避けるために水平周期を画素クロック
117の周期の整数倍にした。
【0087】水平表示期間信号211は水平同期信号2
13と同じ周期であり、パルス幅を画素クロック117
の320サイクル分である48.0 マイクロ秒とし位相
差を55.8 マイクロ秒とした。この水平表示期間信号
211を発生するために第2のPWMタイマ201の第
2の比較レジスタ302と第1の比較レジスタ301と
タイマ300に1270と959と1116を設定し
た。
【0088】DMA要求信号110は垂直表示期間信号
210がローレベルのとき、すなわち垂直方向の表示期
間の間のみ水平同期信号213と同一の波形になる。こ
の要求により第1のバス107はDMAC101によっ
てラスタの転送に使用される。画素リード信号116は
垂直表示期間信号210がローレベルであり、かつ、水
平表示期間信号211が水平表示期間を表した場合のみ
画素クロック117と同一波形になる。
【0089】垂直同期信号212は垂直周期を1672
6.8 マイクロ秒としパルス幅を190.8 マイクロ秒
とし位相差を0マイクロ秒とした。この垂直周期の値は
NTSC規格から0.2% ほど離れているが、LCD1
06の同期引込範囲内にであった。この垂直同期信号2
12を発生するために第3のPWMタイマ202の第2
の比較レジスタ302と第1の比較レジスタ301とタ
イマ300に41816と476と0を設定した。
【0090】垂直表示期間信号210は垂直同期信号2
12と同じ周期であり、パルス幅を水平周期の240サ
イクル分である15264マイクロ秒とし位相差を16
345.2 マイクロ秒とした。この垂直表示期間信号2
10を発生するために第1のPWMタイマ201の第2
の比較レジスタ302と第1の比較レジスタ301とタ
イマ300に41816と2702と40863を設定
した。
【0091】第1の割り込み信号130は垂直表示期間
信号210の立ち上がりと立ち下がりで発生する。これ
によりCPU100は前述の割り込み処理を実行する。
【0092】以下、文字描画の処理時間を短縮する実施
例について図面を用い説明する。
【0093】図5は本発明の文字描画装置を各機能ブロ
ックに分解して図示したものである。文字コードと文字
位置データが入力として与えられ、位置変更回路は、文
字位置データをもとにボールド文字を描画する位置を計
算し(ボールド文字位置データ)、多値展開・描画回路
に出力する。また、ビットマップ記憶回路は、文字のビ
ットマップデータを蓄えていて、文字コードに応じたビ
ットマップデータを2値ボールド回路に出力する。2値
ボールド回路は、ビットマップデータをもとにボールド
ビットマップデータを作成し、ボールドビットマップデ
ータ記憶回路に出力する。多値展開・描画回路は、ボー
ルドビットマップデータ記憶回路に蓄えられたボールド
ビットマップデータを予め設定された色情報に多値展開
し、フレームバッファ内のボールド文字位置データに指
定された場所に出力する。さらに、多値展開・描画回路
は、ビットマップデータを多値展開し、フレームバッフ
ァ内の文字位置データに指定された場所に出力する。こ
の出力は、フレームバッファ内に記憶される。次に、図
5の2値ボールド回路がボールドビットマップデータを
作成する課程について例題を用いて詳細に説明する。図
8は、漢字「五」のビットマップデータの一例である。
図9に2値ボールド回路のブロック図を示す。データ1
生成回路は、ビットマップデータを受け取るとビットマ
ップデータを1ビット右にシフトし、ORゲート1に出
力する(データ1)。データ2生成回路は、ビットマッ
プデータを受け取るとビットマップデータを1ビット左
にシフトし、ORゲート1に出力する(データ2)。O
Rゲート1は、ビットマップデータとデータ1とデータ
2の論理和を算出し、(これをシフトデータとする。)
記憶回路1に引き渡す。ORゲート2は、記憶回路1と
記憶回路2と記憶回路3の内容の論理和を算出し、ボー
ルドビットマップデータ記憶回路に出力する。ボールド
ビットマップデータを出力すると、出力終了信号により
記憶回路2の内容は記憶回路3に、記憶回路1の内容は
記憶回路2に転送される。以上のような方法で図8に示
した2値ビットマップデータから2値ボールド回路にて
作成されるボールドビットマップデータを図10に示
す。位置変更回路は、文字位置データ(X,Y)からボ
ールドビットマップデータを描画するボールド文字位置
データを算出する。例えば、文字位置データがビットマ
ップデータの左下の位置を示す座標であるとすれば、図
中丸印の位置が文字位置データで示される座標となるこ
とから、(X−1,Y−1)をボールド文字位置データ
として算出する。多値展開・描画回路は、ボールド文字
位置データからフレームバッファのアドレスを算出し、
ボールドビットマップデータを多値展開し、フレームバ
ッファに出力する。ボールド文字描画後、2値に対応す
る色情報を変更する。最後に多値展開・描画回路は、文
字位置データからフレームバッファのアドレスを算出
し、ビットマップデータを多値展開し、フレームバッフ
ァに出力する。
【0094】以上説明したように、本実施例によれば、
2値ボールド回路とボールドビットマップデータを記憶
するボールドビットマップデータ記憶回路をとボールド
文字を描画する位置を算出する位置変更回路を設けたこ
とにより、容易にボールドビットマップデータを生成す
ることをできるようにした。そのため、縁取り文字を描
画するとき、従来は9回の描画が必要であったが、2回
の描画で縁取り文字を描画することが可能になるため、
処理時間を約7割低減することができる。
【0095】上記実施例の高速化手法を単機能手順12
0に適用した実施例を説明する。
【0096】図11にCPUで縁取り文字描画処理を実
施した場合の処理フローを示す。文字コードが入力され
ると、CPUはビットマップデータを読みだし、2値の
ボールドビットマップデータを生成し、主メモリあるい
は内蔵SRAM内に格納する。次にボールド文字を描画
するボールド文字位置データを算出し、確保しておく。
次に、2値ボールドビットマップデータを主メモリある
いは内蔵SRAMから読みだし、CPUで多値展開し、
ボールド文字位置データで指定された場所に描画する。
次にドローラブル構造体の色情報を書き変える。そし
て、ボールドビットマップデータを読みだし、CPUで
多値展開し、文字位置データで指定された場所に描画す
るものである。次に、2値のボールドビットマップデー
タをCPUで生成する方法について説明する。図12に
示すように2値ボールド回路内の記憶回路1,2,3に
相当するものとして主メモリあるいは内蔵SRAM内に
領域を確保する。図13に2値ボールドビットマップデ
ータ生成の処理フローを示す。文字コードが入力される
とビットマップデータを読みだし、2個のレジスタにコ
ピーする。ビットマップデータ1をCPUの演算器で右
にシフト(これをデータ1とする。)する。データ1と
ビットマップデータをCPUの演算器で論理和を算出
(これをORデータ1とする。)する。ビットマップデ
ータ2をCPUの演算器で左にシフト(これをデータ2
とする。)する。データ2とORデータ1をCPUの演
算器で論理和を算出(これをシフトデータとする。)す
る。シフトデータを記憶回路1に相当する場所に格納す
る。シフトデータと記憶回路2の内容をCPUの演算器
で論理和を算出(これをORデータ2とする。)する。
ORデータ2と記憶回路3の内容をCPUの演算器で論
理和を算出(ボールドビットマップデータ)する。ボー
ルドビットマップデータをメモリに格納する。次に記憶
回路2の内容を記憶回路3が格納されていた場所に転送
し、記憶回路1の内容を記憶回路2が格納されていた場
所に転送する。
【0097】以上説明したように、本実施例によれば、
CPUでも容易にビットマップデータからボールドビッ
トマップデータを生成することができる。そのため、縁
取り文字を描画するとき、従来は9回の描画が必要であ
ったが、ボールドビットマップデータをCPUで生成し
ても処理時間を低減することができる。
【0098】以下、画素データの多値展開を伴う描画の
処理時間短縮に関する実施例を図面を用いて説明する。
【0099】図14は本発明の多値展開描画装置を各機
能ブロックに分解して図示したものである。位置データ
が入力として与えられ、アドレス演算回路は位置データ
をもとにフレームバッファ内の描画位置のアドレスを計
算し(アドレスデータ)、描画回路に出力する。ドット
データ生成回路はハードウェア・描画情報を受け取ると
1ピクセルに対応するデータのビット数から多ドット選
択回路が選択すべきドット数を算出(ドットデータ)
し、ドットデータ記憶回路に出力する。多ドット選択回
路は、位置データをもとにドットデータで指定されたド
ット数の2値ビットマップデータを2値ビットマップ記
憶回路から読みだし、描画回路に出力する。描画回路
は、多ビット選択回路からの出力データを多値パターン
を選択する情報として用いて、該当する多値パターンを
多値パターン記憶回路から引き出し、先にアドレス演算
回路で計算されたアドレスをもとにフレームバッファに
多値パターンを出力するものである。次に、多値パター
ン発生回路と多値パターン記憶回路について例題を用い
て詳細に説明する。図17に多値パターン発生回路の機
能ブロック図を示す。図17に示すように、作成パター
ンデータ生成回路は、ドットデータを受け取ると、作成
パターンデータを算出する。例えば、ドットデータが
“4”の場合は、4ビットで表現可能なH’0からH’
Fを作成パターンデータとして算出する。作成パターン
データは、ビット選択信号により順次読みだされ、その
情報で色情報である色1データあるいは色0データを選
択し、ビット選択信号に従い、多値パターンデータバッ
ファに出力する。ビット選択信号がすべてのビットを選
択すると多値パターンデータバッファのデータが作成パ
ターンデータに従った多値パターン記憶回路の番地に出
力する。そして、作成パターンデータの最大値まで多値
パターンの生成を繰り返し、生成した多値パターンデー
タを多値パターン記憶回路の所定の位置に格納するもの
である。図18に本処理の説明図を示す。ここでは、パ
ターン5を例にとって説明する。作成パターンデータ生
成回路が“5”を生成するとビット選択信号はまずビッ
ト0を選択する。ここで、色0=8,色1=9であると
する。“5”のビット0は“1”であるから、色1の色
情報である“8”が選択され、多値パターンデータバッ
ファの最下位の箇所に格納される。以上の処理をビット
3まで繰り返すと、多値パターンデータバッファの内容
は“8989”となり、多値パターンデータが完成す
る。多値パターンデータが完成すると、多値パターンデ
ータバッファの内容が多値パターン記憶回路の5番地に
出力されるものである。すなわち、作成パターンデータ
の値に対応した場所に作成パターンデータの多値パター
ンデータが蓄えられている。図19に以上の方法で生成
した多値パターン記憶回路の一例を示す。以上、多値パ
ターンの発生回路と発生方法について述べたが、本処理
は、描画処理毎に実行する必要はなく、データ0とデー
タ1に対応する色情報を変更したときのみ実行すればよ
い。すなわち、1度多値パターンを生成すれば、色情報
を変更しないかぎり、描画時は2値ビットマップデータ
に従った多値パターンデータを引き出し、描画するのみ
でよい。
【0100】以上説明したように、本実施例によれば、
多ドットを同時に選択する多ドット選択回路と多値デー
タを発生する多値パターン発生回路と多値パターン発生
回路で生成した多値パターンを記憶する多値パターン記
憶回路を設けたことにより、1ドット単位で多値展開及
び描画処理することなく、オフラインで多値展開処理を
実行でき、複数のドットを同時に扱うことができるよう
にした。そのため、描画時間は、およそドットデータ分
の1、多値展開は色情報を変更しないかぎり不要とする
ことができ、処理時間を大幅に低減することができる。
【0101】次に上記の実施例における多値展開の高速
化手法を単機能手順120に適用した実施例を説明す
る。
【0102】図20にCPUで多値展開・描画処理を実
施した場合の処理フローを示す。ハードウェア・描画情
報が入力されるとドットデータを生成し、レジスタに確
保しておく。位置データが入力されるとアドレスを算出
し、レジスタに確保しておく。次に2値ビットマップ記
憶回路から位置データで示された場所のデータをドット
データで示されたドット数だけ読みだす(多値パターン
選択情報)。次に、主メモリあるいは内蔵SRAM内に
蓄えられた多値パターンデータを多値パターン選択情報
で示された番地を用いて引き出し、先に算出したフレー
ムバッファのアドレスに描画する。次に多値パターンデ
ータ発生処理について説明する。図21にCPUで多値
パターンを発生する場合の処理フローを示す。作成パタ
ーンデータを作成し、メモリに格納されている色情報を
読みだし、色情報をCPU内部のレジスタに確保する。
次に色情報をコピーし、CPUの演算器で色情報をシフ
トする(シフトデータ)。次にシフトデータと元の色情
報をCPUの演算器で論理和を算出し、レジスタに確保
する。これを多値パターンデータが完成するまで繰り返
す。多値パターンデータが完成したら主メモリあるいは
内蔵SRAMに格納する。以上の処理を作成パターンデ
ータが終了するまで繰り返すことにより多値パターンデ
ータを生成することができる。図22に主メモリあるい
は内蔵SRAM内の多値パターンデータの一例を示す。
【0103】以上説明したように、本実施例によれば、
CPUでも容易に多値パターンを生成することができ
る。また、多値パターンデータをメモリに配置したた
め、オフラインで多値展開処理を実行でき、複数のドッ
トを同時に扱うことができるようにした。そのため、多
値展開・描画処理をCPUで実行しても性能を低下させ
ることがない。
【0104】以下、図形データの座標変換に伴う処理時
間を短縮する実施例ついて図面を用い説明する。
【0105】図23は本発明の座標変換処理装置を各機
能ブロックに分解して図示したものである。変換係数算
出データが入力として与えられ、係数演算回路は変換係
数算出データをもとに座標変換に必要な係数データ(k
0〜k6)と変換係数算出データの精度から精度パラメ
ータを算出し、係数記憶回路に出力する。図24に係数
記憶回路の内容を示す。変換演算回路は、係数記憶回路
に精度パラメータが入力されると積和演算を実行する。
さらに、変換演算回路は、算出された積和演算結果に対
し、精度パラメータを用いてスケーリングし、それによ
り得られた変換座標データを変換座標記憶回路に出力す
るものである。図25に変換座標記憶回路の内容を示
す。
【0106】次に、変換演算回路について説明する。図
26に変換演算回路の機能ブロック図を示す。図27に
2次元の座標変換の行列式を示す。変換演算回路は、変
換開始信号が入力されると係数記憶回路から係数k0を
読みだし、xと乗算し、(この結果をmul1 とする。)
係数k3を係数記憶回路から読みだし、yと乗算し、
(この結果をmul2 とする。)mul1 とmul2 を加算す
る。次に、精度パラメータに応じて演算結果をシフトし
(この結果をadd1 とする。)、係数k6を係数記憶回
路から読みだし、add1 と加算し、変換座標データ群記
憶回路に出力する。以上でx座標の座標変換が終了す
る。次に、係数記憶回路から係数k1を読みだし、yと
乗算し、(この結果をmul3 とする。)係数k4を係数
記憶回路から読みだし、yと乗算し、(この結果をmul
4とする。)mul3 とmul4を加算する。次に、精度パ
ラメータに応じて演算結果をシフトし(この結果をadd
2 とする。)、係数k7を係数記憶回路から読みだ
し、add2 と加算し、変換座標データ群記憶回路に出力
する。以上でy座標の座標変換が終了する。変換座標デ
ータ群記憶回路と変換座標データ群記憶回路の内部デー
タの関係を図28に示す。変換演算回路は順次座標デー
タ群記憶回路のデータがなくなるまで以上の変換演算処
理を繰り返す。変換座標データは、座標データ群記憶回
路に格納されている座標データの先頭アドレスからの距
離と変換座標データ群記憶回路の先頭アドレスからの距
離が等しい場所に格納されている。以上、係数演算回路
による精度パラメータの算出方法について述べたが、本
処理は、描画処理毎に実行する必要はなく、変換係数算
出データを変更したときのみ実行すればよい。
【0107】以上説明したように、本実施例によれば、
変換係数算出データから変換係数と共に精度パラメータ
を算出する係数演算回路と、変換演算後に精度パラメー
タから演算結果をシフトすることによりスケーリングを
実施する変換演算回路を設けたことにより、データの劣
化を低減するようにした。また、変換演算は固定小数点
で実行できることから処理時間を大幅に低減することが
できる。
【0108】次に上記実施例の高速化手法を単機能手順
120に適用した実施例を説明する。
【0109】図29にCPUで座標変換処理を実施した
場合の処理フローを示す。座標データ群は図30に示す
ように主メモリあるいは内蔵SRAMに格納されてい
る。変換係数算出データが入力されるとCPUの演算器
は座標変換に必要な係数データ(k0〜k6)を算出
し、主メモリあるいは内蔵SRAMに出力する。さら
に、CPUの演算器は変換係数算出データの精度から精
度パラメータを算出し、主メモリあるいは内蔵SRAM
に出力する。図31に係数データと精度パラメータのメ
モリ配置図を示す。次に、座標データと主メモリあるい
は内蔵SRAMに格納されている係数データを読みだ
し、変換演算を実行する。さらに、算出された積和演算
結果に対し、精度パラメータを用いてスケーリングし、
それにより得られた変換座標データを主メモリあるいは
内蔵SRAMに出力する。図32に変換座標データのメ
モリ配置図を示す。以上の処理は、描画処理毎に実行す
る必要はなく、変換係数算出データを変更したときのみ
実行すればよい。
【0110】次に、変換演算について説明する。図33
に変換演算の処理フローを示す。変換演算は、主メモリ
あるいは内蔵SRAMから係数k0を読みだし、xと乗
算し、(この結果をmul1 とする。)係数k3を主メモ
リあるいは内蔵SRAMから読みだし、yと乗算し、
(この結果をmul2 とする。)mul1 とmul2 を加算す
る。次に、精度パラメータに応じて演算結果を*シフト
し(この結果をadd1 とする。)、係数k6を主メモリ
あるいは内蔵SRAMから読みだし、add1 と加算し、
主メモリあるいは内蔵SRAMに出力する。以上でx座
標の座標変換が終了する。次に、主メモリあるいは内蔵
SRAMから係数k1を読みだし、yと乗算し、(この
結果をmul3 とする。)係数k4を主メモリあるいは内
蔵SRAMから読みだし、yと乗算し、(この結果をmu
l4 とする。)mul3 とmul4 を加算する。次に、精度
パラメータに応じて演算結果をシフトし(この結果をad
d2とする。)、係数k7を主メモリあるいは内蔵SR
AMから読みだし、add2 と加算し、主メモリあるいは
内蔵SRAMに出力する。以上でy座標の座標変換が終
了する。そして順次座標データがなくなるまで以上の変
換演算処理を繰り返す。
【0111】以上説明したように、本実施例によれば、
変換係数算出データから変換係数と共に精度パラメータ
を算出すること、変換演算後に精度パラメータから演算
結果をシフトすることによりスケーリングを実施するこ
とにより、データの劣化を低減するようにした。また、
変換演算は固定小数点で実行できることから処理時間を
大幅に低減することができる。
【0112】続いて多機能手順119と単機能手順12
0と表示制御手順129の詳細について説明する。以降
ではこれら手順を総称してライブラリと呼ぶ。
【0113】図34にライブラリで扱う座標系を示す。
座標系は描画座標系と転送元座標系の二つの座標系から
構成される。描画座標系は、描画コマンドの描画先とな
る領域であり、ほとんどの描画コマンドはメモリ上のこ
の領域にデータをライトすることにより実行される。転
送元描画座標系は、主に複写コマンドの転送元となる座
標系として使用される。通常、座標系は、原点を基準に
無限であるが、メモリの量は有限であることから描画座
標メモリ幅(DMW)と転送元座標メモリ幅(SMW)
でX方向の距離を限定する。
【0114】次に、座標系とメモリ領域の関係について
例を用いて説明する。図35に座標とメモリ領域の関係
を示す。領域0〜領域9は座標系での1単位を示す。す
なわち、領域n0は座標(0,0)、領域n1は座標
(1,0)、領域n2は座標(2,0)、領域n3は座
標(3,0)、領域n4は、座標(4,0)、領域n5
は座標(0,1)、領域n6は座標(1,1)領域n7
は座標(2,1)領域n8は座標(3,1)、領域n9は
座標(4,1)を示す。描画座標原点(DORG)は、描画
座標の原点のメモリ上の位置を規定し、物理アドレスを
設定する。すなわち、描画座標原点(DORG)には領
域n0の物理アドレスが格納される。先に述べたよう
に、描画座標メモリ幅(DMW)はX方向の距離を規定
するものであり、その距離はメモリのバイト数に変換し
た数値として定義する。8ビット/ピクセルを例にとっ
て説明すると、実際のメモリ上では、座標がX方向に1
大きくなるに従って、アドレスが1バイト増加し、y方
向に1大きくなるに従って、描画座標メモリ幅だけ、ア
ドレスが減少する様に配置される。
【0115】転送元描画座標は、主に複写コマンドの転
送元となる座標として使用される。座標とメモリ領域の
関係は描画座標と同様である。
【0116】図36と図37にドローラブル構造体のメ
ンバーを示す。
【0117】ドローラブル構造体は、描画関数のモード
やパラメータの設定値の集合体である。各描画関数はこ
のドローラブル構造体内のその関数に関係するメンバー
を参照し、その動作設定あるいはデータを用いて描画を
実行する。従って、描画関数を使用する場合、この構造
体の関数が参照するメンバーに設定値をあらかじめ入力
しておく必要がある。なお、構造体内のメンバーは全て
32ビットデータである。メンバーの中には特に32ビ
ットを必要としないデータも含まれているが、グラフィ
ックスシステム内のプロセッサが、メンバーをリード、
ライトする際に、そのリードポインタ,ライトポインタ
を管理し易い様に、全てのデータのサイズを32ビット
に統一している。
【0118】図38に実メモリ上でのドローラブル構造
体の配置状態を示す。ドローラブル構造体は、ポインタ
prm で示されるアドレスを先頭とし、図36と図37に
示したメンバの順に配置される。各メンバは4バイトの
容量をもつ。先に述べたように、ドローラブル構造体内
のPADRは塗りつぶしパターン設定するPRAM0~15の領
域の先頭アドレスを示す。従って、PADRの値を先頭
アドレスする領域が、そのドローラブルのパタン設定領
域として確保される。関数ごとに必要とするドローラブ
ルをあらかじめ定義する場合などは、複数のドローラブ
ルを使用すると便利である。このような、複数ドローラ
ブルの管理は、prm ,PADRの各ポインタを用いるこ
とによって実現する。本システムで実行される描画関数
は、関数のパラメータとしてprm を入力することによ
り、どのドローラブル構造体を参照するかを、関数の機
能として選択する。たとえば、描画関数Aでドローラブ
ル構造体Aのパラメータを使用したい場合にはポインタ
prm(A)を描画関数Aに与え、描画関数Bでドローラブ
ル構造体Bのパラメータを使用したい場合にはポインタ
prm(B)を描画関数Bに与えればよい。
【0119】図39はドローラブル構造体のメンバーで
ある、AXMAX,AYMAX,AYMIN,AXMI
Nのビット割付である。AXMAX,AYMAX,AYMI
N,AXMINは、クリッピング領域を規定するための最
小のX座標(AXMIN)、最小のY座標(AYMI
N)、最大のX座標(AXMAX)、最大のY座標(A
YMAX)を定義する。32ビットの内、下位16ビッ
トが有効で、上位16ビットには下位16ビットを符号
拡張した値を格納する。
【0120】図40にAXMAX,AYMAX,AYM
IN,AXMINの座標系での意味を示す。与えられた
描画座標(X、Y)に対して、AXMIN≦X≦AXM
AX,AYMIN≦Y≦AYMAXの条件を満足する図
中ハッチング部分はクリッピング領域内、それ以外の場
合はクリッピング領域外と判定される。なお、条件式の
様にクリッピング領域境界上は、クリッピング領域とし
て判定される。
【0121】図41はDEPX,DEPY,DEPのビ
ット割付である。DEPX,DEPY,DEPは、線分を描
画する描画コマンド実行時に、その線分の終点の情報を
記憶するための領域である。描画座標のX座標はDEP
Xに、描画座標のY座標はDEPYに、その座標のメモ
リ上での物理アドレスはDEPに記憶される。これらの
情報は、特に継続直線を描画する関数で使用される。
【0122】図42にDEPX,DEPY,DEPの座
標系での意味を示す。継続直線とは、事前に描画された
線分の終点を始点とし、継続直線関数で指定した終点ま
でを直線で描画する関数である。図中点Aから点Bの点
線部分が事前に描画された直線であり、継続直線関数は
点Bの情報であるDEPX,DEPY,DEPを参照
し、始点の情報として使用し、点Cまでを直線で描画す
る。
【0123】図43はCL0R/FCLRのビット割付
である。本システムの描画関数は、2色を同時に描画す
ることができる。CL0R/FCLRは同時に描画可能
な2色の内の1色を定義する。点描画や線描画のパター
ンを示すLRAMと台形塗りつぶしや閉領域塗りつぶし
で使用する塗りつぶしパターンを示すPRAM内のデー
タ“0”に対応する描画色は本領域に定義する。また、
本領域は矩形領域塗りつぶし関数(FRCT関数)で用
いる塗りつぶし色(FCL)を定義する領域でもある。
32ビットの内、下位8ビットが有効で、上位24ビッ
トには0を設定する。
【0124】図44はCL1Rのビット割付である。図
に示したビット割付は8ビット/画素の例である。1画
素に割り当てるビット数により個々に閉めるビット数が
変わることはやぶさかではない。CL1Rは同時に描画
可能な2色の内のその他の1色を定義する。点描画や線
描画で使用する線種パターンを示すLRAMと台形塗り
つぶしや閉領域塗りつぶしで使用する塗りつぶしパター
ンを示すPRAM内のデータ“1”に対応する描画色は
本領域に定義する。32ビットの内、下位8ビットが有
効で、上位24ビットには0を設定する。
【0125】図45はCCMPR/EDGRのビット割
付である。色比較演算において比較対象となる色データ
を定義する。また、閉領域塗りつぶし関数おいて、閉領
域を限定するための境界色(EDGR)を定義する。色
比較演算とは、描画関数で生成した描画色と本領域で定
義している色データを比較し、一致した場合のみ描画す
る、あるいは一致しない場合のみ描画するという条件に
より描画を制限する機能である。これにより、描画先の
特定部分を描画禁止する等の制御が可能になる。32ビ
ットの内、下位8ビットが有効で、上位24ビットには
0を設定する。
【0126】図46はDMRのビット割付である。DM
Rは描画関数のクリッピング管理の有無,転送元領域モ
ード,描画演算を行なうための色比較モードとデータ演
算モードを定義するもので、CLIP,SMD,CCM
PM,OPMのフィールドから構成されている。32ビ
ットの内、下位8ビットが有効である。
【0127】図47,図48,図49はDMR内のCL
IPフィールド,SMDフィールド,CCMPMフィー
ルドのビット割付と、その意味を示したものである。CL
IPフィールドはDMRのビット0に位置する。このビッ
トが0のときは、各関数はクリッピング判定を行なわ
ず、その関数で指定された範囲について全て描画を実行
する。また、1のときはクリッピング判定を実施し、ク
リッピング領域内だけを描画範囲とする。SMDはDM
Rのビット1に位置する。SMDは転送元座標のデータ
の表現方式を示すものである。転送元座標のデータは座
標上の一画素を8ビットで表現す多値データと、1ビッ
トで表現する2値データの二つの表現方法ある。SMD
が0のとき転送元座標のデータは多値データとして扱わ
れ、またSMDが1のときは転送元座標のデータは2値
データとして扱われる。CCMPM はDMRのビット3,ビ
ット2に位置し、二つのビットの1,0の組み合わせで
色比較のモードを決定している。ビット3,ビット2が
それぞれ0,0のとき、または1,0のときは描画関数
が生成した描画色で無条件に描画を実行する。0,1の
ときは生成した描画色S’と、図45に示したCCMP
R/EDGRに設定された色との比較結果が一致した画
素のみ描画する。また、1,0のときは生成した描画色
S’と、図45に示したCCMPR/EDGRに設定さ
れた色との比較結果が一致しない画素のみ描画する。
【0128】図50はDMRのOPMフィールドのビッ
ト割付と、その意味を示したものである。OPMはDM
Rのビット7,6,5,4に配置され、これらビットの
組み合わせによりデータ演算モードを決定するものであ
る。データ演算とは、描画関数で生成した描画色S’、
描画先に既に描画されている描画色Dから、実際に描画
する描画色D’を求める論理演算である。論理演算の種
類は、AND,OR,XOR,NOT,all0,all1等
の演算子から構成される図に示す16通りである。
【0129】図51はLRAMのビット割付である。L
RAMは線種情報を定義する。描画関数は線種情報をL
SBからMSBへと参照し、その情報が“0”のときは
図43のCL0R/FCLRに設定された描画色で描画
する。また情報が“1”のときは図44のCL1Rに設
定された描画色で描画する。なお、参照開始ビットの設
定及び参照時のカウンタの増分は線種制御レジスタ(L
SCR)にて定義する。上位16ビットには、下位16
ビットと同様のデータを設定する。
【0130】図52はDMWRのビット割付である。D
MWRでは、描画座標系のX座標の距離を規定する。下
位16ビットが有効であり、上位16ビットには下位1
6ビットを符号拡張した値を格納する。
【0131】図53はDORGRのビット割付である。
DORGRには、描画座標の原点に対応するメモリ上の
物理アドレスを設定する。
【0132】図54はSMWRのビット割付である。S
MWRには、転送元座標の描画座標系のX座標の距離を
規定する。下位16ビットが有効であり、上位16ビッ
トには下位16ビットを符号拡張した値を格納する。
【0133】図55はSORGRのビット割付である。
SORGRには、転送元座標の原点に対応するメモリ上
の物理アドレスを設定する。
【0134】図56はWMASKRのビット割付であ
る。WMASKRは、メモリに描画を行なうときに多値
の画素データにおいて描画するビットと描画しないビッ
トを制御する情報を定義する。描画する部分に“1”、
書き込もうとしている色データを描画せずに描画しよう
としている場所にすでにある色データの情報を維持する
部分に“0”を設定する。下位8ビットが有効で、上位
24ビットには0を設定する。
【0135】図57はRMASKRのビット割付であ
る。RMASKRは、色比較演算を行なうときに比較の
対象とするビットを制御する情報を定義する。比較対象
とするビットに“1”、比較対象としないビットに
“0”を設定する。下位8ビットが有効で、上位24ビ
ットには0を設定する。
【0136】図58はLSCRのビット割付を示したも
のである。LSCRは、点描画及び線描画実行時に参照
する線LRAMの参照開始ビットを示す線種ポインタと
線種ポインタの増分を定義するもので、線種ポインタ増
分LSPI,線種ポインタLSP,線種ポインタ小数部
LSPFから構成されている。
【0137】図59,図60,図61は、LSPのビッ
ト割付とその意味、線種ポインタLSPの動作例、LS
PFのビット割付とその意味を示したものである。線種
ポインタ増分LSPIは、描画実行毎の線種ポインタの
増分を設定する。即ち、現在参照しているLRAMのビ
ットから、次の参照ビットを何ビット左に移動させるか
を決める働きをする。このフィールドは、点描画及び線
描画関数発行前に設定する必要がある。線種ポインタL
SPは、線種RAM(LRAM)の現参照ビット位置を
示す。点描画及び線描画関数発行前に設定する必要があ
る。線種ポインタ小数部LSPFは、線種ポインタの小
数部を定義するもので、描画実行毎に線種ポインタ増分
が加えられる。累積値が1以上になると線種ポインタが
1増加する。点描画及び線描画関数発行前に初期値を設
定する必要がある。
【0138】図62,図63はPADRのビット割付
と、PRAMと座標の関係を示したものである。PAD
Rは、FTRAP関数とPAINT関数で使用する塗り
つぶしパターンへのポインタを定義するもので、FTR
AP関数及びPAINT関数の発行前に設定する。パタ
ーンRAM0〜15は、FTRAP関数とPAINT関
数で使用する塗りつぶしパターンを定義するもので、F
TRAP関数及びPAINT関数の発行前に設定する。図6
3のパターンRAMとこれらに、X方向32画素,Y方
向16画素の2値パターンを設定可能である。
【0139】図64はSMPRのビット割付である。S
MPRは、スタック禁止領域の下限フレームバッファの
物理アドレスを設定する。スタックは主に閉領域塗りつ
ぶし関数で使用されるが、塗りつぶす領域の複雑さによ
ってその容量は一定しない。従って、スタック禁止領域
を設けることによって、他のメモリ領域を破壊すること
を避けている。
【0140】図65はSYSINFのビット割付であ
る。このメンバーはBPP,MBSの二つのフィールド
から構成されており、それぞれ描画関数を使用するシス
テムの情報を設定する。図66に示したBPPはシステ
ムが1画素を何ビットで表現するかを設定する。ビット
1とビット0の組み合わせで、4,8,16,24ビッ
ト/画素のいずれかを選択する。また、図67に示した
MBSはシステムで使用するメモリのバス幅を設定する
フィールドでビット3、ビット2の組み合わせから、
8,16,32ビットのいずれかを選択する。
【0141】図68は描画関数一覧である。描画を実行
する描画関数は、多機能版と高速版、初期化関数に分類
される。多機能版が多機能手順119に相当する。高速
版と初期化関数が単機能手順120に相当する。図69
は各関数がサポートする機能を示したものである。クリ
ッピングは、描画をドローラブル構造体のAXMIN,
AYMIN,AXMAX,AYMAXの4点を頂点とす
る領域内のみで行なうための判定機能である。色比較
は、描画コマンドで生成した描画色とドローラブル構造
体のCCMPRに設定された描画色との比較結果によっ
て、描画を行なうか否かの判定機能である。リードマス
クは、色比較演算を行なう場合の、比較先の画素色にお
いて操作の対象となるビットを選択する機能である。デ
ータ演算は、描画コマンドで生成した描画色と、描画先
の既に設定されている描画色との論理演算により、描画
色を決定する演算機能である。ライトマスクは、描画を
行なう場合、多値の画素データにおいて操作の対象とな
るビットを選択する機能である。これらの機能は描画シ
ステムがドローラブル構造体を設定することにより使用
される。
【0142】図70,図71は関数とドローラブル構造
体の関係を示すもので、システムが関数を発行する前に
設定しなければならないメンバーについては○、その関
数を実行することにより設定されるメンバーを△、設定
する必要のないメンバーを×で示している。
【0143】多機能版は、クリッピング,色比較,リー
ドマスク,データ演算,ライトマスクの機能をサポート
しており、従来の描画プロセッサのほとんどの描画機能
を実行することが可能である。しかし、設定する必要の
あるドローラブルのメンバーも多い。
【0144】高速版は、機能の使用頻度に着目すること
により、機能の最適化を図り高速化を実現した描画関数
群である。実際の描画システムでは、描画関数の生成し
た色データを描画先に直接描画する場合がほとんどであ
るが、システムの安全性を高めるために描画可能領域を
限定するクリッピング処理は多く実行されている。その
ため、高速版はクリッピング、生成した色データを直接
描画する機能を持たせた。すなわち、実際の描画システ
ムでは、まれに出現する描画色の加工を汎用版で実行し
その他の大部分の処理を高速版で実行することにより高
性能なグラフィックスシステムを構築することができ
る。
【0145】また高速版には、二つの機能を統合するこ
とにより、関数コールのオーバヘッドを削減し、システ
ムとしての高速化を達成した関数もある。例えば、従来
の描画プロセッサの直線描画コマンドは、終点の描画を
行なわない。このため、終点の描画を行なうために、続
けて点描画コマンドの発行が必要であった。そこで、本
描画ライブラリでは従来の終点を描画しない直線描画関
数と共に終点を描画する直線描画関数を設けた。それに
より、このオーバヘッドを削減することができる。初期
化関数は、描画を実行する前に、多値展開データや、座
標変換の係数など描画に必要なデータを事前に定義する
関数である。
【0146】以下、描画関数の詳細について説明する。
説明途中で用いるDOT(prm,x,y)の様な記号は、
関数名(入力パラメータ1,入力パラメータ2,入力パ
ラメータ3)を意味する。
【0147】図72に、点描画コマンド(DOT関数)
の描画例を示す。
【0148】DOT(prm,x,y); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値 x;描画する点のX座標 y;描画する点のY座標 DOT関数は(x,y)で指定された場所に色比較及び
データ演算及びライトマスクをして点を描画する関数で
ある。戻り値は正常終了の場合は“0”,エラー発生の
場合は“−1”である。設定が必要なドローラブル構造
体は、CL0R,CL1R,CCMPR,WMASK
R,RMASKR,CLIP,CCMP,OPM,AX
MIN,AXMAX,AYMAX,AYMIN,LSC
R,LRAM,DMWR,DORGRである。前記ドローラ
ブル構造体のメンバに正しい値を設定しない場合の動作
は保証しない。また、クリッピング領域の境界上の点は
描画する。ここで、クリッピング領域をAXMIN=
3,AYMIN=3,AXMAX=11,AYMAX=8と
する。図中点線の内部がクリッピング領域内である。た
とえば、入力パラメータが(prm,7,5)(点A)であ
るとすると,DOT関数は点Aを描画する。入力パラメ
ータが(prm,9,3)(点B)であるとすると、点Bは
クリッピング領域の境界上に位置していることからDO
T関数は点Bを描画する。入力パラメータが(prm,1
1,2)(点C)であるとすると、点Cはクリッピング
領域外であるからDOT関数は描画しない。本来、点C
は描画しないが、ここでは入力パラメータによる位置と
クリッピング領域の関係を明確にするため、ハッチング
して図示した。
【0149】図73に直線描画コマンド(LINE関
数)の描画例を示す。
【0150】LINE(prm,xs,ys,xe,y
e); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 xs,ys;描画を開始する座標。 xe,ye;描画を終了する座標。
【0151】LINE関数は、(xs,ys)で指定さ
れた始点から(xe,ye)で指定された終点に向かっ
て色比較及びデータ演算及びライトマスクをして直線を
描画する。なお、終点は描画しない。戻り値は正常終了
の場合は“0”,エラー発生の場合は“−1”である。
また、クリッピング領域外にある始点からクリッピング
領域内にある終点を指定すると、クリッピング領域に存
在する線だけを描画する。クリッピング領域の境界上の
点は描画する。設定が必要なドローラブル構造体は、C
L0R,CL1R,CCMPR,WMASKR,RMA
SKR,CLIP,CCMP,OPM,AXMIN,AXM
AX,AYMAX,AYMIN,LSCR,LRAM,DM
WR,DORGRであり、前記ドローラブル構造体のメ
ンバに正しい値を設定しない場合の動作は保証しない。
本関数を発行すると、終点のX座標,Y座標,フレーム
バッファ上の物理アドレスはドローラブル構造体のDEP
X,DEPY,DEPに格納される。ここで,クリッピ
ング領域をAXMIN=3,AYMIN=3,AXMA
X=11,AYMAX=8とする。図中点線の内部がク
リッピング領域内である。たとえば、入力パラメータが
(prm,1,2,7,5)を与えると、クリッピング領域の
境界上までの直線は描画せず、クリッピング領域の境界
上の点である点Aからクリッピング領域内の点である終
点の直前の点まで直線を描画する。本来、始点から点A
までの直線は描画しないが、ここでは入力パラメータに
よる始点とクリッピング領域の関係を明確にするため、
ハッチングして図示した。また、ディジタル描画におけ
る直線は点の集合体であるが、以下、省略して滑らかな
直線で図示する。
【0152】図74に継続直線絶対アドレス描画コマン
ド(CALINE関数)の描画例を示す。
【0153】CALINE(prm,xe,ye); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 xe,ye;描画を終了する座標。
【0154】CALINE関数は、ドローラブル構造体
に格納されている描画開始点(DEPR)から(xe,ye)
で指定された終点に向かって色比較及びデータ演算及び
ライトマスクをして直線を描画する。終点は描画しな
い。描画開始点がクリッピング領域外の場合、クリッピ
ング領域内に入った部分の線分を描画し、クリッピング
領域の境界上の点は描画される。戻り値は正常終了の場
合は“0”,エラー発生の場合は“−1”である。ま
た、設定が必要なドローラブル構造体は、CL0R,C
L1R,CCMPR,WMASKR,RMASKR,C
LIP,CCMP,OPM,AXMIN,AXMAX,
AYMAX,AYMIN,LSCR,LRAM,DMWR,
DORGRであり、前記ドローラブル構造体のメンバに
正しい値を設定しない場合の動作は保証しない。また、
DEPR,DEPX,DEPYに正しい始点の情報が格
納されていない場合の動作は、保証しない。本関数を発
行すると、終点のX座標,Y座標、メモリ上の物理アド
レスはドローラブル構造体のDEPX,DEPY,DE
Pに格納される。ここで、クリッピング領域をAXMIN=
4,AYMIN=2,AXMAX=11,AYMAX=
7とする。図中点線の内部がクリッピング領域内であ
る。たとえば、入力パラメータが(prm,8,4),DEP
X=3,DEPY=1であったとする。ここで、原点か
ら点Aまではあらかじめ描画関数が発行されたがクリッ
ピング領域外であることから描画されず、その終点情報
がDEPX,DEPYに格納されているものとする。C
ALINE関数はDEPX,DEPYで示される点Aを
始点とするが、クリッピング領域の境界上までの直線は
描画せず、クリッピング領域の境界上の点である点Bか
らクリッピング領域内の点である点Cの直前の点まで直
線を描画する。本来、原点から点Bまでの直線は描画さ
れないが、ここではDEPX,DEPYと入力パラメー
タによる終点とクリッピング領域の関係を明確にするた
め、ハッチングして図示した。
【0155】図75に継続直線相対アドレス描画コマン
ド(CRLINE関数)の描画例を示す。
【0156】CRLINE(prm,dx,dy); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。
【0157】dx;X座標の移動量。 dy;Y座標の移動量。
【0158】CRLINE関数は描画開始点で示される
始点からdx,dy移動した終点に向かって色比較及び
データ演算及びライトマスクをして直線を描画する。描
画開始点がクリッピング領域外の場合、クリッピング領
域内に入った部分の線分を描画し、クリッピング領域の
境界上の点も描画する。戻り値は正常終了の場合は
“0”,エラー発生の場合は“−1”である。設定が必
要なドローラブル構造体は、CL0R,CL1R,CC
MPR,WMASKR,RMASKR,CLIP,CC
MP,OPMAXMIN,AXMAX,AYMAX,A
YMIN,LSCR,LRAM,DMWR,DORGRであ
り、前記ドローラブル構造体のメンバに正しい値を設定
しない場合の動作は保証しない。また、DEPR,DE
PX,DEPYに正しい始点の情報が格納されていない場合
の動作は、保証しない。本関数を発行すると、終点のX
座標,Y座標、フレームバッファ上の物理アドレスはド
ローラブル構造体のDEPX,DEPY,DEPに格納
される。ここで、クリッピング領域をAXMIN=4,
AYMIN=2,AXMAX=11,AYMAX=8と
する。図中点線の内部がクリッピング領域内である。た
とえば、入力パラメータが(prm,5,4),DEPX=
3,DEPY=1であったとする。ここで、原点から点
Aまではあらかじめ描画関数が発行されたがクリッピン
グ領域外であることから描画されず、その終点情報がD
EPX,DEPYに格納されているものとする。CRL
INE関数はDEPX,DEPYで示される点Aを始点
とするが、クリッピング領域の境界上までの直線は描画
せず、クリッピング領域の境界上の点である点Bからク
リッピング領域内の点である終点の直前の点まで直線を
描画する。本来、原点から点Bまでの直線は描画されな
いが、ここではDEPX,DEPYと入力パラメータに
よる始点とクリッピング領域の関係を明確にするため、
ハッチングして図示した。CRLINE関数はDEP
X,DEPYで示される点Aを始点とするが、クリッピ
ング領域の境界上までの直線は描画せず、クリッピング
領域の境界上の点である点Bからクリッピング領域内の
点である点Cの直前の点まで直線を描画する。本来、原
点から点Bまでの直線は描画されないが、ここではDE
PX,DEPYと入力パラメータによる終点とクリッピ
ング領域の関係を明確にするため、ハッチングして図示
した。
【0159】図76に左周り楕円描画コマンド(SAR
CL関数)の描画例を示す。
【0160】SARCL(prm,xc,yc,a,b,x
s,ys,xe,ye); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 xc,yc;楕円孤の中心点の座標。 a,b;楕円孤に外接する矩形の幅と高さのドット数。
いずれも奇数とする。 xs,ys;描画を開始する座標。 xe,ye;描画を終了する座標。
【0161】SARCL関数は、a,bで定義された矩
形に内接する楕円孤を反時計回りにに色比較及びデータ
演算及びライトマスクをして描画する。また、(xc,
yc)は楕円孤の中心の座標、(xs,ys)は描画を
開始する座標、(xe,ye)は描画を終了する座標
で、描画開始座標から反時計回りに描画し、終点も描画
する。クリッピング領域内に入った部分の円弧を描画す
る。クリッピング領域の境界上の点も描画する。本関数
で円を描画する場合、始点から1ドットずらした点を終
点に指定する。戻り値は正常終了の場合は“0”,エラ
ー発生の場合は“−1”である。設定が必要なドローラ
ブル構造体は、CL0R,CL1R,CCMPR,WM
ASKR,RMASKR,CLIP,CCMP,OP
M,AXMIN,AXMAX,AYMAX,AYMI
N,LSCR,LRAM,DMWR,DORGRであり、前
記ドローラブル構造体のメンバに正しい値を設定しない
場合の動作は保証しない。ここで、クリッピング領域を
AXMIN=30,AYMIN=10,AXMAX=6
0,AYMAX=30とする。図中点線の内部がクリッ
ピング領域内である。たとえば,入力パラメータが(pr
m,25,13,49,25,49,13,25,2
5)あったとする。SARCL関数は点Aを始点とし、
クリッピング領域の境界上の点Bまで円弧を描画する。
本来、点Bから点Cまでの円弧は描画しないが、ここで
は入力パラメータによる終点とクリッピング領域の関係
を明確にするため、ハッチングして図示した。また、実
際は矢印は描画しないが、描画方向を明確にするために
図示した。
【0162】図77に右周り楕円描画コマンド(SAR
CR関数)の描画例を示す。
【0163】SARCR(prm,xc,yc,a,b,x
s,ys,xe,ye); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 xc,yc;楕円孤の中心点の座標。 a,b;楕円孤に外接する矩形の幅と高さのドット数。
いずれも奇数とする。 xs,ys;描画を開始する座標。 xe,ye;描画を終了する座標。
【0164】SARCR関数は、a,bで定義された矩
形に内接する楕円孤を時計回りに色比較及びデータ演算
及びライトマスクをして描画する。また、(xc,y
c)は楕円孤の中心の座標、(xs,ys)は描画を開
始する座標、(xe,ye)は描画を終了する座標で、
描画開始座標から時計回りに描画し、終点はも描画す
る。描画は、クリッピング領域内に入った部分の円弧を
対象とし、クリッピング領域の境界上の点も描画する。
本関数で円を描画する場合、始点から1ドットずらした
点を終点に指定する。戻り値は正常終了の場合は
“0”,エラー発生の場合は“−1”である。設定が必
要なドローラブル構造体は、CL0R,CL1R,CC
MPR,WMASKR,RMASKR,CLIP,CC
MP,OPM,AXMIN,AXMAX,AYMAX,
AYMIN,LSCR,LRAM,DMWR,DORGRで
あり、前記ドローラブル構造体のメンバに正しい値を設
定しない場合の動作は保証しない。ここで、クリッピン
グ領域をAXMIN=30,AYMIN=10,AXM
AX=60,AYMAX=30とする。図中点線の内部
がクリッピング領域内である。たとえば,入力パラメー
タが(prm,25,13,49,25,49,13,2
5,25)あったとする。点Aが始点であるが、SAR
CR関数はクリッピング領域の境界上の点Bまで円弧を
描画せず、クリッピング領域内の点Bから点Cまで円弧
を描画する。本来、点Aから点Bまでの円弧は描画しな
いが、ここでは入力パラメータによる始点とクリッピン
グ領域の関係を明確にするため、ハッチングして図示し
た。また、実際は矢印は描画しないが、描画方向を明確
にするために図示した。
【0165】図78に長方形塗りつぶし描画コマンド
(FRCT関数)の描画例を示す。
【0166】FRCT(prm,x1,y1,x2,y
2); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 x1,y1;長方形の1点。 x2,y2;長方形の対角点。
【0167】FRCT関数は、内部をCL0Rで指定さ
れた色で塗りつぶされた(x1,y1),(x2,y
2)を対角とするクリッピング領域内の部分の長方形を
1つ色比較及びデータ演算及びライトマスクをして描画
する。クリッピング領域の境界上の点も描画される。戻
り値は正常終了の場合は“0”,エラー発生の場合は
“−1”である。設定が必要なドローラブル構造体は、
CL0R,CCMPR,WMASKR,RMASKR,
CLIP,CCMP,OPM,AXMIN,AXMA
X,AYMAX,AYMIN,DMWR,DORGRで
あり、前記ドローラブル構造体のメンバに正しい値を設
定しない場合の動作は保証しない。本関数はメモリ内に
ワーク領域を静的に確保しているため、リエントラント
になっていない。ここで、クリッピング領域をAXMI
N=3,AYMIN=1,AXMAX=10,AYMAX=
7とする。図中点線の内部がクリッピング領域内であ
る。たとえば、入力パラメータが(prm,1,5,7,
2)であったとする。点Aと点Bを対角とする矩形を指
定されているが、FRCT関数はクリッピング領域の境
界上の点Cとクリッピング領域内の点Bを対角とする矩
形を描画する。本来、点Aから点Dを対角とする矩形は
描画しないが、ここでは入力パラメータによる対角点と
クリッピング領域の関係を明確にするため、ハッチング
して図示した。
【0168】図79に台形塗りつぶし描画コマンド(F
TRAP関数)の描画例を示す。 FTRAP(prm,xl,x1,y1,x2,y2); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 xl;台形の左側辺のX座標。 x1,y1;台形の右測辺の始点座標。 x2,y2;台形の右測辺の終点座標。
【0169】FTRAP関数は、内部を指定されたパタ
ーン(PADR,PRAMで設定。)で塗りつぶされたx
lを左側辺、(x1,y1),(x2,y2)を斜辺と
する台形を1つ色比較及びデータ演算及びライトマスク
をして描画しする。なお、底辺は描画しない。描画は、
クリッピング領域内の部分の台形を対象とし、クリッピ
ング領域の境界上の点も描画する。戻り値は正常終了の
場合は“0”,エラー発生の場合は“−1”である。設
定が必要なドローラブル構造体は、CL0R,CL1
R,CCMPR,WMASKR,RMASKR,CLI
P,CCMP,OPM,AXMIN,AXMAX,AY
MAX,AYMIN,DMWR,DORGR,PADR,PR
AMであり、前記ドローラブル構造体のメンバに正しい
値を設定しない場合の動作は保証しない。本関数はメモ
リ内にワーク領域を静的に確保しているため、リエント
ラントになっていない。ここで、クリッピング領域をA
XMIN=3,AYMIN=1,AXMAX=10,A
YMAX=7とする。図中点線の内部がクリッピング領
域内である。たとえば、入力パラメータが(prm,1,
5,5,8,2)であったとする。xlとして1が指定
されているが、FTRAP関数はクリッピング領域の境
界上の3を右側辺、とクリッピング領域内の点Aと点B
を斜辺とする台形をPRAMに従ったパターンで描画す
る。本来、点(1,2)と点(3,5)を対角とする矩
形部分は描画しないが、ここでは入力パラメータによる
右側辺とクリッピング領域の関係を明確にするため、ハ
ッチングして図示した。また、実際のPRAMは図79
に示すように、点の集合体で設定されているが、図示の
簡略化のため滑らかな三角形で示した。
【0170】図80に閉領域塗りつぶし描画コマンド
(PAINT関数)の描画例を示す。 PAINT(prm,xs,ys); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 xs,ys;描画開始座標。
【0171】PAINT関数は、境界で囲まれた閉領域
を(xs,ys)で指定された頂点から、指定されたパ
ターン(PADR,PRAMで設定)で色比較及びデー
タ演算及びライトマスクをして塗りつぶす。描画はクリ
ッピング領域内の部分の閉領域を対象とし、クリッピン
グ領域の境界上の点も描画する。戻り値は正常終了の場
合は“0”,スタックがオーバフローした場合は“−
1”である。設定が必要なドローラブル構造体は、CL
0R,CL1R,CCMPR,WMASKR,RMAS
KR,CLIP,CCMP,OPM,AXMIN,AX
MAX,AYMAX,AYMIN,DMWR,DORGR,P
ADR,PRAMであり、前記ドローラブル構造体のメ
ンバに正しい値を設定しない場合の動作は保証しまな
い。描画開始座標をクリッピング領域外に設定すると、
描画しない。また、描画開始座標を閉領域外に設定する
と、クリッピング領域内でかつ閉領域外を塗りつぶす。
本関数はメモリ内にワーク領域を静的に確保しているた
め、リエントラントになっていない。ここで、クリッピ
ング領域をAXMIN=1,AYMIN=4,AXMAX=
6,AYMAX=8とする。図中点線の内部がクリッピ
ング領域内である。閉領域として点A〜点Gで示される
多角形が設定されているものとする。たとえば、入力パ
ラメータが(prm,2,5)であったとするとPAINT
関数はクリッピング領域の境界上の点H,点I,点J,
点K,点Lをとクリッピング領域内の点A,点F,点G
で囲まれた領域をPRAMに従ったパターンで描画す
る。本来、点H,点B,点N,点D,点E,点L,点
K,点J,点Iで囲まれた領域は描画しないが、ここで
は入力パラメータとクリッピング領域の関係を明確にす
るため、ハッチングして図示した。また、実際のPRA
Mは図80に示すように、点の集合体で設定されている
が、図示の簡略化のため滑らかな三角形で示した。
【0172】図83は複写コマンド(COPY関数)を
示している。
【0173】COPY(prm,xs,ys,dx,dy,
xd,yd,dsd); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 xs,ys;転送元の長方形の頂点座標。 dx,dy;転送元の長方形の画素間距離数。 xd,yd;転送先の長方形の頂点座標。 dsd;転送モードを設定。
【0174】COPY関数は、(xs,ys)で指定さ
れた頂点からX軸方向の画素間距離数をdx、Y軸方向
の画素間距離数をdyとする転送元座標上の座標軸に平
行な長方形領域を(xd,yd)で指定された頂点から
転送先座標上の座標軸に平行な長方形領域にdsdで指
定されたスキャン方向で色比較及びデータ演算及びライ
トマスクをして複写する。図84に示すように画素間距
離とは、画素数−1を示す。図81は入力されたdx,
dyの符号よるスキャン方向と、dsd によるスキャン方
向を示したものである。図中矢印は2本で示される方向
にスキャンが終了すると1本で示される方向にスキャン
していくことを示している。Case1を例にとって説明す
ると図82に示すようにX方向をXs+dxまでスキャ
ンするとY方向を1インクリメントする,以上の処理を
Ys+dyまで繰り返すものである。このようなdx,
dyの符号とdsd によるスキャン方向の制御により、反
転複写,倒置複写,鏡反転複写,左右反転複写等を実行
することが可能である。図83にCOPY関数の描画例
を示す。複写は、クリッピング領域内の部分を対象と
し、クリッピング領域の境界上の点も複写する。戻り値
は正常終了の場合は“0”,エラー発生の場合は“−
1”である。設定が必要なドローラブル構造体は、CL
0R,CL1R,CCMPR,WMASKR,RMAS
KR,CLIP,CCMP,OPM,SMD、AXMI
N,AXMAX,AYMAX,AYMIN ,DMWR,DO
RGR,SORGR,SMWRであり、前記ドローラブ
ル構造体のメンバに正しい値を設定しない場合の動作は
保証しない。本関数はメモリ内にワーク領域を静的に確
保しているため、リエントラントになっていない。ここ
で、クリッピング領域をAXMIN=1,AYMIN=
1,AXMAX=52,AYMAX=34とする。図中
点線の内部がクリッピング領域内である。たとえば、入
力パラメータが(prm,1,1,23,31,27,3
5,1)であったとする。転送先の長方形の頂点座標は
点Aを指定されているが、COPY関数はクリッピング
領域の境界上の点Bを転送先の長方形の頂点座標として
転送モード1で転送する。本来、点Aと点Cを対角とす
る長方形の部分は転送しないが、ここでは入力パラメー
タとクリッピング領域の関係を明確にするため、ハッチ
ングして図示した。
【0175】図85に高速点描画コマンド(FDOT関
数)の描画例を示す。
【0176】関数FDOT(prm,x,y); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。
【0177】x;描画する点のX座標。 y;描画する点のY座標。
【0178】FDOT関数(x,y)で指定された点に
ドローラブル構造体のCL1Rで指定された色の点をリ
プレスモードで描画する。クリッピング領域の境界上の
点も描画する。戻り値は正常終了の場合は“0”,エラ
ー発生の場合は“−1”である。設定が必要なドローラ
ブル構造体は、CL1R,CLIP,AXMIN,AX
MAX,AYMAX,AYMIN,DMWR,DORG
Rであり、前記ドローラブル構造体のメンバに正しい値
を設定しない場合の動作は保証しない。ここで、クリッ
ピング領域をAXMIN=3,AYMIN=3,AXM
AX=11,AYMAX=8とする。図中点線の内部が
クリッピング領域内である。たとえば、入力パラメータ
が(prm,7,5)(点A)であるとすると、DOT関数
は点Aを描画する。入力パラメータが(prm,9,3)
(点B)であるとすると、点Bはクリッピング領域の境
界上に位置していることからDOT関数は点Bを描画す
る。入力パラメータが(prm,11,2)(点C)である
とすると、点Cはクリッピング領域外であるからDOT
関数は描画しない。本来、点Cは描画しないが、ここで
は入力パラメータによる位置とクリッピング領域の関係
を明確にするため、ハッチングして図示した。
【0179】図86に高速直線描画コマンド(FLIN
E関数)の描画例を示す。
【0180】FLINE(prm,xs,ys,xe,y
e); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 xs,ys;描画を開始する座標。 xe,ye;描画を終了する座標。
【0181】FLINE関数)は、(xs,ys)で指
定された始点から(xe,ye)で指定された終点に向
かって幅1ドット、ドローラブル構造体のCL1で指定
された色の実線をリプレスモードで描画する。終点は描
画しない。クリッピング領域外にある始点からクリッピ
ング領域内にある終点を指定すると、クリッピング領域
に存在する線を描画し、クリッピング領域の境界上の点
も描画される。戻り値は正常終了の場合は“0”,エラ
ー発生の場合は“−1”である。設定が必要なドローラ
ブル構造体は、CL1R,CLIP,AXMIN,AX
MAX,AYMAX,AYMIN,DMWR,DORGRであ
り、前記ドローラブル構造体のメンバに正しい値を設定
しない場合の動作は保証しない。終点のアドレス及び座
標はドローラブル構造体に格納しない。ここで、クリッ
ピング領域をAXMIN=3,AYMIN=3,AXM
AX=11,AYMAX=8とする。図中点線の内部が
クリッピング領域内である。たとえば、入力パラメータ
が(prm,1,2,7,5)を与えると、クリッピング領域
の境界上までの直線は描画せず、クリッピング領域の境
界上の点である点Aからクリッピング領域内の点である
終点の直前の点まで直線を描画する。本来、始点から点
Aまでの直線は描画しないが、ここでは入力パラメータ
による始点とクリッピング領域の関係を明確にするた
め、ハッチングして図示した。
【0182】図87に高速直線終点描画コマンド(FL
INED関数)の描画例を示す。
【0183】FLINED(prm,xs,ys,xe,y
e); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。
【0184】xs,ys;描画を開始する座標。 xe,ye;描画を終了する座標。
【0185】FLINED関数は、(xs,ys)で指
定された始点から(xe,ye)で指定された終点に向
かって幅1ドット、ドローラブル構造体のCL1で指定
された色の実線をリプレスモードで描画する。終点は描
画しない。クリッピング領域外にある始点からクリッピ
ング領域内にある終点を指定すると、クリッピング領域
に存在する線を描画し、クリッピング領域の境界上の点
も描画さる。戻り値は正常終了の場合は“0”,エラー
発生の場合は“−1”である。0:正常終了、−1:エ
ラー発生である。設定が必要なドローラブル構造体は、
CL1R,CLIP,AXMIN,AXMAX,AYMA
X,AYMIN,DMWR,DORGRであり、前記ド
ローラブル構造体のメンバに正しい値を設定しない場合
の動作は保証しない。終点のアドレス及び座標はドロー
ラブル構造体に格納しない。ここで、クリッピング領域
をAXMIN=3,AYMIN=3,AXMAX=1
1,AYMAX=8とする。図中点線の内部がクリッピ
ング領域内である。たとえば、入力パラメータに(prm,
1,2,7,5)を与えると、クリッピング領域の境界
上までの直線は描画せず、クリッピング領域の境界上の
点である点Aからクリッピング領域内の点である終点ま
で直線を描画する。本来、始点から点Aまでの直線は描
画しないが、ここでは入力パラメータによる始点とクリ
ッピング領域の関係を明確にするため、ハッチングして
図示した。
【0186】図88に高速折れ線描画コマンド(FPL
INE関数)の描画例を示す。
【0187】FPLINE(prm,np,point
s); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 np;描画する折れ線の数。
【0188】SHG_PtPtr points;描画する折れ線の点の
座標が格納されたデータへのポインタ値。データの格納
順序は、始点から終点へ向かってx座標値,y座標値の
順にx1,y1,x2,y2,……,xn,ynとす
る。
【0189】FPLINE関数は、複数の点をつないだ
1つながりの折れ線を始点から終点に向かってクリッピ
ング領域内に入っている線分のみを幅1ドット、ドロー
ラブル構造体のCL1で指定された色の実線をリプレス
モードで描画する。終点は描画しない。また、クリッピ
ング領域内に完全に入っていない線分は描画せず、クリ
ッピング領域の境界上の点は描画する。戻り値は,折れ
線をすべて描画した場合は“0”,エラー発生の場合は
“−1”,描画せずに残っている線分がある場合は1以
上を示す。設定が必要なドローラブル構造体は、CL1
R,CLIP,AXMIN,AXMAX,AYMAX,
AYMIN,DMWR,DORGR,前記ドローラブル
構造体のメンバに正しい値を設定しない場合の動作は保
証しない。終点のアドレス及び座標はドローラブル構造
体に格納しない。ここで、クリッピング領域をAXMI
N=3,AYMIN=2,AXMAX=11,AYMA
X=8とする。図中点線の内部がクリッピング領域内で
ある。たとえば、入力パラメータに(prm,2,poin
ts),pointsのデータに{3,2,8,6,1,7}
を与えると、クリッピング領域の境界上の点Aからクリ
ッピング領域内の点Bまでの直線は描画し、クリッピン
グ領域内の点Bからクリッピング領域外の点Cまでの直
線は描画せず、戻り値として”1”を返す。本来、点B
から点Cまでの直線は描画しないが、ここでは入力パラ
メータとクリッピング領域の関係を明確にするため、ハ
ッチングして図示した。
【0190】図89に高速折れ線終点描画コマンド(F
PLINED関数)の描画例を示す。
【0191】FPLINED(prm,np,points); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 np;描画する折れ線の数。
【0192】points;描画する折れ線の点の座標が格納
されたデータへのポインタ値。データの格納順序は、始
点から終点へ向かってx座標値,y座標値の順にx1,
y1,x2,y2,……,xn,ynとする。
【0193】FPLINED関数は、複数の点をつない
だ1つながりの折れ線を始点から終点に向かってクリッ
ピング領域内に入っている線分のみを幅1ドット、ドロ
ーラブル構造体のCL1で指定された色の実線をリプレ
スモードで描画する。終点は描画する。クリッピング領
域内に完全に入っていない線分は描画しない。クリッピ
ング領域の境界上の点は描画する。戻り値は,折れ線を
すべて描画した場合は“0”,エラー発生の場合は“−
1”、描画せずに残っている線分がある場合は1以上を
示す。設定が必要なドローラブル構造体は、CL1R,
CLIP,AXMIN,AXMAX,AYMAX,AY
MIN,DMWR,DORGRであり、前記ドローラブ
ル構造体のメンバに正しい値を設定しない場合の動作は
保証しない。終点のアドレス及び座標はドローラブル構
造体に格納されない。ここで、クリッピング領域をAX
MIN=3,AYMIN=2,AXMAX=11,AY
MAX=8とする。図中点線の内部がクリッピング領域
内である。たとえば、入力パラメータに(prm,2,poin
ts),pointsのデータに{3,2,8,6,1,7}を
与えると、クリッピング領域の境界上の点Aからクリッ
ピング領域内の点Bまでの直線は描画し、クリッピング
領域内の点Bからクリッピング領域外の点Cまでの直線
は描画せず、戻り値として”1”を返す。本来、点Bか
ら点Cまでの直線は描画しないが、ここでは入力パラメ
ータとクリッピング領域の関係を明確にするため、ハッ
チングして図示した。
【0194】図90に高速長方形塗りつぶしコマンド
(FFRECT関数)の描画例を示す。
【0195】FFRCT(prm,x1,y1,x2,y
2); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。 x1,y1;長方形の左下点。 x2,y2;長方形の右上点。
【0196】FFRECT関数は,内部をCL1で指定
された色で塗りつぶされた(x1,y1),(x2,y
2)を対角とする長方形をリプレスモードで1つ描画す
る。クリッピング領域内の部分の長方形を塗りつぶし、
クリッピング領域の境界上の点も描画する。本関数を使
用する場合は、x1<x2,y1<y2に設定する必要
があり、本条件を満たさない場合の動作は保証しない。
戻り値は正常終了の場合は“0”,エラー発生の場合は
“−1”である。設定が必要なドローラブル構造体はC
L1R,CLIP,AXMIN,AXMAX,AYMA
X,AYMIN,DMWR,DORGRであり、前記ド
ローラブル構造体のメンバに正しい値を設定しない場合
の動作は保証しない。ここで、クリッピング領域をAX
MIN=3,AYMIN=1,AXMAX=10,AY
MAX=7とする。図中点線の内部がクリッピング領域
内である。たとえば、入力パラメータが(prm,1,5,
7,2)であったとする。点Aと点Bを対角とする矩形
を指定されているが、FRCT関数はクリッピング領域の境
界上の点Cとクリッピング領域内の点Bを対角とする矩
形を描画する。本来、点Aから点Dを対角とする矩形は
描画しないが、ここでは入力パラメータによる対角点と
クリッピング領域の関係を明確にするため、ハッチング
して図示した。
【0197】図91に高速多角形塗りつぶしコマンド
(FPOLY関数)の描画例を示す。 FPOLY(prm,np,points); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。
【0198】np;多角形の頂点数。 points;多角形の頂点座標を格納した配列へのポイン
タ。データの格納順序は、始点から終点へ向かってx座
標値,y座標値の順にx1,y1,x2,y2,……,
xn,ynとする。
【0199】FPOLY関数は、ワインディングルール
によりクリッピング領域内の多角形の内部を単一色で塗
りつぶす。クリッピング領域の境界上の点も描画する。
戻り値は正常終了の場合は“0”,np<3あるいは、
最大頂点数<npの場合は“−1”を示す。設定するド
ローラブル構造体は、CL1R,CLIP,AXMIN,AX
MAX,AYMAX,AYMIN,DMWR,DORG
Rであり、前記ドローラブル構造体のメンバに正しい値
を設定しない場合の動作は保証しない。ここで、クリッ
ピング領域をAXMIN=25,AYMIN=51,A
XMAX=72,AYMAX=90とする。図中点線の
内部がクリッピング領域内である。たとえば、入力パラ
メータが(prm,8,points),pointsのデータに{3
0,10,50,40,40,50,30,30,5
0,20,70,30,40,70,10,50}を与
えると,クリッピング領域の境界上の点A,点B,点
C,点D,点Eとクリッピング領域内の点p2,点p6
で囲まれた多角形を塗りつぶす。本来、クリッピング領
域外の部分は描画しないが、ここでは入力パラメータと
クリッピング領域の関係を明確にするため、ハッチング
して図示した。
【0200】図93に高速複写関数(FCOPY関数)
の描画例を示す。
【0201】FCOPY(prm,xs,ys,dx,d
y,xd,yd); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。
【0202】xs,ys;転送元の長方形の頂点座標。 dx,dy;転送元の長方形の画素間距離数。 xd,yd;転送先の長方形の頂点座標。
【0203】FCOPY関数は、(xs,ys)で指定
された頂点からX軸方向の画素間距離数をdx、Y軸方
向の画素間距離数をdyとする転送元座標上の座標軸に
平行な長方形領域を(xd,yd)で指定された頂点か
ら転送先座標上の座標軸に平行な長方形領域にリプレス
モードで描画する。スキャン方向は図92に示すよう
に、コピー領域の左下からスキャンを行なう。図93に
FCOPY関数の描画例を示す。描画対象はクリッピン
グ領域内の部分であり、クリッピング領域の境界上の点
も描画される。戻り値は正常終了の場合は“0”,エラ
ー発生の場合は“−1”である。設定が必要なドローラ
ブル構造体は、CLIP,AXMIN,AXMAX,A
YMAX,AYMIN,DMWR,DORGRであり、
前記ドローラブル構造体のメンバに正しい値を設定しな
い場合の動作は保証しない。本関数を使用する場合は、
dx,dy>0に設定する必要があり、本条件を満たさ
ない場合の動作は保証しない。なお、画素間距離はCO
PY関数での考え方と同様であり、図84のように画素
数−1であり,dx,dyには、転送したい画素数−1
の値を設定する。ここで、クリッピング領域をAXMI
N=1,AYMIN=1,AXMAX=40,AYMA
X=35とする。図中点線の内部がクリッピング領域内
である。たとえば、入力パラメータが(prm,1,1,2
3,31,27,3)であったとする。点Aと点Bを対
角とする長方形の領域を点Cを長方形の頂点座標として
転送すると指定されているが、COPY関数はクリッピ
ング領域の境界上の点Dまでの領域を転送する。本来、
クリッピング領域外の部分は転送しないが、ここでは入
力パラメータとクリッピング領域の関係を明確にするた
め、ハッチングして図示した。
【0204】図95に文字描画関数(TCPY関数)の
描画例を示す。
【0205】TCPY(prm,x,y); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。
【0206】x,y;転送先の長方形の左下の頂点座
標。
【0207】TCPY関数は、ドローラブル構造体で指
定された文字を(x,y)で指定された座標を左下の転
送先座標として、CL1で指定された色で描画する。な
お、スキャン方向は図94に示す様に、コピー領域の左
下からスキャンを行なう。図95にTCPYの描画例を
示す。文字が完全にクリッピング領域内に入っていない
場合、その文字は描画しない。なお、クリッピング領域
の境界上は領域内とみなす。戻り値は正常終了の場合は
“0”,クリッピング領域内に転送領域が完全に入って
いない場合は“−1”を示す。設定が必要なドローラブ
ル構造体は、CL0R,CL1R,CCMPR,CLI
P,CCMP,AXMIN,AXMAX ,AYMAX,AY
MIN,DMWR,DORGR,SMWR,SORGR
であり、前記ドローラブル構造体のメンバに正しい値を
設定しない場合の動作は保証しない。本関数を色比較な
しのモードで発行する前に必ずTINIT関数を実行す
る必要がある。TINIT関数を発行せずに本関数を発
行した場合の動作は保証しない。TINIT関数は文字
の色を変更する毎にを発行する必要がある。なお、文字
の色を変更しない場合にはTINIT関数は発行する必
要はない。色比較ありモードで本関数を発行する場合は
TINIT関数は発行する必要はない。また、色比較モ
ードで本関数を発行する場合、CCMPRには必ずCL
0あるいはCL1の値を設定する必要があり、CCMP
RにCL0,CL1以外の値を設定した場合の動作は保
証しない。ここで、クリッピング領域をAXMIN=
4,AYMIN=3,AXMAX=30,AYMAX=
25とする。図中点線の内部がクリッピング領域内であ
る。たとえば、入力パラメータが(prm,5,5)であっ
たとする。(5,5)を始点としてx方向16ドット,
y方向16ドットの領域はクリッピング領域内であるか
らTCPY関数は“五”を描画する。次に(prm,25,
8)の入力パラメータを与えたとする。(25,8)を
始点としてx方向16ドット,y方向16ドットの領域
はクリッピング領域外となる領域を含むため、TCPY
関数は“五”を描画しない。本来、クリッピング領域外
の部分は転送しないが、ここでは入力パラメータとクリ
ッピング領域の関係を明確にするため、ハッチングして
図示した。
【0208】図96に縁取り文字描画関数(ETCPY
関数)の仕様を示す。
【0209】ETCPY(prm,x,y); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。
【0210】x,y;転送先の長方形の左下の頂点座
標。
【0211】ETCPY関数は、ドローラブル構造体で
指定された文字を(x,y)で指定された座標を左下の
転送先座標として、1ドットの縁取りをつけて描画す
る。このとき、縁取り部分はCL0、文字はCL1で指
定された色で描画する。なお、スキャン方向はTCPY
関数と同様であり,図94に示すようにコピー領域の左
下からスキャンする。図96にETCPYの描画例を示
す。縁取り文字が完全にクリッピング領域内に入ってい
ない場合、その文字は描画しない。なお、クリッピング
領域の境界上は領域内とみなす。戻り値は正常終了の場
合は“0”,クリッピング領域内に転送領域が完全に入
っていない場合は“−1”を示す。設定が必要なドロー
ラブル構造体は、CL0R,CL1R,CLIP,AX
MIN,AXMAX,AYMAX,AYMIN,DMW
R,DORGR,SMWR,SORGRであり、前記ド
ローラブル構造体のメンバに正しい値を設定しない場合
の動作は保証しない。本関数を発行する際、TINIT
関数を事前に発行する必要はない。なお、本関数はメモ
リ内にワーク領域を静的に確保しているため、リエント
ラントになっていない。ここで、クリッピング領域をA
XMIN=4,AYMIN=3,AXMAX=30,A
YMAX=25とする。図中点線の内部がクリッピング
領域内である。たとえば、入力パラメータが(prm,5,
5)であったとする。(5,5)を始点としてx方向1
8ドット,y方向18ドットの領域はクリッピング領域
内であるからETCPY関数は“五”を描画する。次に
(prm,27,8)の入力パラメータを与えたとする。
(27,8)を始点としてx方向18ドット,y方向1
8ドットの領域はクリッピング領域外となる領域を含む
ため、ETCPY関数は“五”を描画しない。本来、ク
リッピング領域外の部分は転送しないが、ここでは入力
パラメータとクリッピング領域の関係を明確にするた
め、ハッチングして図示した。
【0212】図97に座標変換関数(AFFIN関数)
の仕様を示す。
【0213】AFFIN(s_pnt,d_pnt,i_pnt,
n); s_pnt;変換する座標を格納した配列へのポインタ値。 d_pnt; 変換した座標を格納する配列へのポインタ
値。 i_pnt; 変換時の係数を格納した配列へのポインタ
値。 n;変換する座標数。
【0214】AFFIN関数は、i_pnt で指定されたポ
インタを先頭アドレスとする複数の係数を用いてs_pnt
で指定されたポインタを先頭アドレスとする領域に格納
されている複数の座標を変換し、d_pnt で指定されたポ
インタを先頭アドレスとする構造体に格納する。戻り値
は正常終了の場合は“0”,エラー発生の場合は“−
1”である。設定が必要なドローラブル構造体はない。
本関数を発行する前に必ずINITAFFIN関数を実
行する必要があり、INITAFFIN関数を発行しな
いと正しい変換係数が設定されない。INITAFFI
N関数を発行せずにAFFIN関数を発行した場合の動
作は保証しない。
【0215】次に文字描画初期化関数(TINIT関
数)を説明する。
【0216】TINIT(prm); prm;描画領域に関する情報を格納したドローラブル構
造体へのポインタ値。
【0217】TINIT関数はドローラブル構造体で指
定された色データ(CL0,CL1)を用いてテキスト用
多値データを生成する。戻り値は正常終了の場合は
“0”,エラー発生の場合は“−1”である。設定が必
要なドローラブル構造体は、CL0R,CL1Rであ
る。図98に示すように本関数は、TCPY関数を色比
較なしでコールする前に必ず実行する必要がある。更
に、文字の色を変更する毎に本関数を発行する必要があ
る。なお、本関数はメモリ内にワーク領域を静的に確保
しているため、リエントラントになっていない。
【0218】図99に座標変換初期化関数(INITA
FFIN関数)の仕様を示す。
【0219】INITAFFIN(i_pnt,k,x
m,ym,xo,yo,rad); i_pnt;演算後の係数を格納する配列へのポインタ値。 k;縮尺。 xm,ym;地図メッシュの原点座標(地図座標系)。 xo,yo;描画時の原点座標(地図座標系)。 rad;回転時のラジアン角。
【0220】INITAFFIN関数は、縮尺、地図メ
ッシュの原点座標、描画時の原点座標と回転角によりア
フィン変換の係数を算出し、i_pnt で指定されたポイン
タを先頭アドレスとする構造体へ格納する。戻り値は正
常終了の場合は“0”,エラー発生の場合は“−1”で
ある。設定が必要なドローラブル構造体はない。本関数
は、AFFIN関数を発行する前に必ず発行する必要が
ある。
【0221】CHMP関数は、縮尺,地図メッシュの原
点座標と描画時の原点座標によりアフィン変換の係数を
算出し、i_pnt で指定されたポインタを先頭アドレスと
する構造体へ格納する。戻り値は正常終了の場合は
“0”,エラー発生の場合は“−1”である。設定が必
要なドローラブル構造体はない。本関数は、回転のデー
タとして直前に発行されたINITAFFIN関数のラ
ジアン角を使用する。すなわち、回転のデータ以外の要
素を変更する場合に本関数を発行する。
【0222】描画システムの実施例として、走行する車
の位置を地図上に表示するアプリケーションを取り上げ
その構成、動作、処理内容について説明する。
【0223】本実施例の仕様を説明する。先に述べたよ
うに本実施例では走行する車の位置をLCD画面上に表
示する、いわゆるナビゲーションシステムを実現するも
のである。従って、その最も基本的な機能は、車の位置
を対応する地図と共に描画,表示することにある。本シ
ステムでは更に、表示した画面を走行状態にあわせて表
示精度を変更する機能や、スクロール,拡大,縮小,描
画データの記録,記録した描画データの再生等の機能を
サポートする。
【0224】図101は本システムが実現する走行状態
による表示画面精度の切り替えの様子を示したものであ
る。ここでの画面精度とは、地図上の細かいオブジェク
トをどこまで表示するかを示す。図の左側の表示画面は
走行中の画面状態を示したものであり、右側の表示画面
は停止中の走行画面を示したものである。車が停止中の
時に表示される細道路や小さい目標物は、走行中の画面
では表示されず、主要道路等の注視することなく認識で
きるオブジェクトのみ表示する。この機能は、走行中の
安全性を考慮したものであり、走行中に表示画面に気を
とられ前方に対する注意が散漫になることを防止するこ
とを目的とする。
【0225】図102は本システムで実施する車の移動
に対する表示画面の更新方式を示したものである。一般
に自車の表示画面の更新方式は、ノーザンアップとヘデ
ィングアップと呼ばれる二つの方式が知られている。ノ
ーザンアップ方式は、自車の進行方向にかかわらず常に
北を画面上部に表示する方式であり、印刷された地図を
見る感覚に近い。一方、ヘディングアップ方式は進行方
向を画面上部に表示する方式である。この方式は、個人
差はあるものの、目的地を感覚的に認識しやすいといっ
たメリットがある。この方式の応用として、進行方向が
ある角度以上変化した場合は、その進行方向を画面上部
に表示するといった条件付きのヘディングアップ方式も
存在する。本実施例では、図102のように進行方向が
30度以上変化した場合は、その進行方向を画面上部に
表示する方式を実現する。
【0226】図103は外部ボタン種類を示したもので
ある。外部ボタンは機能的に、スクロール系ボタン,拡
大/縮小系ボタン,システム制御系のボタンに分類され
る。スクロール系のボタンの機能は図104に示す様な
方向への画面のスクロールを実現する。並進方向のスク
ロールとして、左右上下、また回転スクロールは画面中
央を中心とする左回転,右回転を実現する。なお、スク
ロールボタンによる回転機能は走行状態の表示時の30
度単位のヘディングアップ方式とは異なり、任意角での
回転が可能である。
【0227】拡大/縮小系のボタンは図105のように
画面の拡大,縮小を行なう。拡大,縮小に使用されるレ
ベルは5レベルあり、拡大ボタンが押される度により拡
大率の大きい画面を表示し、逆に縮小ボタンを押される
度に拡大率の小さい画面を表示する。また、拡大率に関
連して表示画面の精度を変更するアルゴリズムを実現す
る。拡大率が小さくなりなり地図をズームアウトする場
合、表示すべきオブジェクト数の増加により、オブジェ
クト同士の重なり等で、見づらい画面表示となってしま
う。本実施例では、拡大率に対応したレベルごに表示す
るオブジェクトをあらかじめ決定しておくことにより、
拡大率による表示精度の変更を実現する。
【0228】図103のボタンのうち、記録、再生、走
行表示の3つのボタンはシステム制御系のボタンに属す
る。
【0229】記録ボタンは、あらかじめ走行経路をシス
テムに入力するする場合に使用する。走行経路の入力
は、スクロールボタンを使用して通過したい走行経路
を、LCD画面の中央に移動させ、位置位が決定したとこ
ろで記録ボタンを押しことによって行なわれる。システ
ムはこのボタンが押されるたびに表示していた画面に関
する情報をメモリ等の記録媒体に格納する。
【0230】本システムでは記録ボタンによる予めの走
行経路記録機能の他に、実際に走行した経路を記録する
機能をもつ。この機能は、走行中に道路に迷った場合等
に走行経路を確認する場合等に使用する。この機能は、
記録ボタンによる明示的な記録とは異なり、あるサンプ
リングタイム毎にシステムが自動的に描画、及び表示に
関するデータを記録媒体に格納することで実現される。
【0231】再生ボタンには、再生ボタン1と再生ボタ
ン2の二つのボタンが配置されている。再生ボタン1は
記録ボタンによって記録媒体に格納された描画情報を用
いて、描画表示を行なう機能を発生するボタンである。
また、再生ボタン2は自動記録機能により記録媒体に格
納された描画情報を使用して描画,表示を実現するため
のボタンである。
【0232】走行表示ボタンは、スクロール系ボタン、
拡大縮小系ボタン,システム制御系ボタンの記録,再生
の各ボタンによる機能を中断し、基本機能である車の走
行位置表示に戻るためのボタンである。このボタンが押
されると、現在まで実行していたスクロール等の処理を
終了し、現在の車の位置からの位置の表示を行なう。以
上のシステム仕様を実現すための、ハードウェア構成を
説明する。
【0233】図106は本実施例の描画システムの構成
を示したものである。本システムは地図を表示するLC
D7050、車の位置を検出する位置センサ7150、
位置センサからの情報を描画情報への変換したり、各種
のイベントのハンドリング、描画,表示を行なうグラフ
ィックボード7000、表示画面のスクロールや表示機
能の切り替え等のイベント発生する制御ボタン群710
0から構成される。
【0234】グラフィックボード7000は、本システ
ムの処理シーケンスを実現するプロセッサを内蔵した制
御ボードである。位置センサ7150や制御ボタン71
00から入力される情報は、このボード内で処理され、
最終的に表示データとしてLCD7050に出力され
る。
【0235】LCD7050は、地図を表示するディス
プレーとして使用される。専用コネクタによりグラフィ
ックボードと接続され、表示に必要な情報をグラフィッ
クボードから供給される。
【0236】位置センサ7150はGPS等の位置検出
方式により走行中の車の位置を検出する装置である。検
出した情報は専用コネクタを介して、グラフィックボー
ドに送られ処理される。
【0237】制御ボタン7100は、表示画面のスクロ
ールや拡大、縮小、走行経路の記録,再生等のイベント
を発生するための入力装置である。ボタンが発生する情
報は、専用コネクタを介してグラフィックボードに転送
され、グラフィックボード内でイベント情報の解析,処
理が実行される。
【0238】グラフィックボード7000の内部構成を
図107に示す。グラフィックボード7000はプロセ
ッサ7001,表示回路7002,フレームバッファR
AM7003,地図・文字データROM7005,描画
アプリ用ROM7006 ,表示データ記録媒体7004,位置
センサコネクタ7008,制御ボタンコネクタ700
9,拡張コネクタ7010,LCDコネクタ7011,
システムバス7007より構成される。描画アプリ用ROM
7006は、描画アプリケーションのコード容量が、プ
ロセッサ7001に内蔵されているROMに収まれば不
要となるが、説明ではプロセッサ外部に存在するROM
として扱う。
【0239】グラフィックボード7000の主な機能は (1)位置センサからの情報を、位置情報に変換する。
【0240】(2)位置情報から描画に必要な地図を検
索する。
【0241】(3)描画関数を発行し、地図を描画す
る。
【0242】(4)制御ボタンから発行されるイベント
の処理 (5)表示タイミングの制御 である。
【0243】プロセッサ7001はグラフィックボード
7000の機能を実現するためのコントローラである。
プロセッサ7001は位置センサ7150からの情報を
位置センサコネクタ7008を介して読み込み、その情
報を描画関数の座標系に対応した情報に変換する。ま
た、この情報を基に表示する地図データを地図・文字デ
ータROM7005から検索し、描画関数を発行しフレ
ームバッファRAM7003 に描画を行なう。また、制御ボタ
ン7100からのイベント情報を制御ボタンコネクタ7
009を介して読み込み、イベントに対応した処理を実
行する。更に、表示に必要な表示タイミングを生成し表
示回路7002に供給する。本システムのプロセッサ
は、いゆわるワンチップ構成である。したがって、プロ
セッサ内部にはフレームバッファRAMや地図・文字デ
ータROM,描画アプリ用ROMとは別にRAM,RO
Mが内蔵されている。従って、データ容量によっては、
描画アプリ用ROM7006をそのまま内蔵のROMに
置き換えることも可能である。内蔵のROM,RAMは
プロセッサのアクセス方式に最適化されて場合が多い。
従って、頻繁に使用するプログラム等は内蔵のROM、
RAMに格納することがシステム性能を向上させること
につながる。本システムは描画時に最も頻繁に使用され
る、描画関数ライブラリを内蔵ROMに格納することに
より、システム性能の向上を計っている。また、タイミ
ング信号を生成するためのタイマー機能や、フレームバ
ッファRAM内のデータをプロセッサを介さずに表示回
路に転送するためのダイレクトメモリアクセス機能や、
位置センサや制御ボタンからの情報を読み込むための入
出力ポートが内蔵されている。
【0244】表示回路7002は、フレームバッファR
AM7003内の描画データの色データに対応する、表
示色に関する情報を付加した表示データを生成する。更
にプロセッサの生成する表示タイミングを受けて、LC
D7050の仕様にあったタイミングでLCDコネクタ
7011を介して、LDC7050に表示データを出力
する装置である。プロセッサ7001はこの出力タイミ
ング内蔵のタイマを使用して生成する。フレームバッフ
ァ7003内の描画データは、プロセッサ7001のダイレ
クトメモリアクセス機能を用いて転送される。
【0245】フレームバッファRAM7003は、実際
に描画を行なう座標系に対応するメモリ領域である。プ
ロセッサの発行する描画関数はこのRAM内のデータを
アクセスすることにより処理を実施する。描画領域は描
画関数で使用するドローラブル構造体で定義する。この
定義は、転送元座標と描画座標とよばれる二つの描画領
域の、原点に対応するメモリアドレスと描画領域のX方
向に使用するメモリ幅を、ドローラブル構造体内に設定
することにより行なわれる。本システムでは描画座標
を、表示領域の4倍程度の大きさに設定し、表示領域の
変更による高速な並進スクロールを実現するためのもの
である。
【0246】地図・文字データ格納ROM7005は、
描画する地図のベクトルデータを格納するものである。
ここに描画された地図データは、本システムで使用する
データ構造に変換された後のデータである。また、文字
データはJISコードとして格納されており、本システ
ム特有のデータ構造により管理される。
【0247】描画アプリ用ROM7006は、システム
が実現する処理のシーケンスを決定するアプリケーショ
ンプログラムを格納する。アプリケーションサイズが、
プロセッサ7001の内蔵ROMに格納される程度の大
きさの場合、この描画アプリ用ROM7006は不要と
なる。
【0248】表示データ記録媒体7004は、制御ボタ
ン7100から発生するイベント一つである走行経路の
記録,再生を実現するための描画データの記録装置であ
る。表示データ記録媒体7004は記録ボタンによる描
画情報の格納領域と、自動記録機能による描画情報の記
録領域から構成され、それぞれ対応する記録イベント、
再生イベントの発生でアクセスされる。記録量は表示デ
ータ記録媒体7004の容量に依存するが、本システム
では拡張用のメモリを拡張コネクタ7010を介して接
続することが可能であり、これにより記録容量を拡張す
ることができる。
【0249】位置センサコネクタは、位置センサとプロ
セッサとを接続するための端子であり、グラフィックボ
ード内でプロセッサの入出力ポートに接続されている。
【0250】制御ボタンコネクタは制御ボタンとプロセ
ッサを接続する端子である、グラフィックボード内でプ
ロセッサの入出力ポートと接続される。
【0251】拡張コネクタは、表示データ記録媒体に拡
張用の記録媒体を接続するための拡張端子である。この
拡張端子に他の記録媒体を接続することにより、記録容
量を増加させることができる。
【0252】LCDコネクタは、表示回路とLCDを接
続端子である。LCDコネクタは、表示回路とLCDを
接続端子である。
【0253】制御ボタンは図103に様に機能的にスク
ロール系ボタン、拡大/縮小系ボタン,システム制御系
ボタンの3種類に分類され、それぞれの機能に対して一
つずつのボタンが割り当てられる。
【0254】図108は地図データのデータ構成を示し
たのである。本システムで扱う地図データはメッシュと
レイヤーの概念から構成されている。メッシュは地図全
体を分割する単位四方のことで、それぞれのメッシュは
X軸,Y軸による座標系の形式、即ち、メッシュ座標
(n,m),(n:X座標,m:Y座標)の形式で表現
される。レイヤーは表示オブジェクト単位,即ち高速道
路,国道,主要道路,一般道の様な共通表示物で構成さ
れた一面のデータである。従って、あるメッシュは複数
のレイヤで構成されていることと同時、あるレイヤは複
数のメッシュで構成されている。地図データを管理する
方式は、メッシュを基準とした管理方法とレイヤを基準
とした管理方法が考えられる。この管理方法の違いは、
地図を描画する手順の違いとして現われる。メッシュを
基準とした管理方式を採用したシステムでの描画は、始
めに一つのメッシュに属するレイヤの描画を完成させた
後に、次のメッシュの描画を実施する。一方、レイヤを
基準にした管理方式を採用したシステムの描画手順は、
一つのレイヤの描画を完成させた後に、次のレイヤの描
画を実施する。
【0255】本システムではレイヤを基準とした管理方
法を採用する。これは、図109に示すような文字の不
完全描画の問題が発生しないため、描画を行なうための
アプリケーションの負担を軽減できるためである。文字
の不完全描画は、メッシュ単位に地図データを管理する
場合の、描画方法に関数問題である。メッシュ単位での
地図データを描画する場合は、一つのメッシュの全ての
レイヤを描画した後に、次のメッシュの描画を行なう。
ところが、メッシュ内の文字データは、その文字列の左
下隅の座標を与えられたいるだけであるため、文字数と
メッシュ内の座標の関係から、メッシュ間にまたがるケ
ースが発生してしまう。このような、メッシュ間にまた
がる文字列は、以降のメッシュの描画により塗潰されて
しまい最終的に不完全な文字列として表示されてしま
う。レイヤ管理の場合は、文字列のレイヤを一番最後に
描画することにより、この文字列の不完全描画を解決す
ることができる。
【0256】図110は本システムで用いる、地図デー
タの構成である。本システムではレイヤーを基準とした
データ管理方式を採用しており、更に図に示す地図デー
タ構成は本システムの描画関数を使用するのに便利な構
造をもっている。地図データはレイヤ数管理セクショ
ン,レイヤ管理セクション,要素情報管理セクションか
ら成り、それぞれのセクションは複数のブロックやレコ
ードから構成されている。以下、それぞれのについて説
明する。
【0257】(1)レイヤ数管理セクション レイヤ管理セクションは、本システムで使用する地図デ
ータに登録されているレイヤの総数を管理する。 a)レイヤ数 ファイル内に格納されているレイヤ数を管理する。
【0258】(2)レイヤ管理セクション レイヤ毎の管理情報を格納する。レイヤ管理レコード最
大数nは、レイヤ数管理セクション内のレイヤ数に等し
い。
【0259】a)レイヤ管理レコード レイヤ毎の管理情報を格納する領域で、以下より構成さ
れる。
【0260】a−1)レイヤナンバー 管理対象の例やナンバー a−2)要素種別ナンバー 管理対象のレイヤの形状要素ナンバー。形状要素は、折
れ線,面,文字列の3種類ある。 a−3)総要素数 対象レイヤでもっている要素の数 a−4)総座標数 対象レイヤでもっている座標の数 a−5)総文字数 対象レイヤでもっている文字の数 a−6)要素管理ブロックオフセット 対象レイヤの要素管理ブロックのファイルの先頭からの
オフセット a−7)座標ブロックオフセット 対象レイヤの座標ブロックのファイルの先頭からのオフ
セット a−8)文字コードブロックオフセット 対象レイヤの文字コードブロックのファイルの先頭から
のオフセット (3)要素情報管理セクション 要素情報を格納するレコードである。要素管理セクショ
ンは、要素管理ブロック,座標ブロック,文字コードブ
ロックから構成される。
【0261】(a)要素管理ブロック 対象レイヤ内の要素管理情報を格納する。要素管理レコ
ード最大数nは、レイヤ管理レコード内の総要素数レイ
ヤに等しい。要素は、3種類ありその種別によって管理
するレコードの内容は、折れ線管理レコード,面管理レ
コード,文字列管理レコードと異なっている。
【0262】a−1)要素管理レコード i)折れ線 ・頂点数 折れ線を構成する頂点の数。2点を結ぶ直線の場合2と
する。 ・座標内ブロックオフセット 座標ブロック内での核当要素を構成する座標オフセット ii)面 ・頂点数 面を構成する頂点の数。最低3点。 ・座標内ブロックオフセット 座標ブロック内での核当要素を構成する座標オフセット iii)文字 ・文字数 文字列内の文字数 ・座標内ブロックオフセット 座標ブロック内での核当要素を構成する座標オフセット ・文字コードブロック内オフセット 文字コードブロック内での核当文字列のコード位置オフ
セット (b)座標ブロック 座標を格納する。座標レコードの最大数nは、レイヤ管
理レコード内の総座標数に等しい。
【0263】b−1)座標レコード i)X座標 ii)Y座標 (c)文字コードブロック 文字列の文字コードを格納する。文字コードレコード最
大数nは、レイヤ管理レコード内の総文字数に等しい。 c−1)文字コードレコード i)文字コード 図111は本システムで使用する地図データのメモリ配
置のイメージを示したものである。図110の様な論理
的な配置をもつ地図データはメモリ上にリニアには位置
され、描画アプリケーションは、セクションやブロック
の先頭アドレスをポインタとして管理することにより、
描画に必要なこれらの情報を参照する。描画アプリケー
ションはグラフィックボード内の描画アプリROMにコ
ードとして格納され、プロセッサがコードを解読して対
応する処理を実行する。図112は描画アプリケーション
の処理フローである。処理は、パワーオンリセット直後
の開始状態から、イベントの取り込みを実行する。イベ
ントとは、位置センサからのデータの取り込みや、制御
ボタンからの各種の指令を意味する。表示領域算出は、
取り込んだイベントデータから表示する地図のエリアを
特定するための処理である。この後の処理は、取り込ん
だイベントによって画面を並進方向へスクロールさせる
場合と、それ以外の場合とで異なったものとなる。並進
スクロールを実施するケースの判定方法は、位置センサ
からの位置情報から進行方向の角度を検出し、現在表示
している画面の角度との差が30度以上の場合と、制御
ボタンの上下左右ボタンからのイベントが発生した場合
を並進スクロールと判断し、それ以外の場合は並進スク
ロールではないと認識される。並進方向へのスクロール
を実施する場合は、既に描画されている領域の表示する
領域を、スクロール方向に対応させて変更させる表示機
能を利用して、スクロールを実現する。一方、並進スク
ロール以外の処理の場合は、表示領域を変更する処理で
は対応できないため、地図の再描画を実施する必要があ
る。再描画は、描画すべき地図のメッシュを検索し、対
象の全てのメッシュの同一レイヤ毎に、レイヤのオブジ
ェクトに対応する描画関数を発行することで実行され
る。その後、並進スクロールの場合と同様に表示処理を
実行する。並進スクロールの場合も、それ以外の場合も
表示処理の後は、自車マーカーの描画を実行する。
【0264】イベントの取り込みは、位置センサや制御
ボタンからの位置データやスクロール情報,システム制
御情報の入力を意味する。このイベントの取り込みは、
位置センサからのデータと、制御ボタンからのデータで
は異なった方法で行なわれる。これは、時間と共に変化
する車の位置データと、全く任意のタイミングで押され
るボタンからのデータの性格的な違いから由来するもの
である。図113は位置情報センサからの情報取り込み
と、制御ボタンからの情報の取り込み方法を示したもの
である。位置情報の取り込み、及びボタン情報の取り込
みともにグラフィックボードに対する位置センサから
の、またはボタンからのハードウェア割り込みとして、
情報のリードを要求することから起動される。これらの
割り込み要求はグラフィックボード内のプロセッサに対
する割り込み要求として処理され、対応する割り込み処
理が起動される。位置情報センサからの割り込み対応す
る処理は、10msの周期で実行され、その処理内容は
位置センサの情報から、描画座標系に対する描画情報へ
データ変換である。また、制御ボタンからの割り込み
は、システム使用者がボタンを押す任意のタイミングで
発行される。この割り込み要求に対応する処理は、制御
ボタンによる処理を実行中であることを示すボタンモー
ドフラグをセットすることから始まり、次に押されたボ
タンが何であるかを解析し、押されたボタンに対応した
描画データを作成する。一度ボタンモードがセットされ
ると、走行表示ボタンによるボタンモードもリセットイ
ベントが発行されるまで、位置センサからの割り込みは
無視される。
【0265】図114は描画データのフォーマットであ
る。フォーマットはイベント種別,自車表示位置X座
標,自車表示位置Y座標,自車向き,自車走行状態,ボ
タンコードから構成される。イベント種別は、その描画
データがどのイベントにより生成されたものであるかを
示す識別しであり、位置センサからの割り込みによる描
画データ、各種制御ボタンからの割り込み処理による描
画データを識別するものである。自車表示位置X座標、
及び自車表示位置Y座標は描画する際の自車位置の座標
である。位置センサからの位置情報を表示画面の中央に
配置させる座標データを基準に、スクロール系のイベン
トに対してはスクロール方向への変化量を加算した座標
値のデータをもつ。自車向きは、北を0度した、時計回
り方向の角度をもつ。位置センサからの情報により表示
を行なっている場合は、前回の描画データと自車向きを
比較し、その変位が30度以下の場合は並進スクロール
として扱い、画面の回転スクロールは行なわない。自車
走行状態は位置センサからの情報で、車が走行状態か停
止状態化を示すフラグである。このフラグが走行状態の
時は表示精度を粗くするために、地図データの特定レイ
ヤを省いた描画を実行し、また停止状態を示している時
は図べてのレイヤを表示し細表示を行なう。特定のレイ
ヤを省いた描画は、アクセスする地図データのレイヤ管
理ブロック内のアクセスポイントを変更することにより
ボタンコードは制御ボタンによる割り込み処理で生成さ
れた描画データの際に、どのボタンによる描画データあ
るかを記録するためのフィールドである。
【0266】図115は各レイヤの描画に使用する描画
関数を示したものである。既に述べたように、本システ
ムでは地図データをレイヤ単位に管理している。位置セ
ンサからの位置情報により表示すべきメッシュを選択
し、選択されたメッシュについてレイヤ情報を描画対象
として扱う。選択されたレイヤは、描画関数の描画機能
と対応をとるために、線分,面,文字のレイヤーに分類
される。この時、車の進行方向のデータが前回描画を行
なった時に使用した描画データの自車向きに対して、3
0度以上のデータの変位をもつ場合は、AFFIN関数
による座標変換を実行する。制御ボタンからの回転スク
ロールの指令についても、ボタンによるスクロール方向
の指定、及びスクロール量に応じた座標変換を実行す
る。また、拡大及び縮小処理もAFFIN関数の係数を
ボタンに応じた値に設定し、座標変換を実行することに
より実現する。描画アプリケーションは線分レイヤに対
してFPLINED関数、またはFLINED関数を発
行して描画を実行する。また、面レイヤについてはFP
OLY関数、PAINT関数、文字レイヤについてはE
TCPY関数やTCPY関数により描画を実施する。
【0267】図116は本システムにおける、地図描画
以外での関数の使用例を示したものである。画面のメニ
ューを示すアイコン等はSARC関数を利用して転送元
座標領域に描画し、FCOPY関数で地図に貼り付けり
ることによって描画座標に描画する。車の位置を示す自
車マーカーは、メニューアイコンと同様に転送元座標に
FPOLY関数を用いて描画し、FCOPY関数による
描画座標へ貼り付けいることにより描画する。
【0268】このように描画関数により、全てのオブジ
ェクトの描画を終了した描画座標に対して、表示領域の
指定はSetDisplya関数を使用して行なう。SetDisplya関
数は描画座標領域内の表示する領域を指定する関数であ
る。なお、本システムでは描画座標領域を表示画面の4
倍のスケールで確保している。このため、上下左右への
並進方向のスクロールに対しては、表示領域が描画領域
を越えてしまうまでの間は、SetDisplay関数による表示
領域の変更で対応することができ、再描画を実行する必
要はない。
【0269】図117は線分レイヤの描画を例にした描
画関数の発行手順を示したものである。線分レイヤには
道路等の折れ線で構成される地図データが格納されてい
る。描画アプリケーションは始めにFPLINED関数
を発行する。FPLINED関数は指定された全ての折
れ線を構成する線分の描画に成功した場合、リターン値
として0を返す従って、また描画できなかった線分が残
っている場合はその線分数を、関数エラーの時は−1を
返す。従って、ここでは、リターン値が0以下であるこ
とを判定条件に、正常終了またはエラーと、未描画線分
ありの場合分けを実行する。その後、リターン値=0の
判定条件により正常終了とエラーを場合分けし、それぞ
れ処理終了とエラー処理を実行する。未描画線分ありの
場合はリターン値を利用してFPLINED関数による
線分描画を実行する。この時、FLINED関数を発行
する度にリターン値を−1し、最終的にその値が0にな
るまでFLINED関数の発行を繰り返す。
【0270】本システムの描画アプリケーションには、
回転スクロール時の文字の重なりを防ぐ機能を採用して
いる。文字の重なりは、近接する座標点をもつ文字列同
士が、回転スクロール等座標変換によって重なって表示
されてしまうケースである。図118は回転スクロール
時の文字の重なり機能を説明するものである。地図デー
タの文字列は、文字列の第1文字の左下隅を座標点とし
て与えられている。従って、これは何文字で構成されて
いる文字列に対しても共通である。また、1文字はX軸
方向に16ドット、Y軸方向に16ドットの領域から構
成されている。描画アプリケーションは文字の座標点と
文字数からその文字の占有する領域を計算することが可
能である。これによって、既に描画された文字列に対し
て、描画しようとする文字列が重なるか否かを判定し、
もし重なる場合はその文字列の描画を実行しないことに
よって対策している。
【0271】SetDisplay関数の利用によって、左右上下
の並進方向のスクロールは再描画を行なうことなく実行
し、高速なスクロールを実現する。図119は並進スク
ロールの実現方法を示したものである。並進スクロール
は描画関数のSetDisplay関数の表示領域指定機能により
実現されるもんで、予め表示領域の数倍の領域を描画領
域として確保し、表示領域が描画量域内にあるうちは、
表示領域を変更することでスクロールを実行する。但
し、位置センサからの情報により、並進方向にスクロー
ルする際は表示領域を変更しただけでは自車マーカーの
位置が画面中央からづれてしまう。この対策として、本
システムでは、自車マーカーの退避復帰のアルゴリズム
を採用している。
【0272】図120は自車マーカーの描画手順を示す
ものである。自車マーカーの退避復帰は、予め自車マー
カーを貼り付ける領域の描画データをワークアリアに退
避のコピーをすることから始まり、並進スクロールを行
なう際に退避データを貼り付けることにより、現在まで
の自車マーカーを元々の描画データで塗潰してしまう。
次に、スクロール先の自車マーカー描画位置の描画デー
タを退避し、その後に自車マーカーを描画する。以降、
この繰り返しにより自車マーカーの描画を行なう。
【0273】本システムの制御ボタンのうちシステム制
御に分類された記録ボタン,再生ボタン,走行表示ボタ
ンについて説明する。
【0274】図121は、記録ボタンによる描画情報の
記録媒体への記録動作を示したものである。位置センサ
からグラフィックボード内のプロセッサに送られた位置
データはプロセッサの処理により描画データに変換され
る。本システムはこの描画データをある周期毎に記録媒
体の予め指定された、記録媒体の自動記録領域に格納さ
れる。格納周期は描画アプリケーションによって設定可
能であり、メモリ容量の制限内で現在までの走行経路を
記録できる。メモリ容量をオーバーする場合は、もとっ
も古いデータを格納している領域から順に、データを上
書きする。本システムは、位置データを描画データとし
て、統一フォーマットの描画データとして記録する。
【0275】描画データの記録にはもう一つの方法があ
る。ボタンモード状態にあるときに記録ボタンを押すこ
とにより、現在表示している画面の描画データを、記録
媒体の記録ボタン領域に格納する方式である。この機能
はスクロール機能と同時に使用することにより、予め走
行経路を入力する場合に使用される。即ち、走行経路を
スクロールボタンを用いて、画面中央に位置させた後
に、記録ボタンを押しその描画データを記録する。この
操作を繰り返すことにより走行経路の入力を行なう。
【0276】図122は再生ボタンの機能について示し
たものである。再生ボタンは、再生ボタン1と再生ボタ
ン2の二つのボタンから成る。再生ボタン1は記録媒体
の記録ボタン領域に格納された描画データを元にした、
描画,表示を起動させる機能をもつ。また、再生ボタン
2は記録媒体の自動記録領域に格納された描画データを
元にした、描画,表示を起動させる機能をもつ。従っ
て、再生ボタン1を押すことによって、予め入力した走
行経路を表示することでき、再生ボタン2を押すことに
よって現在までの走行経路を表示させることができる。
【0277】次に、表示似関する関数について説明す
る。図100にSetDisplay関数の仕様を示す。
【0278】SetDisplay(prm,dispXMIN,dispYMIN,di
sXMAX,dispYMAX) prm:描画領域に関する情報を格納したドローラブル構
造体へのポインタ値 dispXMIN,dispYMIN:表示領域の左下点座標 dispXMAX,dispYMAX:表示領域の右上点座標 SetDisplay関数は、描画領域内の表示領域を定義する関
数である。SetDisplay関数は、(XMIN,YMI
N),(XMAX,YMAX)から表示領域のメモリ幅
(disp Width)と表示開始アドレス(dispTopLeftPtr)
を算出し、表示領域の情報をDisplay 構造体に格納す
る。戻り値は正常終了の場合は“0”,エラー発生の場
合は“−1”である。
【0279】次に、本発明による直線描画装置の一実施
例を図面に基づいて説明する。図123は直線描画装置
の一実施例を示す構成図である。図123において、直
線描画装置は描画方式制御部150、座標調整部15
1、データ記憶部152、直線座標生成部153、描画
部154を備えて構成されており、直線の始点座標(X
s,Ys)と終点座標(Xe,Ye)に関する座標デー
タを基に直線の描画データを生成し、この描画データを
画素データとしてフレームバッファ155へ転送するよ
うになっている。
【0280】描画方式制御部150は、図124に示す
ように、直線長算出部251、出力制御部252から構
成されており、出力制御部252にはマルチプレクサ2
56とスイッチ258が設けられている。直線長算出部
251は、座標データを受け、直線の始点座標と終点座
標との差を示すXY座標系の差分データ253として、
ΔX(=Xe−Xs)、ΔY(=Ye−Ys)を生成
し、この差分データ253を座標調整部151へ出力す
るようになっている。さらに、直線長算出部251は、
差分データ253から差分データ253の絶対値|ΔX
|、|ΔY|を生成し、各絶対値を絶対値データ255
としてマルチプレクサ256へ出力するようになってい
る。また直線長算出部251は、差分データ253の示
す差分値の正負を判別し、この判別結果を符号情報25
7としてマルチプレクサ256へ出力するようになって
いる。例えば、ΔXとΔYの符号が同符号の場合には符
号情報257を“0”に設定し、ΔXとΔYの符号が異
符号の場合には符号情報257を“1”に設定するよう
になっている。またさらに、直線長算出部251は絶対
値データ255の値が特定の値以下であるか否かを判定
し、この判定結果に応じた出力選択情報254を出力制
御部252へ出力するようになっている。例えば、|Δ
X|あるいは|ΔY|<3の場合には出力選択情報25
4を“0”に設定し、|ΔX|あるいは|ΔY|≧3の
場合には出力選択情報254を“1”設定するようにな
っている。すなわち、直線長算出部251は差分データ
生成手段、絶対値データ生成手段、符号判別手段、判定
手段を構成するようになっている。
【0281】出力制御部252は、出力選択情報254
が“0”の場合には、絶対値データ255と符号情報2
57を選択してこれらのデータをデータ記憶部252へ
出力し、出力選択情報254が“1”の場合には座標デ
ータを選択して直線座標生成部153へ出力するように
構成されている。すなわち出力制御部252は絶対値デ
ータ255と符号情報257を基にデータ記憶部152
から指定のベクトルデータを選択するためのベクトルデ
ータ選択手段を構成するようになっている。
【0282】データ記憶部152は、図125に示すよ
うに、XY座標系(二次元座標系)における直線の始点
座標と終点座標との差分の絶対値に対応した番地(0,
0〜2,2)に、特定の画素情報に対応した2種類のベ
クトルデータを画素の固定されたパターンテーブルP
1、P2に記憶するようになっている。パターンテーブ
ルP1には差分データ253が同符号の時のベクトルデ
ータが格納されており、パターンテーブルP2には差分
データが異符号の時のベクトルデータが格納されてい
る。
【0283】一方、座標調整部151は、図126に示
すように、X差分判定部350、マルチプレクサ35
1、加算器352、差分組合わせ判定部353、マルチ
プレクサ354、Y差分判定部355、マルチプレクサ
356を備えて構成されている。X差分判定部350
は、差分データΔXの正負を判定し、判定結果に応じた
選択情報357をマルチプレクサ351へ出力するよう
になっている。すなわち、ΔX<0の時には選択情報3
57を“1”に設定し、ΔX≧0の時には選択情報35
7を“0”に設定するようになっている。マルチプレク
サ351は加算値としての選択情報357が“1”の時
にはXの終点座標Xeを出力し、選択情報351が
“0”の時にはXの始点座標Xsを出力するようになっ
ている。また差分組合わせ判定部353は、差分データ
の値が特定の値か否かを判定し、この判定結果に応じて
“1”または“0”をマルチプレクサ354へ出力する
ようになっている。例えば、ΔX=1でかつΔY=−2
あるいはΔX=−1でかつΔY=2の時には組合わせ情
報358を“1”に設定し、それ以外の時には“0”に
設定するようになっている。マルチプレクサ354は組
合わせ情報358が“1”の時には“−1”を選択し、
組合わせ情報358が“0”の時には“0”を選択する
ようになっている。そして、加算器352はマルチプレ
クサ351、354の出力をそれぞれ加算し、これらの
加算値から補正X座標を生成し、この座標に関するデー
タを描画部154へ出力するようになっている。またY
差分判定部355は、ΔYの正負を判別し、この判別結
果に応じた加算値選択情報359をマルチプレクサ35
6へ出力するようになっている。すなわち、ΔY<0の
時には“1”をマルチプレクサ356に出力し、ΔY≧
0の時には“0”をマルチプレクサ356に出力するよ
うになっている。マルチプレクサ356は選択情報35
9が“1”の時にはYeを出力し、選択情報359が
“0”の時にはYsを出力するようになっている。この
場合マルチプレクサ356からは補正Y座標に関するデ
ータが出力されることになる。すなわち、座標調整部1
51は、座標データと差分データ253を基にベクトル
データの特定の座標をXY座標点の始点座標に調整する
ようになっている。
【0284】次に、前記直線描画装置の作用について説
明する。
【0285】まず、|ΔX|あるいは|ΔY|<3の場
合について説明する。直線描画装置に座標データとして
図127の符号S,Eで示すように、始点座標(Xs,
Ys)=(4,3)、終点座標(Xe,Ye)=(5,
1)が入力された時について以下に説明する。なお、図
中×印は既に描画されている画素データを示すものとす
る。
【0286】直線長算出部251に座標データが入力さ
れると、差分データ253として、ΔX=Xe−Xs=
1,ΔY=Ye−Ys=−2が算出される。この時、Δ
X,ΔYは異符号であるため、符号情報257は“1”
に設定される。さらに、|ΔX|=1,|ΔY|=2で
あるため、出力情報254として“0”が設定される。
出力情報254が“0”に設定されると、符号情報とし
て“1”のデータがデータ記憶部152へ出力されると
ともに、絶対値データ255として、|ΔX|=1,|
ΔY|=2のデータがデータ記憶部152へ出力され
る。この場合、ΔX,ΔYは異符号で、絶対値データか
ら得られた番地が(1,2)に設定されるため、パター
ンテーブルP2のうち番地(1,2)に格納されたベク
トルデータがデータ記憶部152から選択され、選択さ
れたベクトルデータが描画部154へ出力される。
【0287】一方、座標調整部151には、ΔX=1,
ΔY=−2と座標データが入力される。この時ΔX=1
であることから選択情報357には“0”が設定され、
マルチプレクサ351からはXs=4が出力される。さ
らに差分組合わせ判定部353にはΔXとΔYが入力さ
れている。この時ΔX=1でかつΔY=−2であるか
ら、組合わせ情報358は“1”に設定される。このた
めマルチプレクサ354は組合わせ情報358が“1”
であることから“−1”を選択し、この値を加算器35
2へ出力する。加算器352はマルチプレクサ351か
らのXs=4とマルチプレクサ354の出力“−1”を
加算し、“3”を補正X座標として描画部154へ出力
する。
【0288】一方、Y差分判定部355には差分データ
ΔY=−2が入力され、選択情報352が“1”に設定
され、マルチプレクサ356からは補正X座標として、
Ye=1が描画部154へ出力される。
【0289】描画部154は(補正X座標,補正Y座
標)にデータ記憶部152の3×3の、ベクトルデータ
の左下点を合わせ、フレームバッファ155に描画す
る。すなわち描画部154はデータ記憶部152からの
ベクトルデータと座標調整部151からのデータを受
け、これらのデータを基に描画データを生成し、この描
画データを画素データに展開する為の処理を行うように
なっている、そしてこの時、描画部154はベクトルデ
ータの“1”の部分を画素データに展開し、“0”の部
分は透過処理(すなわち、“0”の部分は基の画素情報
として残す処理。)するようになっている。以上の処理
が行われると、図128に示すように、始点Sから終点
Eまでの直線が描画されることになる。
【0290】次に、|ΔX|あるいは|ΔY|≧3の時
にのみ用いられる直線座標生成部153の具体的構成に
ついて説明する。この直線座標生成部153は、図12
9に示すように、判定部450、誤差項算出部451、
第1定数発生部452、第2定数発生部453、座標算
出部454を備えて構成されている。判定部450は、
始点座標と終点座標を含む座標データを受け、座標デー
タから差分データとしてΔX,ΔYを算出する。そして
ΔX≧0の時は増分情報fx456を“1”に設定し、
ΔXを誤差項算出部451、第1、第2定数発生部45
2、453へ出力する。一方、ΔX<0の時には増分情
報fx456を“0”に設定し、−ΔXを誤差項算出部
451、第1、第2定数発生部452、453へ出力す
る。またΔY≧0の場合は増分情報fy457を“1”
に設定し、ΔYを誤差項算出部451、第1、第2定数
発生部452、453へ出力する。さらにΔY<0の時
には増分情報fy457を“0”に設定し、−ΔYを誤
差項算出部451、第1、第2定数発生部452、45
3へ出力する。またさらに、ΔX≧ΔYの時には判定情
報455を“1”に設定し、この値を誤差項算出部45
1、第1、第2定数発生部452、453へ出力する。
一方、ΔX<ΔYの時には判定情報455を“0”に設
定し、この値を誤差項算出部451、第1、第2定数発
生部452、453へ出力する。
【0291】誤差項算出部451は、判定情報455が
“1”の時には、誤差項d=2×ΔY(あるいは−Δ
Y)−ΔX(あるいは−ΔX)を算出し、この算出値を
座標算出部454へ出力する。一方、判定情報455が
“0”の時には、誤差項d=2×ΔX(あるいは−Δ
X)−ΔY(あるいは−ΔY)を算出し、この算出値を
座標算出部454へ出力する。第1定数発生部452は
判定情報455が“1”の時には定数c1=2×ΔY
(あるいは−ΔY)を算出し、この算出値を座標算出部
454へ出力する。また判定情報455が“0”の時に
は定数c1=2×ΔX(あるいは−ΔX)を算出し、算
出値を座標算出部454へ出力する。一方、第2定数発
生部453は判定情報455が“1”の時には定数c2
=2×(ΔY(あるいは−ΔY)−ΔX(あるいは−Δ
X))を算出し、算出値を座標算出部454へ出力す
る。判定情報455が“0”の時には定数c2=2×
(ΔX(あるいは−ΔX)−ΔY(あるいは−ΔY))
を算出し、算出値を座標算出部454へ出力する。座標
算出部454は判定情報455が“1”の場合にはX座
標にfxを加算し、誤差項d<0の時には誤差項dと定
数c1を加算する。一方、誤差項d≧0の時には誤差項
dを定数c2を加算し、Y座標にfyを加算する。以上
の処理により新たな座標を算出し、算出したデータを描
画部154へ出力する。この処理はΔX=−1となるま
で繰り返す。
【0292】一方、Y座標に関する処理として、判定情
報455が“0”の時にはY座標にfyを加算し、誤差
項d<0の時には誤差項dと定数c1を加算する。一
方、誤差項d≧0の時には誤差項dと定数c2を加算
し、X座標にfxを加算する。以上の処理により新たな
座標が算出され、算出された座標を描画部154へ出力
する。そして以上の処理をΔY=−1となるまで繰り返
す。これにより始点座標と終点座標を結ぶ直線の各座標
が算出されることになる。次に、図130に従って具体
例について説明する。
【0293】まず、図130に示すように、始点Sと終
点Eに関する座標データとして、始点座標=(1,
1),終点座標=(5,4)のデータが入力されると、
各座標の差分データとして、ΔX=4,ΔY=3が算出
される。この結果ΔX≧ΔYであるため、判定情報45
5は“1”に設定され、増分情報は、fx=1,fy=
1にそれぞれ設定される。そして最初の誤差項dとし
て、d=2×3−4=2、定数c1=2×3=6、定数
c2=2×(3−4)=−2が求められる。これらの算
出値から、始点の次に描画すべき座標として、(2,
2)が算出され、誤差項dには定数c2が加算され、d
=0となる。このような処理を繰り返すことにより、図
131に示すように、始点Sから終点Eまでのベクトル
が描画される。
【0294】以上のように、本実施例によれば、3画素
までの直線を描画するときには、データ記憶部152か
ら指定のベクトルデータを読み出すだけで、3×3の9
画素のタイルを描画することができる。このため、デー
タ記憶部152には特定の画素情報に対応したベクトル
データを記憶するだけでよいので、ベクトルデータの記
憶容量を低減することができる。
【0295】さらに、図160に示すように、3画素ま
での直線を描画するときには、画素数に関わらずデータ
記憶部152から指定のベクトルデータを読み出すだけ
でよいため、処理時間を一定にできるとともに、描画を
高速度に行うことができる。また、4画素以上の直線を
描画する時には、1画素ずつ描画座標を決定するため、
処理時間は画素数に比例した値となる。
【0296】また本実施例によれば、3画素以下の短い
直線を描画する場合、データ記憶部152から指定のベ
クトルデータを読み出すだけでよいため、直線を描画す
るための式およびそれに必要なデータを算出するための
オーバーヘッドを削除することができる。また、長い直
線を描画する場合には、式を用いて描画することから、
ベクトルデータを記憶するデータ記憶部152の容量の
増加を抑えることができる。このため、少ない記憶資源
で高速な直線描画を実行するシステムを実現することが
できる。
【0297】次に、直線描画装置をマイクロコンピュー
タで構成した時の実施例を図132に従って説明する。
本実施例は、複数のレジスタからなるレジスタファイル
1000と汎用演算器1001、リードライト部100
7と、各部を接続するバス1004、1005、100
6と、各部を制御する制御回路1002とからなるCP
U1009と、I/O1003と、不揮発性RAM10
08とを備え、各部がバス1010を介して接続されて
いる。そしてCPU1009は、図123に示す描画方
式制御部150、座標調整部151、直線座標生成部1
53、描画部154と同等な機能を備え、RAM100
8は、図133に示すように、データ記憶部152と同
様に、2種類のパターンデーブルP1、P2に特定の画
素情報に対応したベクトルデータを格納している。
【0298】次に、本実施例の作用を図134乃至図1
36のフローチャートに従って説明する。
【0299】まず、I/O1003から直線の始点座標
と終点座標に関する座標データが入力されると、CPU
1009により、|ΔX|と|ΔY|が算出され、描画
するための画素数が4以上か否かの判定が行われる(ス
テップ1100、1101)。各座標の偏差が3以下と
判定されたときには、ΔXとΔYが同符号であるか否か
の判定を行う(ステップ1102)。そして同符号の場
合にはRAM1008に格納されているベクトルデータ
のうちパターンテーブルP1に格納されているベクトル
データを読み出す(ステップ1103)。次に、ΔX<
0の時には、Xeを選択し、ΔX≧0時はXsを選択す
る。さらに、ΔX=1でかつΔY=−2の時はXsから
1を減算し、ΔX=−1でかつΔY=2の時はXeから
1を減算して補正X座標を算出する。同様に、ΔY<0
の場合には、Yeを選択し、ΔY≧0時はYsをそれぞ
れ補正Y座標とする(ステップ1104)。なお、ΔX
とΔYが異符号の時には、ステップ1103、1104
と同様な処理により、補正X座標と補正Y座標を算出す
る(ステップ1105、1006)。
【0300】一方、描画する画素数が4以上、すなわち
各座標の偏差が4以上と判定されたときには、直線の座
標を求める式を算出し(ステップ1107)、この算出
した式から座標を算出し(ステップ1108)、これら
の処理が終了するまで以上の処理を繰り返す。
【0301】次に、ステップ1107の具体的な処理を
図135に従って説明する。まず、ΔXを算出し(ステ
ップ1200)、ΔX≧0の時は、fx=1に設定し
(ステップ1201、1202)、ΔX<0の時にはf
x=0とし、ΔXを−(ΔX)とする(ステップ120
1、1203)。次に、ΔYを算出し(ステップ120
4)、ΔY≧0の時は、fy=1とし(ステップ120
5、1206)、ΔY<0の時にはfy=−1とし、Δ
Yを−(ΔY)とする(ステップ1205、120
7)。
【0302】次に、ΔX≧ΔYの時には、誤差項d=2
×ΔY−ΔX、定数c1=2×ΔY、定数c2=2×
(ΔY−ΔX)を算出する(ステップ1208、120
9)。一方、ΔX<ΔYのとの時には、誤差項d=2×
ΔX−ΔY、定数c1=2×ΔX、定数c2=2×(Δ
X−ΔY)を算出する(ステップ1208、120
9)。
【0303】次に、ステップ1108、1109の具体
的な内容を図136のフローチャートに従って説明す
る。まず、ステップ1210に続く処理として、X座標
にfxを加算する(ステップ1300)。次に、誤差項
d<0の時には、誤差項dと定数c1を加算する(ステ
ップ1301、1303)。一方、誤差項d≧0の時に
は、誤差項dと定数c2と加算し、Y座標にfyを加算
する(ステップ1301、102)。
【0304】以上の処理により、新たな座標が算出され
る。これらの処理をΔX=−1となるまで繰り返すと、
新たな座標が順次算出される(ステップ1304)。
【0305】一方、Y座標に関する処理として、ステッ
プ1209で得られた値を基にY座標にfyを加算する
(ステップ1305)。そして、誤差項d<0の時には
誤差項dと定数c1を加算する(ステップ1306、1
308)。一方、誤差項d≧0の時には誤差項dと定数
c2を加算し、X座標にfxを加算する(ステップ13
06、1307)。
【0306】以上の処理により、新たなY座標が算出さ
れる。これらの処理をΔY=−1となるまで繰り返す
と、新たなY座標が順次算出される(ステップ130
9)。
【0307】このように、本実施例によれば、一般的な
CPUでも容易に高速で且つ少ない記憶資源で直線を描
画することができる。
【0308】図137に本発明の直線描画装置を起動す
る命令の一実施例を示す。オペコード1500、150
2、1504は足算、引算などの命令をコード化したも
のであり、描画する直線の長さに応じて定義されてい
る。またオペランド1501、1503、1505は命
令の具体的な内容を特定するために、直線の始点座標お
よび終点座標となるレジスタ単位の指定を行うようにな
っている。なお、図中r1、r2、r3、r4はレジス
タ単位を表している。そしてオペコード1500として
用いられるSLINE命令は短い線だけを描画する命令
として用いられ、座標調整部151とデータ記憶部15
2の起動を1ステップで記述できることを特徴とし、オ
ペランド1502として用いられるLLINEは長い線
だけを描画する命令として用いられ、直線座標生成部1
53の起動を1ステップで記述できることを特徴として
いる。またオペランド1504として用いられるLIN
E命令は長い線であるか短い線であるかを判定し、その
判定結果によって描画方法を選択する命令として用いら
れ、直線描画装置の起動を1ステップで記述できること
を特徴としている。さらに、直線描画装置を選択して使
用する命令であるSLINE命令およびLLINE命令
と直線描画装置を全て使用するLINE命令を合わせ持
つことができるように構成することもできる。
【0309】また直線描画装置をマイクロコンピュータ
で構成した場合、図138に示すように、マイクロコン
ピュータ1600の出力にフレームメモリ1601を接
続し、フレームメモリ1601に格納された画素データ
を表示装置1602に出力し、表示装置1602からの
信号によってCRT1603の画面上に画素データに従
った図形を表示することができる。すなわちこのような
構成によって図形表示装置を構成することができる。さ
らに表示装置1602に印字装置を接続すれば、表示装
置1602に表示された図形を印字装置に印字すること
もできる。
【0310】次に、直線描画装置の他の実施例を図13
9に従って説明する。本実施例は、図123に示すデー
タ記憶部152の代わりに、データ記憶部156を設け
たものであり、他の構成は図123のものと同様である
ため、同一のものには同一符号を付してそれらの説明は
省略する。
【0311】データ記憶部156は、図140に示すよ
うに、画素可変長のパターンテーブルP1、P2を備え
ており、各パターンテーブルP1、P2には、XY座標
における始点座標と終点座標との差分の絶対値に対応し
た番地に、特定の画素情報に対応したベクトルデータが
格納されている。そして本実施例におけるデータ記憶部
156の特徴として、ベクトルデータとして“1”の部
分のみを保持し、“0”の部分は前記実施例と同様に透
過処理されるようになっている。
【0312】本実施例によれば、データ記憶部156に
は、“1”のデータのみが保持されているため、前記実
施例よりもデータ記憶部156の記憶容量を低減するこ
とができる。
【0313】このように、本実施例においては、3画素
以下の直線を描画する場合、データ記憶部156から指
定のベクトルデータを読み出し、データのある部分のみ
を描画することができる。このため、本実施例によれ
ば、図161に示すように、前記実施例と異なり、3画
素以下の直線を描画する場合でも、画素数に比例した処
理時間となる。但し、データ記憶部156からベクトル
データを読み出すのみであるため、4画素以上の直線を
描画するときに比べて、1画素当たりの描画処理時間は
短くなる。
【0314】また、マイクロコンピュータの主メモリあ
るいはRAM1008に、図141に示すようなベクト
ルデータを記憶することもできる。この場合、特定の番
地のベクトルデータを1画素エリア、2画素エリア、3
画素エリアに対応付けて格納することができる。
【0315】次に、図141に示すベクトルデータを用
いた時の処理を図142のフローチャートに従って説明
する。
【0316】まず、CPU1009に座標データが入力
され、始点と終点の座標が指定されると、ΔXとΔYが
算出され(1900)、描画する画素数が4以上か否か
の判定が行われる(ステップ1901)。4画素以上の
時には前述したステップ1107〜1109の処理が実
行される。
【0317】一方、3画素以下の時には、1画素、2画
素あるいは3画素によって、ΔX、ΔYが同符号か否か
の判定を行う(ステップ1902、1905、190
8)。そして同符号の時には1画素エリア、2画素エリ
アあるいは3画素エリアの同符号のベクトルデータを読
み出す(ステップ1903、1906、1909)。逆
に異符号の時には、1画素エリア、2画素エリアあるい
は3画素エリアのベクトルデータのうち異符号のベクト
ルデータを読み出す(ステップ1904、1907、1
920)。そして読み出したベクトルデータを基に補正
座標を算出し(ステップ1911)、算出した座標を基
に直線を描画する(ステップ1912)。以上の処理を
行うことによって、前記実施例と同様に、画素数が3以
下の時には高速に直線を描画することができる。
【0318】このように、本実施例によれば、一般的な
CPUでも容易に高速でかつ少ない記憶資源で直線を描
画することができる。
【0319】図143に、マイクロコンピュータを用い
た直線描画装置を起動する命令の他の実施例を示す。オ
ペコード2100、2102、2104は描画する直線
の長さに応じて定義され、オペランド2101、210
3、2105は直線の始点座標および終点座標となるレ
ジスタ単位の指定を行うようになっている。
【0320】オペコード2100に用いられるVSLI
NE命令は短い線を描画するときに、パターンテーブル
を貼付ることによって描画する命令として用いられ、こ
の命令は、ユーザーが描画しようとする線が短い線であ
ることを認識している場合に用いられる。そしてこの命
令は座標調整部151とデータ記憶部156の起動を1
ステップで記述できることを特徴としている。オペコー
ド2102のVLLINE命令は長い線を公式による数
値演算により描画する命令として用いられ、この命令は
ユーザーが描画しようとする線が長い線であることを認
識している場合に用いられる。この命令は直線座標生成
部153の起動を1ステップで記述できることを特徴と
している。またオペランド2104のVLINE命令は
描画しようとする線が短い線であるか長い線であるかを
判定し、短い線の場合はテーブルパターンの貼り付けで
描画を行い、長い線の場合は公式により描画を行う命令
を表すようになっている。この命令は直線描画装置の起
動を1ステップで記述できることを特徴としている。
【0321】図139に示す直線描画装置と同等の機能
を有するものをマイクロコンピュータで構成した場合、
図144に示すように、このマイクロコンピュータ22
00をフレームメモリ2201、表示装置2202を介
して、CRT2203に接続し、図形表示装置を構成す
ることができる。この場合、表示装置2202に印字装
置を接続すれば、表示装置2202に表示された図形を
印字装置に印字することができる。
【0322】次に、本発明による直線描画装置の他の実
施例を図145に従って説明する本実施例は、始点座標
と終点座標を基に中間点の座標を生成し、生成した座標
を基に直線を描画するようにしたものであり、データ記
憶部を設けることなく、描画方式弁別部160、中間点
座標生成部161、描画部162、直線座標生成部15
3を備えて構成されている。
【0323】描画方式弁別部160は、図146に示す
ように、直線長算出部260、出力制御部261を備え
て構成されている。直線長算出部260は、直線の始点
座標と終点座標を含む座標データを受け、この座標デー
タを基に、始点座標と終点座標の差を示す差分データ2
62として、ΔX、ΔYを生成し、この差分データ26
2を出力制御部261へ出力するようになっている。さ
らに直線長算出部260は差分データ262の|ΔX|
と|ΔY|を算出し、絶対値データの示す絶対値の値が
特定の値であるか否かを判定し、この判定結果に応じた
出力選択情報263を出力制御部261へ出力するよう
になっている。出力制御部261は、座標データを入力
するとともに、直線長算出部260から差分データ26
2と出力選択情報263を入力し、出力選択情報263
の内容が、|ΔX|あるいは|ΔY|≧3の時には、直
線座標生成部153へ座標データを出力し、|ΔX|あ
るいは|ΔY|=2の時には中間点座標生成部161へ
差分データ262を出力し、|ΔX|あるいは|ΔY|
≦2の時には描画部162へ座標データを出力するよう
に構成されている。すなわち描画方式弁別部160は差
分データ生成手段、絶対値データ生成手段、判定手段を
構成するようになっている。
【0324】一方、中間点座標生成部161は図147
に示すように、加算値生成部360、加算器361、3
62を備えて構成されている。加算値生成部360は差
分データ262を受け、ΔXが正の時にはX座標加算値
として“1”、ΔXが負の時にはX座標加算値として
“−1”を加算器361へ出力し、ΔYが正の時はY座
標加算値として“1”、ΔYが負の時にはY座標加算値
として“−1”を加算器362へ出力するように構成さ
れている。加算器361はX座標加算値と始点X座標と
を加算し、加算した値を中間点X座標として描画部16
2へ出力するようになっている。加算器362はY座標
加算値と始点のY座標とを加算し、加算した値を中間点
Y座標として描画部162へ出力するようになってい
る。すなわち、中間点座標生成部161は符号判別手
段、座標加算値生成手段および中間点座標生成手段を構
成するようになっている。
【0325】次に、図145に示す直線描画装置の作用
を図148に従って説明する。
【0326】まず、始点Sの始点座標(3,2)、終点
Eの終点座標(1,1)が座標データとして入力される
と、差分データ262が算出されるとともに絶対値デー
タが算出される。この時、|ΔX|=2,|ΔY|=1
であるため、出力選択情報263に従って中間点座標生
成部161にΔX、ΔYの値が出力される。さらに座標
データが描画部162へ出力される。そして中間点座標
生成部161に差分データ262としてΔX=−2,Δ
Y=−1の値が入力されると、X座標加算値として“−
1”、Y座標加算値として“−1”を生成する。この後
加算器361でX座標加算値と始点座標が加算され、中
間点X座標として“2”が描画部162へ出力される。
同様に、加算器362ではY座標加算値に始点座標が加
算され、中間点Y座標として“1”が描画部162へ出
力される。描画部162では、各座標の始点座標、終点
座標および中間点座標を基に描画データを生成し、この
描画データに従って画素データを展開する。これによ
り、始点Sから終点Eまでの直線が描画される。
【0327】なお、|ΔX|あるいは|ΔY|≧3の時
には、図123と同様な処理が行われるため、説明を省
略する。
【0328】本実施例における装置を用いて直線を描画
した時の、直線の画素数と処理時間の関係を図162に
示す。
【0329】本実施例における装置は、3画素までの直
線の場合は複雑な直線描画方式を採らずに描画すること
ができる。このため、3画素までの直線の描画処理時間
は4画素以上の場合に比べ、1画素当たりの描画処理時
間は短くなる。
【0330】このように、本実施例によれば、短い直線
を描画する場合、始点座標と終点座標から中間点座標を
算出することによって描画データを生成することがで
き、直線を描画するための式およびそれに必要なデータ
を算出するというオーバーヘッドを削除することができ
る。さらに、3画素以下のベクトルデータを記憶する必
要がないので、記憶容量の低減を図ることができる。
【0331】また、図145に示す装置と同等の機能を
有するものをマイクロコンピュータで構成することがで
き、この時の処理を図149に従って説明する。
【0332】まず、マイクロコンピュータに直線の始点
座標と終点座標を含む座標データが入力されると、差分
データとして|ΔX|と|ΔY|が算出される(ステッ
プ2700)。この算出値から描画する画素数が4以上
か否かの判定が行われる(ステップ2701)。そして
描画する画素数が1の時には始点を描画し、処理を終了
する(ステップ2702、2703)。また描画する画
素数が2の時には始点と終点を描画し、この処理を終了
する(ステップ2704、2705)。さらに描画する
画素数が3の時にはΔXとΔYを算出する(ステップ2
706)。この後ΔXが正の時には始点のX座標に
“1”を加算し(ステップ2707、2708)、ΔX
が負の時には始点のX座標に“1を減算する(ステップ
2707、2709)。次に、Yが正の時には始点のY
座標に“1”を加算し(ステップ2710、271
1)、ΔYが負の時には始点のY座標に“1を減算する
(ステップ2710、2712)。そして算出された中
間点座標(Xm,Ym)を描画する(ステップ271
3)。なお、画素数が4以上の時には前記実施例と同様
に、ステップ1107、1108、1109の処理が行
われる。
【0333】このように、本実施例によれば、一般的な
CPUを用いても容易にかつ高速に直線を描画すること
ができる。
【0334】図150にマイクロコンピュータを用いた
直線描画装置を起動する時の命令の実施例を示す。オペ
コード2800、2802、2804、2806は描画
する直線の長さに応じて定義され、オペランド280
1、2803、2805、2807は直線の始点座標お
よび終点座標となるレジスタ単位の指定を行うようにな
っている。オペランド2800に用いられる1LINE
命令は1画素で構成される線あるいは点を描画する命令
として用いられ、この命令は画素数1の直線描画処理を
1ステップで記述できることを特徴としている。オペラ
ンド2802で表される2LINE命令は2画素で構成
される線を描画する命令として用いられ、この命令は画
素数2の直線描画処理を1ステップで記述できることを
特徴としている。オペランド2804で表される3LI
NE命令は3画素で構成される線を、中間点を求めるア
ルゴリズムを用いて描画する命令として用いられ、この
命令は画素数3の直線描画処理を1ステップで記述でき
ることを特徴としている。また、オペランド2806で
表されるLINE命令は与えられた始点と終点の座標か
ら、その直線が何画素で構成されているのかを判定し、
画素数に対応した1LINE命令、2LINE命令、3
LINE命令、公式によるアルゴリズムを選択して描画
する命令として用いられ、この命令は直線描画装置の起
動を1ステップで記述できることを特徴としている。
【0335】また、図145に示す直線描画装置をマイ
クロコンピュータで構成した場合、図151に示すよう
に、このマイクロコンピュータ2900をフレームメモ
リ2901、表示装置2902を介してCRT2903
に接続し、図形表示装置を構成することができる。この
場合、表示装置2902に印字装置を接続すれば、表示
装置2902に表示された図形を印字装置に印字するこ
とができる。
【0336】次に、本発明による直線描画装置の他の実
施例を図152に従って説明する。
【0337】本実施例は、始点座標と終点座標を含む座
標データから直線の属性を判定し、X座標の差分値が零
の時には垂直線を描画し、Y座標の差分値が零の時には
水平線を描画するようにしたものであり、描画方式弁別
部170、特定座標生成部171、描画部172、直線
座標生成部153を備えて構成されている。
【0338】描画方式弁別部170は、図153に示す
ように、直線属性判定部270、出力制御部271を備
えて構成されている。直線属性判定部270は、直線の
始点座標と終点座標に関する座標データを受け、これら
の座標データから始点座標と終点座標の差を示す差分デ
ータとしてΔXとΔYを算出する。そしてΔXあるいは
ΔYが“0”の時には出力選択情報272に“1”をセ
ットし、ΔXとΔYがいずれも“0”でない時には出力
選択情報272を“0”にセットする。さらにΔXが
“0”の時には選択データ273として始点と終点のY
座標(Ys,Ye)を出力制御部271へ出力する。ま
たΔYが“0”の時には選択データ273として始点と
終点のX座標(Xs,Xe)を出力制御部271へ出力
する。出力制御部271は、出力選択情報272が
“0”の時には座標データを直線座標生成部153へ出
力し、出力選択情報が“1”の時には選択データ273
を特定座標生成部171へ出力するように構成されてい
る。すなわち描画方式弁別部170は差分データ生成手
段、垂直線判定手段、符号判別手段を構成するようにな
っている。
【0339】一方、特定座標生成部171は図154に
示すように、加算値生成部370、加算器371、ルー
プ制御部372を備えて構成されている。加算値生成部
370は出力制御部271から座標データとして(X
s,Xe)あるいは(Ys,Ye)が入力として与えら
れている。加算値生成部370は入力データを基にΔX
あるいはΔYを算出する。そしてΔXあるいはΔYが正
の時には“1”を加算値として、ΔXあるいはΔYが負
の時には“−1”を加算値として加算器371へ出力す
る。さらに、ΔXあるいはΔYをループ制御値としてル
ープ制御部372へ出力する。加算器371は、始点座
標(XsあるいはYs)と加算値とを加算し、加算した
値を描画座標として生成し、生成した描画座標に関する
データを描画部172へ出力するようになっている。ま
た算出された座標データはループ制御部372に入力さ
れ、ループ制御値=0になるまで加算器371による加
算が行われる。すなわち特定座標生成部171はX座標
加算値生成手段、Y座標加算値生成手段、X座標生成手
段、Y座標生成手段を構成するようになっている。
【0340】次に、図152に示す直線描画装置の作用
を説明する。
【0341】まず、ΔXあるいはΔY=0の時について
説明する。図155に示すように、始点Sの始点座標=
(3,4)、終点Eの終点座標=(3,9)が座標デー
タとして入力されると、直線属性判定部270で差分デ
ータが算出される。この時ΔX=0、ΔY=5となるた
め、線分の属性が垂直線として判定され、出力選択情報
272に“1”が設定される。そして選択データ273
としてY座標の始点および終点の座標データが出力制御
部271へ出力される。出力制御部271は、出力選択
情報272が“1”であることから、選択データ273
を特定座標生成部171へ出力する。特定座標生成部1
71は、ΔY=5であることから、加算値として“1”
を選択し、“5”をループ制御値としてループ制御部3
72へ出力する。さらに加算器371で、Ys=4と加
算値=1とが加算され、新たなY座標値=5が生成され
る。このような処理をΔY=0となるまで加算を繰り返
すことにより、図156に示すように、始点Sから終点
Eまでの直線が垂直線として描画される。なお、ΔXあ
るいはΔYが0でない時には図123の装置と同様な処
理が行われるため、説明を省略する。
【0342】また、ΔY=0で、ΔXが0以外の時に
は、線分の属性が水平線として判定され、ΔX=0とな
るまで加算を繰り返すことによって水平線を描画するこ
とができる。
【0343】図163に、本実施例における装置を用い
て水平線および垂直線を描画した時の直線の描画数と処
理時間の関係を示す。本実施例における装置を用いて水
平線および垂直線を描画する場合、複雑な直線描画方式
を採らずに描画することができる。このため、水平線お
よび垂直線の描画処理時間はその他の直線の場合に比べ
て、1画素当たりの描画処理時間を短くすることができ
る。
【0344】本実施例によれば、直線の属性に着目する
ことによって水平線および垂直線を描画することがで
き、直線を描画するための式およびそれに必要なデータ
を算出するというオーバーヘッドを削除することができ
る。さらに、水平線および垂直線を描画するためのベク
トルデータを記憶するためのデータ記憶部を設ける必要
がないため、データ記憶部の記憶容量を低減することが
できる。
【0345】次に、図152に示す装置をマイクロコン
ピュータで構成した時の処理を図157のフローチャー
トに従って説明する。まず、直線の始点座標と終点座標
を含む座標データが入力されると、直線の属性を判定す
るために、ΔXとΔYを算出する(ステップ360
0)。次に、ΔXとΔYのいずれかが0であるか否かを
判定し(ステップ3601)、ΔX=0の時には垂直線
を描画するための処理として、ΔYが正か否かを判定す
る(ステップ3603)。そしてΔYが正の時にはY座
標に“1”を加算し、新たなY座標Ynを生成する(ス
テップ3604)。次に、座標(Xs,Yn)に描画し
(ステップ3605)、ΔY=0となるまでステップ3
604〜3605の処理を繰り返す。これにより垂直線
が描画される。 一方、ΔYが負の時にはY座標から
“1”を減算し、新たなY座標Ynを生成する(ステッ
プ3607)。次に座標(Xs,Yn)に描画し(ステ
ップ3608)、ΔY=0となるまでステップ3607
〜3608までの処理を繰り返す。これにより、始点か
らY軸に沿って下に下がる垂直線を描画することができ
る。
【0346】一方、ΔY=0と判定された時には、水平
線を描画するための処理として、ΔXが正か否かを判定
する(ステップ3610)。この時ΔXが正の時にはX
座標に“1”を加算し、新たなX座標Xnを生成する
(ステップ3611)。次に、座標(Xs,Yn)に描
画し(ステップ3612)、ΔX=0となるまでステッ
プ3611〜3612の処理を繰り返す。これにより水
平線を描画することができる。また、ΔXが負の時に
は、X座標から“1”を減算し、新たなX座標Xnを生
成する(ステップ3614)。次に座標(Xs,Yn)
に描画し(ステップ3615)、ΔX=0となるまでス
テップ3614〜3615の処理を繰り返す。これによ
り、水平線を描画することができる。
【0347】このように、本実施例によれば、一般的な
CPUを用いても水平線および垂直線を容易にかつ高速
に描画することができる。
【0348】次に、図158に図152の装置をマイク
ロコンピュータで構成したときの起動命令の実施例を示
す。オペコード3700、3702、3704は描画す
る直線の属性に応じて定義され、オペランド3701、
3703、3705は直線の始点座標および終点座標と
なるレジスタ単位の指定を行うように設定されている。
オペランド3700で表されるHLINE命令は水平線
を描画する命令として用いられ、この命令は水平線の描
画処理を1ステップで記述できることを特徴としてい
る。オペランド3702で表されるVLINEは垂直線
を描画する命令として用いられ、この命令は垂直線の描
画処理を1ステップで記述できることを特徴としてい
る。また、オペランド3704で表されるLINE命令
は、与えられた始点と終点から、その直線が水平線ある
いは垂直線またはそれ以外かを判定して、対応したHL
INE命令、VLINE命令、公式によるアルゴリズム
を選択して描画する命令として用いられ、この命令は直
線描画装置の起動を1ステップで記述できることを特徴
としている。
【0349】また、図152に示す装置をマイクロコン
ピュータで構成した場合、図159に示すように、この
マイクロコンピュータ3800をフレームメモリ380
1、表示装置3802を介してCRT3803に接続し
て図形表示装置を構成することができる。この場合は、
表示装置3802に印字装置を接続すれば、印字装置に
よって図形を印字することができる。
【0350】
【発明の効果】表示において、フレームバッファの水平
走査をダイレクトメモリアクセスコントローラと呼ばれ
るハードウェアで実現し、垂直走査をマイクロコンピュ
ータのソフトウェアで実現した。マイクロコンピュータ
はアプリケーションプログラムや描画に必須のものであ
るため、特に表示のために設けたものではない。また、
表示の手順を記憶するメモリは大容量化が著しく上記手
順を記憶させてもメモリのチップ数が増加することはな
い。よって、表示のアクセスにおけるハードウェア規模
を小型化する効果がある。
【0351】また、図形要素を特定の属性にて描画する
単機能手順は属性に関する判定とフレームバッファから
の読みだしと演算の全てあるいは一部を実行する必要が
ないため特定の属性を持つ図形要素の描画に要する時間
が短縮できる。特定の属性と異なった属性の場合には多
機能手順によって描画が可能である。この判定はアプリ
ケーションプログラム作成時に定まるものであるから、
単機能手順と多機能手順のどちらを使用するかはあらか
じめ定まる。よって、どちらの手順を実行するかの判定
をソフトウェアで実施する必要がなく、この面でも描画
処理時間を短縮する効果がある。
【0352】文字描画においては、以下に示す効果があ
る。ビットマップ記憶回に文字コードが入力されると、
文字コードに応じたビットマップデータが出力され、2
値ボールド回路に入力される。2値ボールド回路は、ビ
ットマップデータを受け取るとボールドビットマップデ
ータを生成し、ボールドビットマップデータ記憶回路に
出力する。位置変更回路は、ボールド文字を描画する位
置を示すボールド文字位置データを算出し、多値展開・
描画回路に出力する。多値展開・描画回路は先にボール
ドビットマップデータ記憶回路に記憶されたボールドビ
ットマップデータとボールド文字位置データを用いてフ
レームバッファにボールド文字を描画する。次に、ビッ
トマップデータと文字位置データを用いて真の文字をフ
レームバッファに描画する。以上2回の描画で縁取り文
字を描画することができる。その結果、プログラムステ
ップ数の増加を抑えて処理速度を高めることができる。
【0353】多値展開処理においては、以下に示す効果
がある。ドットデータ生成回路は、ハードウェア・描画
情報が入力されるとドットデータを生成し、ドットデー
タ記憶回路に出力する。多値展開描画装置に位置データ
が入力されると、多ドット選択回路はドットデータから
それに応じたドット数の2値ビットマップデータを2値
ビットマップ記憶回路から読み出し、描画回路に出力す
る。多値パターン記憶回路には予め多値パターン発生回
路により生成された多値パターンが蓄えられている。描
画回路は、2値ビットマップ記憶回路から読みだしたデ
ータを多値パターンを選択する情報として用い、多値パ
ターン記憶回路から多値パターンを引き出す。一方、ア
ドレス演算回路は、位置データからそれに対応するフレ
ームバッファのアドレスを算出し、描画回路に出力す
る。描画回路は、多値パターン記憶回路から引き出した
多値パターンをアドレス演算回路が算出したフレームバ
ッファのアドレスに出力する。以上のように多ドットを
同時に多値展開及び描処理画を実行することができる。
その結果、プログラムステップ数の増加を抑えて処理速
度を高めることができる。
【0354】座標変換処理においては、以下に示す効果
がある。座標変換処理装置に変換係数算出データが入力
されると、係数演算回路は変換係数の行列データと精度
パラメータを算出するようにし、係数記憶回路は変換係
数の行列データと精度パラメータを記憶するようにし、
変換演算回路は固定小数点演算で変換演算処理を実行
し、精度パラメータを用いてスケーリングをするように
したから、精度を低下させることなく固定小数点演算で
処理することができる。その結果、精度を落とすことな
く、座標変換処理速度を高めることができる。
【0355】直線描画装置及び図形表示装置によれば、
特定の画素以下の短い直線を描画するときには、データ
記憶部に格納したベクトルデータを読み出すだけで指定
の直線を描画することができ、直線を描画するための式
およびそれに必要なデータを算出するというオーバーヘ
ッドを削除することができる。このため指定の直線を高
速度に描画することができる。さらに特定の画素に対応
したベクトルデータのみをデータ記憶部に記憶すればよ
いので、データ記憶部の記憶容量を低減することができ
る。
【図面の簡単な説明】
【図1】グラフィックスコンピュータの構成例図であ
る。
【図2】表示制御信号発生手段と変換手段の例図であ
る。
【図3】PWMタイマの例図である。
【図4】表示制御信号のタイミングチャートである。
【図5】文字描画装置の機能ブロック図である。
【図6】従来の文字描画装置の機能ブロック図である。
【図7】従来の文字描画処理のフローチャートである。
【図8】ビットマップデータの一例図である。
【図9】2値ボールド回路の機能ブロック図である。
【図10】ボールドビットマップデータの一例図であ
る。
【図11】文字描画装置の処理フローチャートである。
【図12】文字描画装置の記憶回路1,2,3に相当す
る部分のメモリ配置図である。
【図13】ボールドビットマップデータの生成方法とボ
ールドビットマップデータのメモリ配置図である。
【図14】多値展開描画装置の機能ブロック図である。
【図15】従来の多値展開描画装置の機能ブロック図で
ある。
【図16】従来の多値展開描画処理のフローチャートで
ある。
【図17】多値パターン発生回路の機能ブロック図であ
る。
【図18】多値パターン発生回路の説明図である。
【図19】多値パターン記憶回路のデータの一例図であ
る。
【図20】多値展開描画処理のフローチャートである。
【図21】多値パターン生成のフローチャートである。
【図22】多値パターンデータのメモリ配置図である。
【図23】座標変換処理装置の機能ブロック図である。
【図24】係数記憶回路の内容を示す図である。
【図25】変換座標データ群記憶回路の内容を示す図で
ある。
【図26】係数演算回路の機能ブロック図である。
【図27】座標変換の行列式の一例図である。
【図28】座標データ群記憶回路と変換座標データ群記
憶回路の内容の関係を示す図である。
【図29】座標変換方法の処理フローチャートである。
【図30】座標データ群のメモリ配置図である。
【図31】係数データと精度パラメータのメモリ配置図
である。
【図32】変換座標データ群のメモリ配置図である。
【図33】変換演算の処理フローチャートである。
【図34】ライブラリで扱う座標系を示した図である。
【図35】ライブラリで扱う座標系とメモリとの関係を
示した図である。
【図36】ドローラブル構造体の一覧を示す図である。
【図37】ドローラブル構造体のメンバーPADRが示すPR
AMの一覧を示す図である。
【図38】ドローラブル構造体のメモリ上での配置イメ
ージを示す図である。
【図39】ドローラブル構造体内のクリッピングに関す
るメンバーの説明図である。
【図40】クリッピングに関するメンバーと座標系の関
係を示した図である。
【図41】ドローラブル構造体内のエンドポイント゛に
関するメンバーの説明図である。
【図42】ドローラブル構造体内のエンドポイント゛と
座標系の関係を示した図である。
【図43】ドローラブル構造体内のカラー/フィルカラ
ーに関するメンバーの説明図である。
【図44】ドローラブル構造体内のカラー1に関するメ
ンバーの説明図である。
【図45】ドローラブル構造体内の比較カラーに関する
メンバーの説明図である。
【図46】ドローラブル構造体内のドローイングモード
に関するメンバーの説明図である。
【図47】ドローイングモードのクリッピングモードに
関するフィールドの説明図である。
【図48】ドローイングモードの転送領域モードに関す
るフィールドの説明図である。
【図49】ドローイングモードの色比較モードに関する
フィールドの説明図である。
【図50】ドローイングモードのデータ演算モードに関
するフィールドの説明図である。
【図51】ドローラブル構造体内の線種RAMに関するメ
ンバーの説明図である。
【図52】ドローラブル構造体内の描画座標メモリ幅に
関するメンバーの説明図である。
【図53】ドローラブル構造体内の描画座標原点に関す
るメンバーの説明図である。
【図54】ドローラブル構造体内の転送元メモリ幅に関
するメンバーの説明図である。
【図55】ドローラブル構造体内の転送元座標の原点に
関するメンバーの説明図である。
【図56】ドローラブル構造体内のライトマスクに関す
るメンバーの説明図である。
【図57】ドローラブル構造体内のリードマスクに関す
るメンバーの説明図である。
【図58】ドローラブル構造体内の線種制御に関するメ
ンバーの説明図である。
【図59】線種制御用メンバーの線種ポインタ増分のフ
ィールド内容の説明図である。
【図60】線種制御用メンバーの線種ポインタのフィー
ルド内容の説明図である。
【図61】線種制御用メンバーの線種ポインタ小数部の
フィールド内容の説明図である。
【図62】ドローラブル構造体内のパターンアドレスに
関するメンバーの説明図である。
【図63】ドローラブル構造体内のパターンRAMと描画
座標系の関係の説明図である。
【図64】ドローラブル構造体内のスタックメモリ保護
に関するメンバーの説明図である。
【図65】ドローラブル構造体内のシステム情報に関す
るメンバーの説明図である。
【図66】システム情報メンバーのピクセルビット数の
フィールド内容の説明図である。
【図67】システム情報メンバーのメモリバス幅のフィ
ールド内容の説明図である。
【図68】描画関数一覧図である。
【図69】描画関数の機能一覧図である。
【図70】描画関数とドローラブルの関係を示す図であ
る。
【図71】描画関数とドローラブルの関係示す図であ
る。
【図72】DOT関数の描画例図である。
【図73】LINE関数の描画例図である。
【図74】CALINE関数の描画例である。
【図75】CRLINE関数の描画例である。
【図76】SARCL関数の描画例である。
【図77】SARCR関数の描画例である。
【図78】FRCT関数の描画例である。
【図79】FTRAP関数の描画例とPRAMの内容を
示す図である。
【図80】PAINT関数の描画例とPRAMの内容を
示す図である。
【図81】COPY関数のスキャン方向の種類を示す図
である。
【図82】COPY関数の一スキャン方向のフローチャ
ートである。
【図83】COPY関数の描画例図である。
【図84】画素間距離の定義を説明するための図であ
る。
【図85】FDOT関数の描画例図である。
【図86】FLINE関数の描画例図である。
【図87】FLINED関数の描画例図である。
【図88】FPLINE関数の描画例図である。
【図89】FPLINED関数の描画例図である。
【図90】FFRCT関数の描画例図である。
【図91】FPOLY関数の描画例図である。
【図92】FCOPY関数のスキャン方向を示す図であ
る。
【図93】FCOPY関数の描画例図である。
【図94】TCPY関数のスキャン方向を示す図であ
る。
【図95】TCPY関数の描画例図である。
【図96】ETCPY関数の描画例図である。
【図97】AFFIN関数の仕様を示す図である。
【図98】TINIT関数の仕様を示す図である。
【図99】INITAFFIN関数の仕様を示す図であ
る。
【図100】SetDisplay関数の仕様を示す図である。
【図101】本システムの仕様である、走行状態による
表示精度切り替えの画面イメージを示す図である。
【図102】本システムの仕様である30度のヘディン
グアップでの表示画面図である。
【図103】本システムでの制御ボタン機能一覧を示す
図である。
【図104】本システムの仕様である、表示画面のスク
ロール図である。
【図105】本システムの仕様である、画面の拡大、縮
小機能を示す図である。
【図106】システム構成図である。
【図107】グラフィックボードの内部構成図である。
【図108】地図データのメッシュ,レイヤの概念図で
ある。
【図109】文字の不完全表示が発生した表示画面図で
ある。
【図110】地図データの論理的な管理方式を示す図で
ある。
【図111】地図データのメモリ上の配置図である。
【図112】描画アプリケーションの処理フローチャー
トである。
【図113】イベントの取り込み方法を示すタイミング
チャートである。
【図114】本システム使用する、描画データのフォー
マットを示す図である。
【図115】地図描画に使用する描画関数を示す図であ
る。
【図116】地図描画以外に使用する描画関数を示す図
である。
【図117】折れ線描画のフローチャートである。
【図118】文字データの占有する領域を示す図であ
る。
【図119】本システムでの並進スクロール方法の説明
図である。
【図120】本システムでの並進スクロール手順説明図
である。
【図121】描画データ記録のための構成図である。
【図122】描画データ表示のための構成図である。
【図123】直線描画装置の一実施例を示す構成図であ
る。
【図124】描画方式制御部の構成図である。
【図125】データ記憶部152の構成説明図である。
【図126】座標調整部の構成図である。
【図127】直線の始点と終点の関係を示す図である。
【図128】直線の描画例を示す図である。
【図129】直線座標生成部の構成図である。
【図130】直線の始点と終点との関係を示す図であ
る。
【図131】直線の描画例を示す図である。
【図132】直線描画装置をマイクロコンピュータで構
成した時の実施例を示す構成図である。
【図133】マイクロコンピュータに記憶されたベクト
ルデータの構成説明図である。
【図134】マイクロコンピュータによる処理を説明す
るためのフローチャートである。
【図135】マイクロコンピュータによる処理を説明す
るためのフローチャートである。
【図136】マイクロコンピュータによる処理を説明す
るためのフローチャートである。
【図137】起動命令の実施例を示す図である。
【図138】図形表示装置のブロック構成図である。
【図139】直線描画装置の他の実施例を示す構成図で
ある。
【図140】データ記憶部156の構成説明図である。
【図141】マイクロコンピュータに記憶されたベクト
ルデータの構成説明図である。
【図142】マイクロコンピュータの処理を説明するた
めのフローチャートである。
【図143】マイクロコンピュータの起動命令を説明す
るための図である。
【図144】図形表示装置の他の実施例を示すブロック
構成図である。
【図145】直線描画装置の他の実施例を示す構成図で
ある。
【図146】描画方式弁部の構成図である。
【図147】中間点座標生成部の構成図である。
【図148】直線の描画例を示す図である。
【図149】マイクロコンピュータの処理を説明するた
めのフローチャートである。
【図150】マイクロコンピュータの起動命令を説明す
るための図である。
【図151】図形表示装置の他の実施例を示す全体構成
図である。
【図152】直線描画装置の他の実施例を示す構成図で
ある。
【図153】描画方式便別部の構成図である。
【図154】特定座標生成部の構成図である。
【図155】始点と終点との関係を示す図である。
【図156】垂直線の描画例を示す図である。
【図157】マイクロコンピュータの処理を説明するた
めのフローチャートである。
【図158】マイクロコンピュータの起動命令を説明す
るための図である。
【図159】図形表示装置の他の実施例を示すブロック
構成図である。
【図160】直線の画素数と処理時間の関係を示す図で
ある。
【図161】直線の画素数と処理時間の関係を示す図で
ある。
【図162】直線の画素数と処理時間の関係を示す図で
ある。
【図163】直線の画素数と処理時間の関係を示す図で
ある。
【符号の説明】
100…CPU、101…DMAC、102…表示制御
信号発生手段、103…主メモリ、104…ラスタバッ
ファ、105…カラーパレット、あるいはCPLT、106
…LCD、107…第1のバス、108…第2のメモ
リ、109…フレームバッファ、あるいはFB、110
…DMA要求信号、111…DMAライト信号、112
…エントリ番号、113…バス調停信号、114…同期
信号、115…三原色信号、あるいはRGB信号、116
…画素リード信号、117…画素クロック、118…第
3のメモリ、119…描画の多機能手順、120…描画
の単機能手順、121…システムクロック、122…発
振器、123…バスステート制御手段、あるいはBS
C、124…変換手段、125…表示制御信号、126
…マイクロコンピュータ、127…第2のバス、128
…第4のメモリ、129…表示制御手順、130…第1
の割り込み信号、131…第2の割り込み信号、132
…図形データ、133…応用プログラム、134…外部
メモリ、150…描画方式制御部、151…座標調整
部、152…データ記憶部、153…直線座標生成部、
154…描画部、155…フレームバッファ、156…
データ記憶部、160…描画方式弁別部、161…中間
点座標生成部、162…描画部、170…描画方式弁別
部、171…特定座標生成部、172…描画部、200
…第1のPWMタイマ、201…第2のPWMタイマ、
202…第3のPWMタイマ、203…第4のPWMタ
イマ、204…8分の1の分周期、205…画素クロッ
ク発生手段、210…垂直表示期間信号、211…水平
表示期間信号、212…垂直同期信号、213…水平同期
信号、220…8分周クロック、251…直線長算出
部、252…出力制御部、256…マルチプレクサ、2
60…直線長算出部、261…出力制御部、270…直
線属性判定部、271…出力制御部、300…タイマ、
301…第1の比較レジスタ、302…第2の比較レジ
スタ、303…第1の比較器、304…第2の比較器、
305…SRフリップフロップ、306…割り込み制御
手段、308…第1の一致信号、309…第2の一致信
号、350…X差分判定部、351…マルチプレクサ、
352…加算器、353…差分組合わせ判定部、354
…マルチプレクサ、355…Y差分判定部、356…マ
ルチプレクサ、360…加算値生成部、361、362
…加算器、370…加算値生成部、371…加算値、3
72…ループ制御部、3100…ビットマップ記憶回路、3
101…2値ボールド回路、3102…ボールドビット
マップデータ記憶回路、3103…多値展開・描画回
路、3104…位置変更回路、3105…フレームバッ
ファ、3200…多値展開・描画回路、3500…デー
タ1生成回路、3501…データ2生成回路、3502
…ORゲート1、3503…記憶回路1、3503…記憶
回路2、3503…記憶回路3、3506…ORゲート2、4
100…多値パターン発生回路、4101…多値パター
ン記憶回路、4102…描画回路、4103…フレーム
バッファ、4104…ドットデータ生成回路、4105
…ドットデータ記憶回路、4106…2値ビットマップ
記憶回路、4107…多ドット選択回路、4108…ア
ドレス演算回路、4200…1/0判定回路、4201
…ドット描画回路、4202…ドット選択、4400…作成
パターンデータ生成回路、4401…多値パターンデー
タバッファ、7000…グラフィックボード、7001…プ
ロセッサ、7002…表示回路、7003…フレームバ
ッファRAM、7004…表示データ記録媒体、7005
…地図・文字データROM、7006…描画アプリ用ROM、
7007…外部バス、7008…位置センサコネクタ、
7009…制御ボタンコネクタ、7010…拡張コネク
タ、7011…LCDコネクタ、7100…制御ボタ
ン、7150…位置情報センサ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 桂 晃洋 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 ラスタスキャン型表示装置に表示される
    データを演算するCPUと、 該データの転送に供されるバスと、 該CPUと該バスにより接続され、該CPUから該バス
    を介して転送された該データを記憶するメモリと、 該CPUと該バスにより接続され、図形要素の属性に応
    じて該図形要素を該CPUが描画する手順を記憶するメ
    モリと、 該CPUと該バスにより接続され、該図形要素を特定の
    属性にて該CPUが描画する手順を記憶するメモリとを
    含むことを特徴とするグラフィックスコンピュータ。
  2. 【請求項2】 ラスタスキャン型表示装置に表示される
    データを演算するCPUと、 該データの転送に供されるバスと、 該CPUと該バスにより接続され、該CPUから該バス
    を介して転送された該データを記憶するメモリと、 表示装置に対する該データの出力タイミングを示す同期
    信号を発生するタイマと、 該同期信号に応じて、該メモリに記憶された該データを
    該バスを介して表示装置へ出力するDMA回路と、 該CPUと該バスにより接続され、該DMA回路に対し
    て該CPUが該出力のアドレスを指定する手順を記憶す
    るメモリとを含むことを特徴とするグラフィックスコン
    ピュータ。
  3. 【請求項3】 該バスが該DMA回路により使用されて
    いる時に該手順を該プロセッサに供給する第2のバスと
    を含むことを特徴とする請求項1または請求項2のグラ
    フィックスコンピュータ。
  4. 【請求項4】 文字のビットマップデータを記憶するビ
    ットマップ記憶回路と入力された文字コードに従いビッ
    トマップ記憶回路からビットマップデータを読みだし多
    値展開し、入力された文字位置データに従いフレームバ
    ッファの位置を算出し、これらのデータを出力する多値
    展開・描画回路と前記多値展開・描画回路から出力され
    るデータを記憶するフレームバッファからなる文字描画
    装置において、 2値ボールドビットマップデータを生成する2値ボール
    ド回路と2値ボールドビットマップデータを記憶するボ
    ールドビットマップデータ記憶回路とボールドビットマ
    ップデータの出力する位置を算出する位置変更回路を有
    することを特徴とするグラフィックスコンピュータ。
  5. 【請求項5】 文字コードから主メモリあるいは内蔵S
    RAMに記憶されたビットマップデータを読みだし、多
    値展開し、文字位置データからフレームバッファの位置
    を算出し、これらのデータをフレームバッファに出力す
    る文字描画方法において、 2値ボールドビットマップデータを生成し、文字位置デ
    ータからボールドビットマップデータを出力する位置デ
    ータを算出し、多値展開し、前記位置データにてフレー
    ムバッファに描画した後にビットマップデータを多値展
    開し、文字位置データにてフレームバッファに描画する
    文字描画方法。
  6. 【請求項6】 2値のビットマップデータから色情報を
    用いて多値展開後、位置データに従いフレームバッファ
    に描画する多値展開描画装置において、 複数のドットを同時に選択する多ドット選択回路と、複
    数ドットの多値パターンを生成する多値パターン発生回
    路と、前記多値パターン発生回路の出力を記憶し前記多
    ドット選択回路の出力により複数ドットの多値パターン
    を出力する多値パターン記憶回路と複数ドットを同時に
    描画する描画回路を設けたことを特徴とするグラフィッ
    クスコンピュータ。
  7. 【請求項7】 複数ドットの多値パターンを生成し、記
    憶しておき、位置データに従い、2値のビットマップデ
    ータの複数のドットのデータを同時に選択し、その情報
    により前記多値パターンを出力する多値展開方法。
  8. 【請求項8】 座標変換装置において、 変換係数算出データから係数データと精度パラメータを
    算出する係数演算回路と、前記係数データと精度パラメ
    ータを記憶する係数記憶回路と、変換開始信号により座
    標データ群記憶回路の内容と係数記憶回路の内容で座標
    変換演算し、さらに前記精度パラメータを用いてスケー
    リングする変換演算回路をもつことを特徴とするグラフ
    ィックスコンピュータ。
  9. 【請求項9】 請求項8において、 座標データと係数データを入力とする乗算器と前記乗算
    器の出力を入力とする加算器と前記加算器の出力を精度
    パラメータによりシフトするシフト回路を備えたことを
    特徴とするグラフィックスコンピュータ。
  10. 【請求項10】 座標変換処理において、 変換係数算出データから係数データと精度パラメータを
    算出する係数演算処理と、座標データと係数データで座
    標変換演算処理し、さらに前記精度パラメータを用いて
    スケーリングするグラフィックスコンピュータ。
  11. 【請求項11】 二次元座標系の特定の画素情報に対応
    した複数のベクトルデータを記憶するデータ記憶手段
    と、二次元座標系における直線の始点座標と終点座標を
    含む座標データを受けこの座標データから直線の始点座
    標と終点座標との差を算出する差分算出手段と、差分算
    出手段の算出値が特定の値以下であるか否かを判定する
    判定手段と、判定手段により肯定の判定結果が得られた
    ことを条件に差分算出手段の算出値に応じたベクトルデ
    ータをデータ記憶手段から選択するベクトルデータ選択
    手段と、ベクトルデータ選択手段の選択によるベクトル
    データを基に直線の描画データを生成する描画データ生
    成手段とを備えた直線描画装置。
  12. 【請求項12】 二次元座標系の特定の画素情報に対応
    した複数のベクトルデータを記憶するデータ記憶手段
    と、二次元座標系における直線の始点座標と終点座標を
    含む座標データを受けこの座標データから直線の始点座
    標と終点座標との差を示す二次元の差分データを生成す
    る差分データ生成手段と、差分データ生成手段の生成に
    よる各差分データから二次元の絶対値データを生成する
    絶対値データ生成手段と、差分データ生成手段の生成に
    よる各差分データの示す差分値が特定の値以下であるか
    否かを判定する判定手段と、判定手段により肯定の判定
    結果が得られたことを条件に絶対値データ生成手段の生
    成による絶対値データに応じたベクトルデータをデータ
    記憶手段から選択するベクトルデータ選択手段と、ベク
    トルデータ選択手段の選択によるベクトルデータを基に
    直線の描画データを生成する描画データ生成手段とを備
    えた直線描画装置。
  13. 【請求項13】 XY座標系における始点座標と終点座
    標との差分の絶対値に対応した番地に2種類のベクトル
    データを画素の固定されたパターンテーブルとして記憶
    するデータ記憶手段と、XY座標系における直線の始点
    座標と終点座標を含む座標データを受けこの座標データ
    から直線の始点座標と終点座標との差を示すXY座標系
    の差分データを生成する差分データ生成手段と、差分デ
    ータ生成手段の生成による各差分データからXY座標系
    の絶対値データを生成する絶対値データ生成手段と、差
    分データ生成手段の生成による各差分データの示す差分
    値の正負を判別する符号判別手段と、差分データ生成手
    段の生成による各差分データの示す差分値が特定の値以
    下であるか否かを判定する判定手段と、判定手段により
    肯定の判定結果が得られたことを条件に符号判別手段の
    判別結果に従った種類のベクトルデータを指定し指定の
    ベクトルデータの中から絶対値データ生成手段の生成に
    よる絶対値データに対応したベクトルデータをデータ記
    憶手段から選択するベクトルデータ選択手段と、前記座
    標データと差分データ生成手段の生成による各差分デー
    タを基にベクトルデータ選択手段の選択によるベクトル
    データの特定の座標をXY座標系の始点座標に調整する
    座標調整手段と、座標調整手段により座標の調整された
    ベクトルデータから直線の描画データを生成する描画デ
    ータ生成手段とを備えた直線描画装置。
  14. 【請求項14】 XY座標系における始点座標と終点座
    標との差分の絶対値に対応した番地に2種類のベクトル
    データを画素可変長のパターンテーブルとして記憶する
    データ記憶手段と、XY座標系における直線の始点座標
    と終点座標を含む座標データを受けこの座標データから
    直線の始点座標と終点座標との差を示すXY座標系の差
    分データを生成する差分データ生成手段と、差分データ
    生成手段の生成による各差分データからXY座標系の絶
    対値データを生成する絶対値データ生成手段と、差分デ
    ータ生成手段の生成による各差分データの示す差分値の
    正負を判別する符号判別手段と、差分データ生成手段の
    生成による各差分データの示す差分値が特定の値以下で
    あるか否かを判定する判定手段と、判定手段により肯定
    の判定結果が得られたことを条件に符号判別手段の判別
    結果に従った種類のベクトルデータを指定し指定のベク
    トルデータの中から絶対値データ生成手段の生成による
    絶対値データに対応したベクトルデータをデータ記憶手
    段から選択するベクトルデータ選択手段と、前記座標デ
    ータと差分データ生成手段の生成による各差分データを
    基にベクトルデータ選択手段の選択によるベクトルデー
    タの特定の座標をXY座標系の始点座標に調整する座標
    調整手段と、座標調整手段により座標の調整されたベク
    トルデータから直線の描画データを生成する描画データ
    生成手段とを備えた直線描画装置。
  15. 【請求項15】 二次元座標系における直線の始点座標
    と終点座標を含む座標データを受けこの座標データから
    直線の始点座標と終点座標との差を算出する差分算出手
    段と、差分算出手段の算出値が特定の値以下であるか否
    かを判定する判定手段と、判定手段により肯定の判定結
    果が得られたことを条件に前記座標データを基に始点座
    標と終点座標の中間点の座標を算出する中間点座標算出
    手段と、中間点算出手段の算出による中間点座標と前記
    座標データを基に直線の描画データを生成する描画デー
    タ生成手段とを備えた直線描画装置。
  16. 【請求項16】 XY座標系における直線の始点座標と
    終点座標を含む座標データを受けこの座標データから直
    線の始点座標と終点座標との差を示すXY座標系の差分
    データを生成する差分データ生成手段と、差分データ生
    成手段の生成による各差分データからXY座標系の絶対
    値データを生成する絶対値データ生成手段と、差分デー
    タ生成手段の生成による各差分データの示す差分値の正
    負を判別する符号判別手段と、絶対値データ生成手段の
    生成による各絶対値データの示す絶対値が特定の値であ
    るか否かを判定する判定手段と、判定手段により肯定の
    判定結果が得られたことを条件に符号判別手段の判別結
    果に応じたXY座標系の座標加算値を生成する座標加算
    値生成手段と、座標加算値生成手段の生成による座標加
    算値と前記座標データの始点座標とからXY座標系の中
    間点座標を生成する中間点座標生成手段と、中間点座標
    生成手段の生成による中間点座標と前記座標データの始
    点座標及び終点座標を基に直線の描画データを生成する
    描画データ生成手段とを備えた直線描画装置。
  17. 【請求項17】 XY座標系における直線の始点座標と
    終点座標を含む座標データを受けこの座標データから直
    線の始点座標と終点座標との差を示すXY座標系の差分
    データを生成する差分データ生成手段と、差分データ生
    成手段の生成による差分データからX座標の差分値が零
    か否かを判定する垂直線判定手段と、差分データ生成手
    段の生成による差分データのうちY座標の差分値の正負
    を判別する符号判別手段と、垂直線判定手段により肯定
    の判定結果が得られたことを条件に符号判別手段の判別
    結果に応じたY座標加算値を生成するY座標加算値生成
    手段と、加算値がY座標の終点座標となるまでY軸の始
    点座標にY座標加算値生成手段の生成によるY座標加算
    値を順次加算して新たなY座標を順次生成するY座標生
    成手段と、Y座標生成手段の生成による各Y座標とX軸
    の始点座標を基に垂直線の描画データを生成する描画デ
    ータ生成手段とを備えた直線描画装置。
  18. 【請求項18】 XY座標系における直線の始点座標と
    終点座標を含む座標データを受けこの座標データから直
    線の始点座標と終点座標との差を示すXY座標系の差分
    データを生成する差分データ生成手段と、差分データ生
    成手段の生成による差分データからY座標の差分値が零
    か否かを判定する水平線判定手段と、差分データ生成手
    段の生成による差分データのうちX座標の差分値の正負
    を判別する符号判別手段と、水平線判定手段により肯定
    の判定結果が得られたことを条件に符号判別手段の判別
    結果に応じたX座標加算値を生成するX座標加算値生成
    手段と、加算値がX座標の終点座標となるまでX座標の
    始点座標にX座標加算値生成手段の生成によるX座標加
    算値を順次加算して新たなX座標を順次生成するX座標
    生成手段と、X座標生成手段の生成による各X座標とY
    座標の始点座標を基に水平線の描画データを生成する描
    画データ生成手段とを備えた直線描画装置。
  19. 【請求項19】 判定手段により否定の判定結果が得ら
    れたことを条件に座標データの始点座標と終点座標との
    間の座標を指定の式に従って順次算出する座標算出手段
    を備えている請求項11、12、13、14、15又は
    16記載の直線描画装置。
  20. 【請求項20】 請求項11、12、13、14、1
    5、16、17、18又は19記載の直線描画装置と、
    描画データ生成手段の生成による描画データから画素デ
    ータを生成する画素データ生成手段と、画素データ生成
    手段の生成による画素データに従った図形を画面上に表
    示する表示手段を備えた図形表示装置。
JP6147856A 1993-12-17 1994-06-29 グラフィックスコンピュータと直線描画装置 Pending JPH07225849A (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP6147856A JPH07225849A (ja) 1993-12-17 1994-06-29 グラフィックスコンピュータと直線描画装置
TW083110149A TW276317B (ja) 1993-12-17 1994-11-03
EP94309123A EP0658858B1 (en) 1993-12-17 1994-12-07 Graphics computer
KR1019940034148A KR100368198B1 (ko) 1993-12-17 1994-12-14 마이크로컴퓨터
US08/355,517 US5771047A (en) 1993-12-17 1994-12-14 Graphics computer
CN94119595A CN1097239C (zh) 1993-12-17 1994-12-17 图形计算机
US08/996,151 US6677950B1 (en) 1993-12-17 1997-12-22 Graphics computer

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP5-318651 1993-12-17
JP31865193 1993-12-17
JP6147856A JPH07225849A (ja) 1993-12-17 1994-06-29 グラフィックスコンピュータと直線描画装置

Publications (1)

Publication Number Publication Date
JPH07225849A true JPH07225849A (ja) 1995-08-22

Family

ID=26478275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6147856A Pending JPH07225849A (ja) 1993-12-17 1994-06-29 グラフィックスコンピュータと直線描画装置

Country Status (1)

Country Link
JP (1) JPH07225849A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271336A (ja) * 1994-02-24 1995-10-20 Hewlett Packard Co <Hp> Crtメモリ・バッファの同期クリア回路
JP2007133383A (ja) * 2005-10-12 2007-05-31 Matsushita Electric Ind Co Ltd オンスクリーン信号処理装置、および放送受信装置
JP2009043272A (ja) * 2008-09-18 2009-02-26 Sony Corp 携帯型地図表示装置及び地図表示方法
JP2009133897A (ja) * 2007-11-28 2009-06-18 Toshiba Tec Corp 電気機器およびその制御方法
JP2014534510A (ja) * 2011-10-12 2014-12-18 グーグル インコーポレイテッド 階層化デジタル画像データの再順序付けおよび関連するデジタル画像レンダリングエンジン
JP2018106321A (ja) * 2016-12-26 2018-07-05 カシオ計算機株式会社 図形描画装置、図形描画方法、及びプログラム
JP2018116434A (ja) * 2017-01-17 2018-07-26 カシオ計算機株式会社 図形描画方法、図形描画装置、及びプログラム
CN110969567A (zh) * 2019-11-18 2020-04-07 中国航空工业集团公司西安航空计算技术研究所 一种gpu线图元光栅化平移坐标系扫描方法
JP2022121448A (ja) * 2018-01-12 2022-08-19 カシオ計算機株式会社 表示制御装置、表示制御方法、およびプログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271336A (ja) * 1994-02-24 1995-10-20 Hewlett Packard Co <Hp> Crtメモリ・バッファの同期クリア回路
JP2007133383A (ja) * 2005-10-12 2007-05-31 Matsushita Electric Ind Co Ltd オンスクリーン信号処理装置、および放送受信装置
JP2009133897A (ja) * 2007-11-28 2009-06-18 Toshiba Tec Corp 電気機器およびその制御方法
JP2009043272A (ja) * 2008-09-18 2009-02-26 Sony Corp 携帯型地図表示装置及び地図表示方法
JP4636151B2 (ja) * 2008-09-18 2011-02-23 ソニー株式会社 地図表示装置及び地図表示方法
JP2014534510A (ja) * 2011-10-12 2014-12-18 グーグル インコーポレイテッド 階層化デジタル画像データの再順序付けおよび関連するデジタル画像レンダリングエンジン
JP2018106321A (ja) * 2016-12-26 2018-07-05 カシオ計算機株式会社 図形描画装置、図形描画方法、及びプログラム
JP2018116434A (ja) * 2017-01-17 2018-07-26 カシオ計算機株式会社 図形描画方法、図形描画装置、及びプログラム
JP2022121448A (ja) * 2018-01-12 2022-08-19 カシオ計算機株式会社 表示制御装置、表示制御方法、およびプログラム
CN110969567A (zh) * 2019-11-18 2020-04-07 中国航空工业集团公司西安航空计算技术研究所 一种gpu线图元光栅化平移坐标系扫描方法
CN110969567B (zh) * 2019-11-18 2023-09-19 中国航空工业集团公司西安航空计算技术研究所 一种gpu线图元光栅化平移坐标系扫描方法

Similar Documents

Publication Publication Date Title
US4823303A (en) Display control apparatus for use in composite document processing apparatus
US7194697B2 (en) Magnification engine
JP3227086B2 (ja) テレビオンスクリーン表示装置
JPH07181951A (ja) 画像ディスプレイ方法及び画像ディスプレイ並びに画像スケーリング方法
US4529978A (en) Method and apparatus for generating graphic and textual images on a raster scan display
US7675529B1 (en) Method and apparatus to scale graphical user interfaces
JPH0421198B2 (ja)
US5771047A (en) Graphics computer
JPH07225849A (ja) グラフィックスコンピュータと直線描画装置
JP2996933B2 (ja) 図面表示装置
AU7802881A (en) Graphic and textual image generator for a raster scan display
JP2007122188A (ja) 画像形成装置及び画像処理方法、並びにプログラム
JPS63187288A (ja) 表示方式
JP2768370B2 (ja) 図形描画方法
JPS6228829A (ja) 情報処理方法
JPS6177977A (ja) 画像処理装置
JP2642374B2 (ja) 図形クリツピング方法
JP3136852B2 (ja) タッチパネル画面作成方法およびその装置
JP2887122B2 (ja) 画像データ処理装置及びそれを用いたシステム
JP3517982B2 (ja) 図形描画装置
JPH0876733A (ja) 画像処理プロセッサおよびそれを用いた画像データ処理装置またはグラフィックスコンピュータ
JP2794409B2 (ja) 罫線作成装置
JPH0255395A (ja) マルチウインド表示装置
JPH05313850A (ja) ウインドウサイズの最適化方法
JPH0318717B2 (ja)