(57)【特許請求の範囲】
【請求項１】
描画中の描画要素の中から、選択された可能性のある描画要素を、指示部により指示された入力座標に基づいて取り出す要素取得手段と、
各描画要素の表示イメージにおける輪郭図形を取り出す輪郭図形取得手段と、
前記入力座標と前記輪郭図形取得手段によって取得した輪郭図形とに基づいて、ヒットしている描画要素を判定するヒット判定手段と、
前記ヒット判定手段によってヒットしていると判定された描画要素を、選択された描画要素の候補として抽出すると共に、抽出された候補の中から何れかの描画要素を、該選択された描画要素として決定する選択手段と、
を備え、
前記ヒット判定手段は、
前記入力座標に基づいて、所定の面積を有するピックウインドウを作成するピックウインドウ作成手段と、
前記ピックウインドウ作成手段によって作成されたピックウインドウと、前記輪郭図形取得手段によって取得した輪郭図形とが干渉しているかを判定する干渉判定手段と、
を含み、
前記ピックウインドウ作成手段は、予め登録された前記ピックウインドウのサイズＬを、使用している表示装置の座標系に対応するサイズＬ’に変換するサイズ補正手段を含む
ことを特徴とする描画指示装置。
【請求項２】
前記ヒット判定手段は、ヒットしていないと判定した場合、選択された可能性のある描画要素がまだ存在するかを判定することを特徴とする請求項１に記載の描画指示装置。
【請求項３】
前記ピックウインドウは正方形の形状を有しており、前記サイズは該正方形の辺長により規定されることを特徴とする請求項１に記載の描画指示装置。
【請求項４】
前記干渉判定手段は、
表示イメージの輪郭図形の外接矩形を取り出す外接矩形取得手段と、
前記ピックウインドウ作成手段によって作成されたピックウインドウと、前記外接矩形取得手段によって取得した外接矩形とが干渉しているかを判定する第１干渉判定手段と、
前記輪郭図形と前記ピックウインドウとが干渉しているかを判定する第２干渉判定手段と、
を含むことを特徴とする請求項１に記載の描画指示装置。
【請求項５】
前記第２干渉判定手段は、
前記表示イメージのビットマップイメージを算出する第１ビットマップイメージ取得手段と、
前記ピックウインドウのビットマップイメージを算出する第２ビットマップイメージ取得手段と、
前記第１及び第２ビットマップイメージ取得手段によって取得した各ビットマップイメージにおいて、各画素毎に干渉しているかを判定するビットマップイメージ干渉判定手段と
を含み、
前記ヒット判定手段は、前記ビットマップイメージ干渉判定手段によって少なくとも一画素が干渉していると判定された場合、ヒットしていると判定する
ことを特徴とする請求項４に記載の描画指示装置。
【請求項６】
前記第２干渉判定手段は、要素データと前記ピックウインドウとが幾何学的に干渉しているかを判定しており、
前記ヒット判定手段は、前記第２干渉判定手段によって幾何学的に干渉していると判定された場合、ヒットしていると判定する
ことを特徴とする請求項４に記載の描画指示装置。
【請求項７】
前記第１及び第２干渉判定手段は、
描画要素が文字列の場合、前記文字列の各文字のフォントボックスの矩形の和を求める文字列フォントボックス算出手段と、
前記ピックウインドウと、前記フォントボックスとが干渉しているか判定するフォントボックス干渉判定手段と
を含み、前記ヒット判定手段は、前記フォントボックス干渉判定手段によって干渉していると判定された場合、ヒットしていると判定する
ことを特徴とする請求項６に記載の描画指示装置。
【請求項８】
前記ヒット判定手段によってヒットしていると判定された描画要素が重なって表示される場合、それら描画要素を予め指定された量ずつ一時的にオフセットすると共に、オフセットしたことを認識可能に表示するオフセット手段を更に備え、
前記選択手段は、前記オフセット手段によってオフセットされた表示状態において指示された前記入力座標に基づいて、何れかの描画要素を、前記選択された描画要素として決定する
ことを特徴とする請求項１に記載の描画指示装置。
【請求項９】
前記オフセット手段は、
重なっている描画要素の外接矩形を取得する取得手段と、
予め指定された正のマージン値を設定する設定手段と、
指定された前記入力座標を中心に、前記外接矩形が前記マージン値に従って配置できるように、各描画要素の移動量を算出する移動量算出手段と、
算出された移動量に基づいて前記各描画要素を表示した場合、それら描画要素が表示画面内に納まるかを判定し、納まらないと判定した場合は、納まるように表示すべく、前記マージン値をより小さな値に減らして、または表示スケールを縮小させて、前記移動量を再算出する調整手段と、
前記調整手段によって調整された移動量に従って、前記各描画要素を一時的にオフセットする配置手段と、
を含むことを特徴とする請求項８に記載の描画指示装置。
【請求項１０】
描画指示装置における描画指示方法であって、
要素取得手段が、描画中の描画要素の中から、選択された可能性のある描画要素を、指示部により指示された入力座標に基づいて取り出す要素取得工程と、
輪郭図形取得手段が、各描画要素の表示イメージにおける輪郭図形を取り出す輪郭図形取得工程と、
ヒット判定手段が、前記入力座標と前記輪郭図形取得工程にて取得した輪郭図形とに基づいて、ヒットしている描画要素を判定するヒット判定工程と、
選択手段が、前記ヒット判定工程にてヒットしていると判定された描画要素を、選択された描画要素の候補として抽出すると共に、抽出された候補の中から何れかの描画要素を、該選択された描画要素として決定する選択工程と、
を有し、
前記ヒット判定工程は、
前記入力座標に基づいて、所定の面積を有するピックウインドウを作成するピックウインドウ作成工程と、
前記ピックウインドウ作成工程によって作成されたピックウインドウと、前記輪郭図形取得工程によって取得した輪郭図形とが干渉しているかを判定する干渉判定工程と、
を含み、
前記ピックウインドウ作成工程は、予め登録された前記ピックウインドウのサイズＬを、使用している表示装置の座標系に対応するサイズＬ’に変換するサイズ補正工程を含む
ことを特徴とする描画指示方法。
【請求項１１】
請求項１乃至９の何れか１項に記載の描画指示装置としてコンピュータを動作させるプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、描画指示装置及び描画指示方法に関し、例えばＣＡＤ(Computer Aide Design)やＤＴＰ(Desk Top Publishing)等のアプリケーションにおいて対話形式の処理によって図形・文字列データの作成・印刷等を行う描画指示装置及び描画指示方法に関する。
【０００２】
【従来の技術】
従来より利用されているＣＡＤやＤＴＰ等のアプリケーションと、高精度な印刷装置とを使用した版下作成のような作業においては、オペレータが所望する最終的な印刷イメージを保ちながら、表示装置に表示される画面を見ながらの編集作業、所謂ＷＹＳＩＷＹＧ(What You See is What You Get)の環境において、印刷イメージを基にした高精度なピック（ピッキング）処理が行えることが必要である。ここで、ピック処理とは、マウス等のポインティング装置を用いてオペレータが指定した表示装置上の任意位置に従って、その表示装置に表示されている描画要素やパターンを選択する処理である。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のＣＡＤやＤＴＰ等のアプリケーションにおいて行われるピック処理においては、線幅やテキスト等の印刷属性を考慮せずに、表示器に各種パターンを描画するための簡易的な幾何情報等が用いられる場合がある。この場合、図１０に例示する如く大きな線幅の線分が表示されている状態において、線幅方向の端部をピックしても、その線分を正しくピッキングできなかったり、或いは、図１１に例示するような一点鎖線を対象としているときには、線の無い部分をピックしても、その一点鎖線の描画要素が選択されてしまったり、更には、図１２に例示するように、文字列の文字以外の部分を選択しても、その選択部分がフォントボックスという文字を囲む外接矩形の範囲内であれば、そのフォントボックスが選択されてしまう。
【０００４】
また、選択しようとする描画要素が、図１３に例示するように重なっている場合には、隠れている要素を選択するのが困難であるというような問題もある。
【０００５】
そこで本発明は、操作性に優れ、印刷属性を考慮したピック処理を行う描画指示装置及び描画指示方法及びコンピュータ読み取り可能な記憶媒体の提供を目的とする。
【０００６】
【課題を解決するための手段】
上記の目的を達成するため、本発明に係る描画指示装置は、以下の構成を特徴とする。
【０００７】
即ち、描画中の描画要素の中から、選択された可能性のある描画要素を、指示部により指示された入力座標に基づいて取り出す要素取得手段と、各描画要素の表示イメージにおける輪郭図形を取り出す輪郭図形取得手段と、前記入力座標と前記輪郭図形取得手段によって取得した輪郭図形とに基づいて、ヒットしている描画要素を判定するヒット判定手段と、前記ヒット判定手段によってヒットしていると判定された描画要素を、選択された描画要素の候補として抽出すると共に、抽出された候補の中から何れかの描画要素を、該選択された描画要素として決定する選択手段とを備え、前記ヒット判定手段は、前記入力座標に基づいて、所定の面積を有するピックウインドウを作成するピックウインドウ作成手段と、前記ピックウインドウ作成手段によって作成されたピックウインドウと、前記輪郭図形取得手段によって取得した輪郭図形とが干渉しているかを判定する干渉判定手段と、を含み、前記ピックウインドウ作成手段は、予め登録された前記ピックウインドウのサイズＬを、使用している表示装置の座標系に対応するサイズＬ’に変換するサイズ補正手段を含むことを特徴とする。
【００１１】
上記の目的を達成するため、本発明に係る描画指示方法は、以下の構成を特徴とする。
【００１５】
【発明の実施の形態】
以下、本発明に係る描画指示装置及び描画指示方法の実施形態を、図面を参照して詳細に説明する。
【００１６】
［第１の実施形態］
［ハードウエア構成の説明］
図２は、本発明の第１の実施形態に係る描画指示装置のハードウエア構成を示すブロック図である。
【００１７】
図２において、２１は、中央処理装置（ＣＰＵ）であり、本装置の全体の制御や演算処理を行なう。１１は、オペレータが文字や数値を入力可能なキーボードであり、１２は、座標や図形を指示するため補助入力装置としてのマウスである。４１はＣＲＴ等の表示装置であり、ＣＰＵ２１が実行するソフトウエアプログラムに従って、図形データおよび文字データ、各種操作パネルやボタンを表示する。即ち、キーボード１１、マウス１２、並びに表示装置４１は、本実施形態においてマンマシンインタフェースとして機能する。
【００１８】
２２はシステムバスであり、本装置を構成するハードウエアの各要素は、全てこのシステムバス２２を介してプログラムおよびデータの受け渡しを行なっている。
【００１９】
また、３１は、読出専用記憶装置（ＲＯＭ）であり、本実施形態に係るプログラムは、このＲＯＭ３１に予め格納されており、ＣＰＵ２１は、ＲＯＭ３１から読み出したプログラムを実行する。３２は、読出書込記憶装置（ＲＡＭ）であり、本実施形態に係るプログラムの実行中に、ＣＰＵ２１は、必要に応じて、ＲＡＭ３２にデータを読み書きしながら処理を行なう。３３は、フロッピーディスク装置（ＦＤ）やハードディスク装置（ＨＤ）等の外部記憶装置であり、文字の書体情報やコード情報等のデータが格納されている。
【００２０】
尚、本実施形態に係るプログラムを、外部記憶装置３３に格納させておき、ＲＡＭ３２に読み込んでから、ＣＰＵ２１によって実行するようにしてもよいし、また、文字の書体情報やコード情報等のデータをＲＯＭ３１に格納させておき、ＣＰＵ２１が必要に応じて、それらのデータを読み出して使用するようにしてもよい。
【００２１】
５１は、印刷装置の一例としてのレーザプリンタであり、本装置によって作成された印刷データを、校正刷り（印刷データの確認のための出力）し、また印刷ログファイルの内容を出力する。５２は、イメージセッターであり、本装置によって作成された印刷データを、清刷り（正式な版下となる高精度な出力）する。５３は、レーザマーカーであり、本装置によって作成された印刷データを、レーザで直接、製品に焼き付ける。
【００２２】
ここで、レーザプリンタ５１と、イメージセッター５２と、レーザマーカー５３の違いについて説明する。
【００２３】
レーザプリンタ５１は、照射されたレーザ光によって感光ドラム上に形成された静電潜像にトナーを吸着させ、そのトナー像を記録紙に転写・定着するプリンタであり、解像度は１５００ＤＰＩ（ドット／インチ）程度まで可能である。また、イメージセッター５２は、レーザ光を直接、感光紙に照射するプリンタであり、解像度は、４００ＤＰＩ程度まで可能である。イメージセッター５２に使用する用紙サイズは、Ａ１程度まで可能である。そして、レーザマーカー５３は、レーザ光を直接、成形品に照射し、樹脂材料を溶融して黒化させるか、充填材を配合した特殊材料を使用して発色させる印刷装置である。
【００２４】
次に、本実施形態に係る表示機能について説明する。本実施形態に係る描画指示装置は、図形データおよび文字データを、印刷時の出力形態と同じ表示形態のイメージで、表示装置４１に表示する制御を行なう、所謂ＷＹＳＩＷＹＧの機能を有しており、これを説明する図が図３である。
【００２５】
図３（ａ）は、表示装置４１に表示されるＷＹＳＩＷＹＧの表示例であり、図３（ａ）の表示形態は、印刷時の出力結果の例である図３（ｃ）の出力形態と略同じになっている。
【００２６】
一方、図３（ｂ）は、ＷＹＳＩＷＹＧではない表示例を示しており、この図３（ｂ）の表示形態は、印刷時の出力結果の例である。この図３（ｂ）の表示形態は、印刷時の出力結果の例である図３（ｃ）の出力形態とは異なっている。
【００２７】
次に、本実施形態に係る表示装置４１上の操作画面について説明する。
【００２８】
図４は、本実施形態に係るピック処理プログラムの実行時に、表示装置４１に表示されるメインパネル６１を例示する図である。
【００２９】
図４において、６１はメインパネル、６２は作画エリア、６３はマウスポインタ、６４は文字入力エリア、６５はボタン群、６６は汎用ボタン、６７はコマンドメニュー、６８はガイダンスエリア、７１はメインパネル以外のパネル、７２はパネル７１上のボタンである。また、これら図４上のボタンは、全てソフトキーである。
【００３０】
このメインパネル６１上で、キーボード１１や、マウス１２等の入力装置をオペレータが操作するのに応じて、本実施形態に係る描画指示装置は、対話的に、印刷データの作成および編集作業を行なう。作成された印刷データは、作画エリア６２に表示される。
【００３１】
また、必要に応じて、メインパネル６１以外に、各種のパネル７１が表示され、パネル７１上で操作を行なうこともある。
【００３２】
以下、表示装置４１に表示されるソフトウエアパネルを介して、本実施形態においてオペレータが入力可能な方法について、図４を参照して説明する。
【００３３】
キーボード１１から入力を行なう場合、オペレータは、文字入力エリア６４を、マウス１２またはキーボード１１で指示してから、文字または数値を入力する。また、マウス１２によって入力を行なう場合には、以下の方法を用いる。
【００３４】
まず、特定の要素やボタンを選択する方法としては、次の（１）と（２）の２つの方法がある。
【００３５】
（１）要素選択：作画エリア６２に表示されている描画パターン（印刷データに基づいてＣＰＵ２１が表示しているパターン）の所望の位置に、オペレータがマウスポインタ６３を移動させて、その位置において、例えばマウス左ボタンを押下することによって、操作の対象とする要素を選択する。
【００３６】
（２）ボタン選択：メインパネル６１に表示されている、各種のボタン６５、汎用ボタン６６、必要に応じて表示されるパネル７１内に表示される各種のボタン７２の所定位置に、オペレータがマウスポインタ６３を移動させて、その位置で、例えばマウス左ボタンを押下することによって、操作の対象とするボタンを選択する。
【００３７】
また、作画エリア６２上の特定の位置を指定する方法として、次の（３）から（７）までの、５つの方法がある。
【００３８】
（３）任意指定：作画エリア６２上の、任意の位置に、マウスポインタ６３を移動させて、その位置で、例えばマウス右ボタンを押し下げることによって、位置を指定する。
【００３９】
（４）点指定：作画エリア６２に表示されている、点を要素選択することによって、位置を指定する。
【００４０】
（５）特徴点指定：作画エリア６２に表示されている、点以外の要素を要素選択することによって、その要素の特徴となる点をＣＰＵ２１が抽出し、位置を指定する。
【００４１】
ここで、特徴点が複数存在する場合に、１点を特定する方法には、要素選択した際のマウスポインタ６３の位置に最も近い特徴点をＣＰＵ２１が自動的に抽出する方法、複数存在する特徴点の中からさらに１点を点指定する方法等がある。
【００４２】
図５に、図形データの各要素の特徴点の例を示す。同図において、＊印で示した点は、各種の図形の形状を特徴付ける特徴点である。即ち、図５において、各種の図形データを特徴付けする特徴点の具体的な位置は、以下に示す通りである。
・線分：両端点、中点、
・円：中心点、円の中心からＸおよびＹ軸方向に引いた直線と円との交点（４点）、
・円弧：中心点、両端点、中点（円弧の距離を二分する円弧上の点）、
・楕円：中心点、楕円の短軸および長軸と楕円との交点（４点）、
・楕円弧：中心点、両端点、楕円弧の短軸および長軸と楕円弧を含む楕円との交点（４点）、中点（楕円弧の距離を二分する楕円弧上の点）、
・線分列：線分列を構成する各線分の両端点、中点、
・自由曲線：両端点、曲線の制御点、中点（自由曲線の距離を二分する点）。
【００４３】
（６）交点指定：作画エリア６２に表示されているところの、線分や円等の線要素を、１個または２個、要素選択することによって、それらの要素の交点をＣＰＵ２１が算出し、位置を指定する。
【００４４】
ここで、単一の線要素が、それ自体で交点を持つ場合、すなわち、自己交差している場合は、線要素を１個、要素選択するだけでよい。その他の場合は、２個の線要素を指定する（図６参照）。
【００４５】
交点が複数存在する場合に、１点を特定する方法には、先または後に要素選択した際のマウスポインタ６３の位置に最も近い交点をＣＰＵ２１が自動的に抽出する方法、複数存在する交点の中からさらに１点を点指定する方法等がある。
【００４６】
（７）線上点指定：作画エリア６２に表示されている、線分、円等の線要素を１個要素選択することによって、そのときのマウスポインタ６３の位置に最も近い線要素上の点をＣＰＵ２１が算出し、位置を指定する。
【００４７】
図７に、円弧を要素選択して、線上指定によって位置を指定した例を示す。図７においては、レ印で示した位置において、線分、円弧の順で要素選択を行ない、＊印の位置が交点指定によって指定されたことを示している。レ印の点は、円弧近傍の点、＊印の点は、円弧上の点である。
【００４８】
次に、本実施形態で扱う「コマンド」について説明する。本実施形態では、印刷データの作成および編集作業の各単位を「コマンド」と称する。
【００４９】
本実施形態で扱うコマンドには、点、直線、円、曲線等、各要素を作成するコマンド（作図コマンド）や、移動、複写、削除、属性等、各要素の形状や属性等を修正するコマンド（修正コマンド）や、その他、ファイル、プリント、トンボ、バーコード、等に冠するコマンド等がある。
【００５０】
本実施形態に係る描画指示装置を利用して、オペレータが印刷データの作成や編集を行なうには、まず、作業単位に合わせた任意のコマンドを１つ選択する。
【００５１】
コマンドの選択には、図４に示す文字入力エリア６４で、コマンドの名称をキーボード１１から入力する方法や、コマンドの名称があらかじめ設定されているメインパネル６１上のボタン６５を、ボタン選択する方法等がある。
【００５２】
オペレータによるコマンドの選択が行われると、それまですでに選択されているコマンドがあった場合には、そのコマンドの終了処理が行われている。続いて、新たに選択されたコマンドの初期処理が行なわれ、コマンド内の処理に入る。
【００５３】
コマンドが選択されると、表示装置４１上に選択されたコマンド内でのさらに細かい作業単位を選択するための、コマンドメニュー６７が表示される。ユーザーは、コマンド目に６７の任意のメニュー項目のボタンをボタン選択することによって、各種の編集作業を行なうことができる。ユーザーがどのような操作を行なえばよいかといった指示は、作業の状況に応じて、その都度、ガイダンスエリア６８に表示されるので、ユーザーは、この指示に従って、操作を行なえばよい。
【００５４】
［データ構造］
＜印刷データの要素＞
次に、本実施形態に係る描画指示装置で作成可能な印刷データを構成するところの、図形データおよび文字データの要素に、どのような種類が存在するのかについて具体的に説明する。
【００５５】
本実施形態に係る描画指示装置で作成可能な図形データおよび文字データの要素には、大きく分けて、以下の（Ａ）〜（Ｅ）の５つの種類がある。
【００５６】
（Ａ）基本図形：点、線分、線分列（開／閉）、円、円弧、楕円、楕円弧、自由曲線（開／閉）、
（Ｂ）塗り潰し図形、
（Ｃ）その他の図形：トンボ、バーコード、
（Ｄ）テキスト、
（Ｅ）グループ図形：シンボル、イラスト。
【００５７】
ここでいう要素とは、図形データまたは文字データに、印刷データとして必要な属性（印刷属性と呼ぶ）を付加して、実際に印刷データとしてレイアウトされるデータの単位を意味している。また、印刷データとしてレイアウトされた複数の要素をまとめてグループ化すれば、それを１つの要素として扱うこともできる。要素のグループ化の方法については後述する。
【００５８】
次に、上記の（Ａ）〜（Ｅ）の５つの要素について詳細に説明する。
【００５９】
まず、（Ａ）の基本図形は、最も基本となる図形データの要素である。この他、線分列によって構成される矩形（各辺がＸおよびＹ軸に平行である長方形）、正多角形等を、基本図形の要素として扱うこともできる。また、自由曲線としては、ベジェ、有利ベジェ、Ｂスプライン、エルミート、ＮＵＲＢＳ等の表現形式を扱うことができる。
【００６０】
また、（Ｂ）の塗り潰し図形は、（Ａ）の要素（点を除く）を単独で、または、複数を連結させることで、閉領域を形成し、その内部を塗り潰した図形データの要素である。塗り潰しの方法には、次の４種類がある。
【００６１】
（１）フィルエリア：内部を均一に塗り潰す。
【００６２】
（２）ハッチング：一定の傾きと間隔を持った複数の線分で塗り潰す。塗り潰し図形内の特定の点を、ハッチングの基準点として指定することもできる。
【００６３】
（３）メッシュ：円、矩形、正多角形等、一定の形状の図形の繰り返しで塗り潰す。塗り潰し図形内の特定の点を、メッシュの基準点として指定することもできる。
【００６４】
（４）パターン：あらかじめ作成されたビットパターンの繰り返しで塗り潰す。
【００６５】
また、（Ｃ）のその他の図形には、トンボ、バーコード等がある。これらの要素は、図形データと、文字データの両方を含んでいる。トンボ、バーコードの各要素の作成方法については、後述する。
【００６６】
また、（Ｄ）のテキストは、文字データの要素である。図形データの要素と同様に、印刷データとしてレイアウトすることができるが、印刷属性の種類や、レイアウトの方法は図形データの要素とは異なる。
【００６７】
最後に（Ｅ）のグループ図形は、（Ａ）の基本図形、（Ｂ）の塗り潰し図形、（Ｃ）のその他の図形、（Ｄ）のテキストの各要素を、１つ以上任意の数だけ選択して、まとめて１つの要素として扱うためのもので、シンボルとイラストがある。
【００６８】
＜印刷データの印刷属性＞
次に、本実施形態に係る描画指示装置で作成可能な印刷データである図形データおよび文字データの印刷属性に、どのような種類が存在するのかを、具体的に説明することにする。
【００６９】
作成可能な図形データおよび文字データの印刷属性には、大きく分けて、以下の（ａ）〜（ｇ）の７つの種類がある。
【００７０】
まず、図形データおよび文字データに共通の印刷属性には、次に示す（ａ）〜（ｃ）の３つの種類がある。
【００７１】
（ａ）表示属性：要素を表示するか否か、また、表示する場合に、どのような上下関係で表示するか（表示プライオリティと呼ぶ）を指定する。
【００７２】
（ｂ）選択属性：要素選択が可能であるか否かを指定する。要素選択を不可すると、その要素に対しての操作は行なえなくなる。
【００７３】
（ｃ）色属性：ＲＧＢあるいはＨＬＳ等のカラーモデルの種別、および、カラーコードの値を与えることによって、要素の色を表現する。白と黒義Ｉの色が表現できないモノクロームの、表示装置４１またはレーザプリンタ５１等の印刷装置を使用している場合、色属性に応じて、白または黒のどちらかの色に変換されて出力される。
【００７４】
次に、図形データ固有の印刷属性には、次に示す（ｄ）〜（ｆ）の３つの種類がある。
【００７５】
（ｄ）点属性：点要素の場合、点のある位置に記号を表示したり、文字列を表示したりすることができる。
【００７６】
（ｅ）線属性：点以外の基本図形の要素（線要素）の場合、次に示すさまざまな線の属性を表現することができる。
【００７７】
・線種：線要素の形状を示し、実線、破線、一点鎖線、二点鎖線、等がある。
【００７８】
・線幅：線要素の法線方向の大きさを示す。あらかじめ定められた、細線、中線、太線、等の種別を指定したり、実寸で指定したりすることができる。
【００７９】
・線幅方向：線幅を考慮しない場合から、法線方向のどちらに線幅分だけオフセットさせるかを示す。
【００８０】
・終端形状：線分や円弧等の開図形の終端の形状で、ラウンド、フラット、スクエア、等がある。
【００８１】
・接続形状：線分列や矩形等の図形の角の形状で、マイター、ラウンド、ベベル、等がある。
【００８２】
・線ピッチ：線種が実線以外の場合、線が存在する部分と、存在しない部分の長さをそれぞれ実寸、またはパラメータで与えることができる。
【００８３】
（ｆ）塗り潰し属性：塗り潰し図形要素（描画要素）の場合、フィルエリア、ハッチング、メッシュ、パターン、等の内部の塗り潰し方法の種類や、ハッチングやメッシュの場合の必要な詳細データ、パターンの場合の、パターン番号を与える。
【００８４】
最後に、文字データ固有の印刷属性には、次に示す（ｇ）の１種類のみがある。
【００８５】
（ｇ）文字列属性：テキスト要素の場合、次に示すさまざまな文字の属性、および文字列全体の属性を表現することができる。
・書体：一組の文字のデザインを表し、クーリエ、ヘルベチカ、ゴシック、等がある。
・文字サイズ：文字の大きさを表し、一般には１つの文字が専有する矩形領域はボディの行送り方向の高さと等しい。
・平体率：文字を、文字の行送り方向にどれだけ縮めるかを比率で表す。
・長体率：文字を、文字の字送り方向にどれだけ縮めるかを比率で表す。
・ベース角：文字の字送り方向がＸ軸となす角度を表す。
・斜体角：文字の字送り方向に対する、文字の傾斜角度を表す。
・字間：同一行の隣接する２文字のボディの間隔を表す。
・行間：隣接する２行にある文字のボディの間隔を表す。
・文字列反転：文字列を反転（鏡像）して表示する。
【００８６】
＜印刷データのデータ構造＞
次に、本実施形態における印刷データのデータ構造について説明する。
【００８７】
本実施形態における印刷データは、上述した複数の要素データ、複数の印刷属性データから構成されている。
【００８８】
ここで、各要素データは、基本的に、データ種別コード、データ番号、各要素ごとの必要データ、各要素ごとの必要印刷属性データのデータ番号からなる。
【００８９】
そして、印刷データ内でユニークに付けられたデータ種別コードによって、印刷データ内の各要素データの種別を特定することができる。
【００９０】
また、印刷データ内でユニークに付けられたデータ番号によって、印刷データ内の各要素データを特定することができる。各要素ごとに、必要データ、必要印刷属性の種類は異なるが、データ種別コードによってＣＰＵ２１はこれらを識別することが可能である。
【００９１】
また、各印刷属性については、各要素データごとに保持するのではなく、各要素データでは、必要な印刷属性データのデータ番号のみを保持するようにしている。これによって、印刷属性データの重複を避け、印刷データの容量を縮小することや、複数の要素データの印刷属性を一度の操作で変更すること等が可能になっている。
【００９２】
まず、図形データおよび文字データの各要素のデータ構造を、以下に具体的に示す。
【００９３】
（Ａ）基本図形：
（１）点
・データ種別コード、
・データ番号、
・点座標：ｃ［２］、
・表示属性のデータ番号、
・選択属性のデータ番号、
・色属性のデータ番号、
・点属性のデータ番号、
（２）線分
・データ種別コード、
・データ番号、
・始点座標：ｓ［２］、
・終点座標：ｅ［２］、
・表示属性のデータ番号、
・選択属性のデータ番号、
・色属性のデータ番号、
・線属性のデータ番号、
（３）線分
・データ種別コード、
・データ番号、
・通過点数：ｎｐ、
・各通過点座標：ｐｐ［２］（ｎｐ個）、
・表示属性のデータ番号、
・選択属性のデータ番号、
・色属性のデータ番号、
・線属性のデータ番号、
（４）円
・データ種別コード、
・データ番号、
・中心座標：ｃ［２］、
・半径：ｒ、
・表示属性のデータ番号、
・選択属性のデータ番号、
・色属性のデータ番号、
・線属性のデータ番号、
（５）円弧
・データ種別コード、
・データ番号、
・始点座標：ｓ［２］、
・終点座標：ｅ［２］、
・中心座標：ｃ［２］、
・回り方向フラグ（時計回り／反時計回り）、
・表示属性のデータ番号、
・選択属性のデータ番号、
・色属性のデータ番号、
・線属性のデータ番号、
（６）楕円
・データ種別コード、
・データ番号、
・中心座標：ｃ［２］、
・長軸ベクトル：ａ［２］、
・短軸ベクトル：ｂ［２］、
・表示属性のデータ番号、
・選択属性のデータ番号、
・色属性のデータ番号、
・線属性のデータ番号、
（７）楕円弧
・データ種別コード、
・データ番号、
・始点座標：ｓ［２］、
・終点座標：ｅ［２］、
・中心座標：ｃ［２］、
・長軸ベクトル：ａ［２］、
・短軸ベクトル：ｂ［２］、
・回り方向フラグ（時計回り／反時計回り）、
・表示属性のデータ番号、
・選択属性のデータ番号、
・色属性のデータ番号、
・線属性のデータ番号、
（８）自由曲線（ベジェ曲線の場合）
・データ種別コード、
・データ番号、
・曲線数：ｎｖ、
・各曲線の制御点データ（ｎｖ個）、
制御点数：ｎｃ、
各制御点座標：ｐｃ［２］（ｎｃ個）、
重み係数：ｗ、
・通過点数：ｎｐ、
・各通過点座標：ｐｐ［２］（ｎｐ個）、
・表示属性のデータ番号、
・選択属性のデータ番号、
・色属性のデータ番号、
・線属性のデータ番号、
（Ｂ）塗り潰し図形：
・データ種別コード、
・データ番号、
・レイアウト基準矩形左下点座標：ｐ１［２］、
・レイアウト基準矩形右下点座標：ｐ２［２］、
・ループ数：ｎｌ、
・各ループの構成要素データ（ｎｌ個）：
構成要素数：ｎｄ、
構成要素データ：点を除く基本図形要素データ（ｎｄ個）、
・通過基準点座標：ｐｐ［２］、
・表示属性のデータ番号、
・選択属性のデータ番号、
・色属性のデータ番号、
・塗り潰し属性のデータ番号、
・枠の表示属性のデータ番号、
・枠の色属性のデータ番号、
・枠の線属性のデータ番号。
【００９４】
ここで、塗り潰し図形では、印刷属性として、塗り潰し図形の内部の印刷属性の他に、塗り潰し図形の枠の印刷属性を別に持っている。例えば、内部の色属性と、枠の色属性を変えて表示すること等が可能である。
【００９５】
（Ｃ）その他の図形：
（１）トンボ、
・データ種別コード、
・データ番号、
・トンボ種別フラグ（トンボ／スケールトンボ）、
・トンボ形状フラグ（トンボの場合は１１種類／スケールトンボの場合は３種類）、
・トンボオフセットフラグ（オフセットあり／なし）、
・印刷データ名称（スケールトンボの場合）、
・トンボ長さ（スケールトンボの場合）、
・レイアウト基準点座標：ｐｂ［２］、
・出力倍率：ｓｃ、
・レイアウト基準矩形左下点座標：ｐ１［２］、
・レイアウト基準矩形右下点座標：ｐ２［２］、
・構成要素数：ｎｄ、
・構成要素データ：トンボの場合は線分、スケールトンボのバーは線分、円、テキストのいずれかの要素データ（ｎｄ個）、
（２）バーコード、
・データ種別コード、
・データ番号、
・バーコード種別フラグ（４種類）、
・コードデータ、
・コード表示フラグ（コード表示あり／なし）、
・レイアウト基準位置フラグ（左下／中央／右上等９種類）、
・レイアウト基準点座標：ｐｂ［２］、
・レイアウト角度：ａｎｇ、
・レイアウトスケール：ｓｃ、
・レイアウト基準矩形左下点座標：ｐ１［２］、
・レイアウト基準矩形右上点座標：ｐ２［２］、
・構成要素数：ｎｄ、
・構成要素データ：線分、テキストのいずれかの要素データ（ｎｄ個）、
（Ｄ）テキスト：
（１）基本文字列（テキストを構成する要素）、
・データ種別コード、
・データ番号、
・文字列開始点座標：ｐｔ［２］、
・文字列バイト数：ｎｃｈ、
・文字列データ：ｓｔｒ（ｎｃｈバイト）、
・レイアウト角度：ａｎｇ、
・レイアウトスケール：ｓｃ、
・表示属性のデータ番号、
・選択属性のデータ番号、
・色属性のデータ番号、
・文字列属性のデータ番号、
（２）テキスト
・データ種別コード、
・データ番号、
・レイアウト基準位置フラグ（左下／中央／右上等９種類）、
・レイアウト基準点座標：ｐｂ［２］、
・レイアウト基準矩形左下座標：ｐ１［２］、
・レイアウト基準矩形右上座標：ｐ２［２］、
・構成要素数：ｎｄ、
・構成要素データ：基本文字列の要素データ（ｎｄ個）。
【００９６】
ここで、テキスト要素は、複数の基本文字列要素を組み合わせて構成される。これによって、ひとつのテキスト要素の中で、複数の文字列属性を持った文字列を扱うことが可能となる。例えば、ひとつのテキストの途中で文字の書体を変更したり、文字の高さや幅を変更する制御が可能である。
【００９７】
（Ｅ）グループ図形：
（１）シンボル
・データ種別コード、
・データ番号、
・フォルダー名称、
・ファイル名称、
・レイアウト基準位置フラグ（左下／中央／右上等９種類）、
・レイアウト基準点座標：ｐｂ［２］、
・レイアウト角度：ａｎｇ、
・レイアウトスケール：ｓｃ、
・レイアウト基準矩形左下点座標：ｐ１［２］、
・レイアウト基準矩形右上点座標：ｐ２［２］、
・反転フラグ（反転あり／なし）、
・線幅スケールフラグ（線幅スケールあり／なし）、
・線幅スケール値、
（２）イラスト
・データ種別コード、
・データ番号、
・フォルダー名称、
・ファイル名称、
・レイアウト基準位置フラグ（左下／中央／右上等９種類）、
・レイアウト基準点座標：ｐｂ［２］、
・レイアウト角度：ａｎｇ、
・レイアウトスケール：ｓｃ、
・レイアウト基準矩形左下点座標：ｐ１［２］、
・レイアウト基準矩形右上点座標：ｐ２［２］、
・反転フラグ（反転あり／なし）、
・構成要素数：ｎｄ、
・構成要素データ：任意の要素データ（ｎｄ個）。
【００９８】
尚、シンボルおよびイラストのデータ構造の特徴、およびシンボルデータファイルおよびイラストデータファイルのファイル構造については後述する。
【００９９】
次に、上述したようなデータ構造を有する要素データに対応する印刷属性データのデータ構造について説明する。
【０１００】
ここで、各印刷属性データは、基本的に、データ種別コード、データ番号、属性設定フラグ、各印刷属性毎の必要データという構成を有する。印刷データ内の各印刷属性データの種別は、印刷データ内でユニークに付けられたデータ種別コードによって特定することができる。
【０１０１】
また、印刷データ内でユニークに付けられたデータ番号によって、印刷データ内の各印刷属性データを特定することができる。各印刷属性ごとに必要データは異なるが、データ種別コードによって、ＣＰＵ２１は、これらを識別することが可能である。
【０１０２】
また、属性設定フラグとは、その印刷属性データが有効であるか否かを指定するフラグである。属性設定フラグが有効である印刷属性データを指示している要素データでは、該当する印刷属性データに従って要素が表示されている。
【０１０３】
一方、属性設定フラグが無効である印刷属性データを指示している要素データでは、該当する印刷属性は設定されていない状態であると見なし、予めＲＯＭ３１や外部記憶装置３３に記憶されているデフォルトの印刷属性に従って、要素が表示される。
【０１０４】
また、各要素データに階層関係を持たせることが可能なデータ構造とした場合には、上位の（または下位の）要素の印刷属性に従って表示を行なう制御も可能である。
【０１０５】
次に、各印刷属性データのデータ構造を具体的に示す。
【０１０６】
（ａ）表示属性
・データ種別コード、
・データ番号、
・属性設定フラグ（有効／無効）、
・表示フラグ（表示／非表示）、
・表示プライオリティ、
（ｂ）選択属性
・データ種別コード、
・データ番号、
・属性設定フラグ（有効／無効）、
・要素選択フラグ（可／不可）、
（ｃ）色属性
・データ種別コード、
・データ番号、
・属性設定フラグ（有効／無効）、
・カラーコード識別フラグ（ＲＧＢ／ＨＬＳ）、
・カラーコード１、２、３、
（ｄ）点属性
・データ種別コード、
・データ番号、
・属性設定フラグ（有効／無効）、
・マーカー文字列、
（ｅ）線属性
・データ種別コード、
・データ番号、
・属性設定フラグ（有効／無効）、
・線種フラグ（実線／破線／一点鎖線／二点鎖線／任意破線／任意一点鎖線／任意二点鎖線）、
・線幅フラグ（細線／中線／太線／極太線／任意線幅）、
・線方向フラグ（中央／内側／外側）、
・終端形状フラグ（ラウンド／フラット／スクエア）、
・接続形状フラグ（マイター／ラウンド／ベベル）、
・線種データ１、２、３、４（線種＝任意のとき）、
・線幅データ（線幅＝任意のとき）、
（ｆ）塗り潰し属性
・データ種別コード、
・データ番号、
・属性設定フラグ（有効／無効）、
・塗り潰し種別フラグ（塗り潰しあり／塗り潰しなし／ハッチング／メッシュ番号／パターン番号等）、
・データグループ数：ｎｄ、
・塗り潰しデータ１、２、３（ｎｄ個）、
（ｇ）文字列属性
・データ種別コード、
・データ番号、
・属性設定フラグ（有効／無効）、
・書体、
・文字サイズ、
・平体率、
・長体率、
・ベース角、
・斜体角、
・字間、
・行間、
・文字列反転フラグ（あり／なし）。
【０１０７】
上述した印刷データのデータ構造に基づいて、本実施形態に係る描画指示装置で作成された印刷データファイルの一例を、図８に示す。
【０１０８】
この図８に示された印刷データは、図９に示すような形状の図形を印刷するための印刷データであり、図９に示す印刷データにより表現される図形は、複数種類の基本図形の要素から成り、１個の線分列と２個の円と、これら３要素の外接矩形の左下点および右上点の２点（この２点は非表示で選択不可）から構成される。また、これら１個の線部列と２個の円が、それぞれ同じ表示属性（表示）、選択属性（選択可）、線属性（実線、線幅２０ｍｍ）を持ち、互いに異なる色属性を持っているものとする。
【０１０９】
＜グループ図形のデータ構造＞
次に、上述した印刷データのデータ構造のうち、特にグループ図形であるシンボルとイラストのデータ構造について詳述する。
【０１１０】
まず、シンボルのデータ構造について説明する。
【０１１１】
本実施形態において、シンボルとは、規格で定められた記号や、ロゴマークのように、繰り返し使用される図形で、図形データの要素（線分や円等）や、文字データの要素（テキスト）を組み合わせて、作成される要素である。
【０１１２】
規格が変更される等により、シンボルデータのファイルの内容が更新された場合、本実施形態では、既に印刷データの一部としてレイアウト済みである該当するシンボルを全て更新して、データの同期を維持することができる。即ち、本実施形態に係る描画指示装置では、シンボルのデータを次に示すようなデータ構造で保持している。
【０１１３】
印刷データ内には、シンボルデータファイルの存在場所を特定するための、フォルダー名称およびファイル名称、そして、シンボルをレイアウトするために必要な情報のみを保持する。
【０１１４】
また、印刷データをファイルに保存した印刷データファイルとは別個に、シンボルデータファイルを作成する。シンボルデータファイルは、次に示すようなファイル構造となっている。
・レイアウト基準矩形左下点座標：ｐ１［２］、
・レイアウト基準矩形右上点座標：ｐ２［２］、
・構成要素データ：任意の要素データ（複数）、
・印刷属性データ：必要な印刷属性データ（複数）。
【０１１５】
レイアウト基準矩形については後述するが、レイアウト基準矩形を定めておけば、シンボルを印刷データとしてレイアウトする際に必要な位置と大きさの情報を特定することが可能である。例えば、レイアウト基準矩形としては、シンボルの可視部分を囲む最小の矩形（外接矩形と呼ぶ）を指定しておくこと等が可能である。
【０１１６】
シンボルデータファイルを作成する際に該当するシンボルの外接矩形のデータをレイアウト基準矩形として登録しておけば、シンボルデータファイルを再度読み込んだ際等に、シンボルの外接矩形を再計算する必要がなくなる。
【０１１７】
シンボルの各構成要素データは、レイアウト基準矩形左下点を基準とする相対座標値で表現されている。
【０１１８】
また、各印刷属性データについては、印刷データの場合と同様に、各構成要素データを表示する際に必要な印刷属性データを、要素データとは別に保持している。
【０１１９】
このように、本実施形態では、変更のあったシンボルを含む印刷データファイルの更新を敢えて行なわなくても、該当する印刷データファイルを外部記憶装置３３からＲＡＭ３２に再度読み込むだけで、印刷データ内のシンボルデータは、最新のシンボルデータファイルの内容に自動的に更新され、データを自動的に同期させることができる。
【０１２０】
次に、もう一つのグループ図形であるイラストのデータ構造について説明する。
【０１２１】
本実施形態において、イラストとは、テンプレート図形のように繰り返し使用される図形で、これもまたシンボルと同様に図形データの要素（線分や円等）や、文字データの要素（テキスト）を組み合わせて作成される要素である。
【０１２２】
イラストは、上述したシンボルの場合とは異なり、一旦印刷データの一部としてレイアウトされた後は、元のイラストデータファイルの内容とは同期を取らずに自由に変更を加えたい場合に使用される。
【０１２３】
従って、イラストデータの場合には、上述したシンボルデータの自動更新とは異なり、イラストデータファイルの内容が更新された場合でも、既に印刷データの一部としてレイアウト済みである該当するイラストを更新して同期を維持することはない。
【０１２４】
そこで、本実施形態に係る描画指示装置では、イラストのデータを、次に示すようなデータ構造で保持している。
【０１２５】
すなわち、印刷データ内には、イラストデータファイルの存在場所を特定するためのフォルダ名称およびファイル名称、そしてイラストをレイアウトするために必要な情報の他に、イラストデータファイルから読み込んだイラストを実際に構成する各要素データを保持している。
【０１２６】
また、印刷データファイルとは別個にイラストデータファイルを作成する。イラストデータファイルは、次に示すようなファイル構造となっている。
・レイアウト基準矩形左下点座標：ｐ１［２］、
・レイアウト基準矩形右上点座標：ｐ２［２］、
・構成要素データ：任意の要素データ（複数）、
・印刷属性データ：必要な印刷属性データ（複数）。
【０１２７】
この構造は、シンボルデータファイルのファイル構造と同様である。これを印刷データに読み込む際には、指定したレイアウト基準点座標を原点とし、指定したレイアウト角度、レイアウトスケールに従ってイラストデータファイル内の各構成要素データを展開して（座標変換して）、印刷データのイラスト要素データとして、全て保持する点がシンボルとは異なっている。
【０１２８】
［ピック処理］
次に、上述した描画制御を実現すべく図２に示す描画指示装置にて実行されれるピック処理について説明する。
【０１２９】
図１は、第１の実施形態におけるピック処理の手順を示すフローチャートであり、ＣＰＵ２１が実行する。
【０１３０】
同図において、ステップＳ１：ＷＹＳＩＷＩＧの環境下において、オペレータが表示装置４１を見ながらマウス１２等を用いて指示した入力座標を取り出し（図１４参照）、その座標値を、読出書込記憶装置３２もしくは外部記憶装置３３（以下、総称して記憶装置）に保存する。
【０１３１】
ステップＳ２：ステップＳ１で保存した座標値と、表示装置４１に表示されている要素図形の表示位置データとに基づいて、オペレータが選択した可能性のある要素図形を判定し、選択した可能性のある要素図形を示す識別番号等を、選択可能性要素リストとして記憶装置に保存しておき、順番に取り出していく（図１４参照）。
【０１３２】
ステップＳ３：ステップＳ２で順番に取り出した図形要素の識別番号等に従って、予め記憶されている各図形要素の幾何および属性データを基に、輪郭図形を算出して記憶装置に保存する（図１５参照）。
【０１３３】
ステップＳ４：ステップＳ１で保存した入力座標と、ステップＳ３で保存した輪郭図形情報とに基づいて、ヒットしているかどうかを判定する。
【０１３４】
ここで、ステップＳ４の処理の詳細について、図１９を参照して説明する。
【０１３５】
図１９において、ステップＳ４−１：入力座標に基づいて、ピックウインドウ（所定の面積を持つ領域）を作成（図１６参照）する。ピックウインドウの作成手順については、図２０に示すフローチャートに従って行えば良い。
【０１３６】
図２０において、ステップＳ４−１−１：記憶装置またはオペレータによって入力された辺長を、ピックウインドウの辺長Ｌとして取得する。
【０１３７】
ステップＳ４−１−２：表示装置４１において所定長さになるように。辺長ＬをＬ’に変換する。具体的には、表示座標系が拡大されて表示装置４１に表示されていたときには、そのスケール値で辺長Ｌを割るなどの処理により、表示装置上において辺長Ｌを反映した所定長さＬ’になるように変換する。
【０１３８】
ステップＳ４−１−３：入力座標を中心として、ステップＳ４−１−２で算出した一辺の長さＬ’の正方形をピックウインドウとする。
【０１３９】
次に、図１９の説明に戻って、ステップＳ４−２：上記の如く求めたピックウインドウと、ステップＳ３で求めた輪郭図形とが干渉しているかを判定する（図１７参照）。
【０１４０】
ステップＳ４−３〜ステップＳ４−５：ステップＳ４−２の判断において、干渉していたらヒットしていると判定し、干渉していなかったからヒットしていないと判定する。
【０１４１】
ステップＳ４−２における具体的な手順は、図２１に示すフローチャートに従って行えば良い。
【０１４２】
図２１において、ステップＳＳ４−２−１：各要素の属性等も考慮した表示イメージの輪郭図形の外接矩形を取り出す。
【０１４３】
ステップＳ４−２−２：ピックウインドウと、上記の如く求めた輪郭図形の外接矩形とが干渉するかどうかを調べる。本ステップでは、少ない計算量でラフに干渉しているかを調べるのが目的なので、印刷属性を考慮して幾何的に求めれば良い。
【０１４４】
ステップＳ４−２−３〜ステップＳ４−２−６：干渉する可能性がないと判定されたらステップＳ４−２−６においてヒットしていないと判定し、干渉する可能性があると判定したらステップＳ４−２−４において輪郭図形のデータを利用してピックウインドウと輪郭図形の外接矩形とが実際に干渉しているかを調べ、ステップＳ４−２−５において、その結果に従ってヒットしているものを特定する。ここで、より具体的な手順について、図２２を参照して後述する。
【０１４５】
図２２において、ステップＳ４−２−３−１：輪郭図形を表示装置４１に表示したときの表示イメージのビットマップイメージを算出する。
【０１４６】
ステップＳ４−２−３−２：ピックウインドウを表示装置４１に表示したときの表示イメージのビットマップイメージを算出する。
【０１４７】
ステップＳ４−２−３−３：上記の如く求めた輪郭図形及びピックウインドウの各ビットマップイメージにおいて、各画素ごとに干渉しているかを調べる。これは各画素ごとの論理積を取れば良い。
【０１４８】
ステップＳ４−２−３−４〜ステップＳ４−２−３−６：一画素でも干渉していればヒットしていると判定し、一画素も干渉していなければヒットしていないと判定する。
【０１４９】
ここで、図１の説明に戻る。ステップＳ５〜ステップＳ６：上述したステップＳ４においてヒットしていると判定された要素を、選択要素候補として、記憶装置に保存する。
【０１５０】
ステップＳ７：登録されている選択要素がまだあるかどうか判定し、まだある場合は、ステップＳ３に戻って残りの選択された可能性のある要素に関して、上述したステップＳ３からステップＳ６の処理を行う。
【０１５１】
ステップＳ８〜ステップＳ１０：選択要素候補があるかを判断し（ステップＳ８）、ある場合は、ヒットされた要素の中からある基準により選択要素を決定し（ステップＳ９）、なければ選択要素なしとする（ステップＳ１０）。
【０１５２】
ここで、ステップＳ９の処理の詳細について、図２３を参照して説明する。
【０１５３】
図２３において、ステップＳ９−１：ヒットしている要素のうち一番高い優先順位を持つものを探索する。尚、各要素には予め優先順位が設定されているものとする。
【０１５４】
探索した結果、最も優先順位を持つ要素が複数ある場合は、下記の（Ｓ８−２）以下の処理を行う。
【０１５５】
ステップＳ９−２，ステップＳ９−６：探索した結果、最も高い優先順位を持つ要素が複数あるかを判断し（ステップＳ９−２）、一つしかない場合は、ステップＳ９−６においてその要素を選択要素とする。
【０１５６】
ステップＳ９−３：ステップＳ９−２の判断の結果、最も高い優先順位を持つ要素が複数あるので、上記の如く求めた最も高い優先順位を持つ複数の要素を、要素種別ごとに分類し、要素種別ごとに設定した優先順位により最も高い優先順位を持つものを探索する。
【０１５７】
尚、要素種別毎の優先順位として、点が一番高い優先順位、塗り潰し図形が一番低い優先順位、それ以外がその間の優先順位とする。こうした理由は一般に点は、他の要素の影に隠れて、選択しにくいため、塗り潰し図形は他の要素を隠してしまって、選択されやすいため、その効果を打ち消すために例えば上記の優先順位にすれば、いろいろな種別の要素を等しく選択しやすくなるからである。（図１３参照）
ステップＳ９−３のより具体的な手順は、例えば図２４のフローチャートの如く行えば良い。
【０１５８】
図２４において、ステップＳ９−３−１〜ステップＳ９−３−２：要素種別が点のものを探索し、点がある場合はそれを取り出す。点がない場合は、ステップＳ９−３−４以下の処理に移る。
【０１５９】
ステップＳ９−３−４〜ステップＳ９−３−７：要素種別に塗り潰し図形でないものを探索し、塗り潰し図形でないものがある場合は、ステップＳ９−３−３にてその図形を取り出す。一方、塗り潰し図形でないものがない場合は、ステップＳ９−３−７にて塗り潰し図形を取り出す。
【０１６０】
ステップＳ９−４：上記のステップＳ９−３において探索した結果、要素が複数あるかを判断し、複数有る場合はステップＳ９−５に進み、要素が一つしかない場合は、ステップＳ９−６においてその要素を選択要素とする。
【０１６１】
ステップＳ９−５：描画リストの順位に従って選択図形を決定する。ここで、各要素の描画の優先順位は、リストによって管理されているものとする。このリストは、例えば最初にあるものほど先に描画し、後ろにあるものほど後に書くものとする。結果として、リストの後ろにあるものほど表示装置４１のオペレータにとって手前側に表示されているように表示される。このとき、上記の複数の選択された候補要素がある場合、描画リストの一番後ろのものを選べば、一番手前側の要素が選択されることになる。
【０１６２】
このような第１の実施形態によれば、操作性に優れ、印刷属性を考慮したピック処理が実現する。
【０１６３】
［第２の実施形態］
次に、上述した第１の実施形態に係る描画指示装置を基本とする第２の実施形態を説明する。以下の説明においては、第１の実施形態と同様な構成については重複する説明を省略し、本実施形態における特徴的な部分を中心に説明する。
【０１６４】
本実施形態に係る描画指示装置は、ステップＳ４−２−３における処理が図２５に示すフローチャートの手順に従って行われる点が、図２２に示すフローチャートに従って行われる第１の実施形態と異なる。
【０１６５】
図２５において、ステップＳ４−２−３−１Ａ〜ステップＳ４−２−３−４Ａ：要素データとピックウインドウが幾何的に干渉するかどうか調べ、要素データとピックウインドウが幾何的に干渉しているかを計算して求める（ステップＳ４−２−３−１Ａ）。その結果、干渉していると判定されたらヒットしているとし（ステップＳ４−２−３−３Ａ）、干渉していないと判定されたらヒットしていないと判定する（ステップＳ４−２−３−４Ａ）。
【０１６６】
このような本実施形態によっても、第１の実施形態と略同様な効果が享受できる。
【０１６７】
［第３の実施形態］
次に、上述した第１の実施形態に係る描画指示装置を基本とする第３の実施形態を説明する。以下の説明においては、第１の実施形態と同様な構成については重複する説明を省略し、本実施形態における特徴的な部分を中心に説明する。
【０１６８】
本実施形態に係る描画指示装置は、ステップＳ４−２−３における処理が図２６に示すフローチャートの手順に従って行われる点が、図２２に示すフローチャートに従って行われる第１の実施形態と異なる。
【０１６９】
図２６において、ステップＳ４−２−３−１Ｂ：文字列を構成する各文字のフォントボックスの矩形の和を、フォントボックスとして算出する。
【０１７０】
ステップＳ４−２−３−２Ｂ：ピックウインドウと、ステップＳ４−２−３−１Ｂで求めた矩形とが幾何的に干渉するかどうかを調べ（ステップＳ４−２−３−３Ｂ）、干渉していると判定されたらヒットしていると判定し（ステップＳ４−２−３−４Ｂ）、干渉していないと判定されたらヒットしていないと判定する（ステップＳ４−２−３−５Ｂ）。
【０１７１】
このような本実施形態によっても、第１の実施形態と略同様な効果が享受できる。
【０１７２】
［第４の実施形態］
次に、上述した第１及び第２の実施形態に係る描画指示装置を基本とする第４の実施形態を説明する。以下の説明においては、第１の実施形態と同様な構成については重複する説明を省略し、本実施形態における特徴的な部分を中心に説明する。
【０１７３】
本実施形態に係る描画指示装置は、ステップＳ４−２−３における処理が図２７に示すフローチャートの手順に従って行われる点が、図２２に示すフローチャートに従って行われる第１の実施形態と異なる。
【０１７４】
図２７において、ステップＳ４−２−３−１Ｃ：要素を表示したときのイメージの輪郭図形のデータ量を推定する。このとき、あまりデータ量が多いとイメージのビットマップによる干渉判定は多くの資源を使い、計算コストも高いので、まず元の要素データからデータ量を推定する。
【０１７５】
ステップＳ４−２−３−２Ｃ〜ステップＳ４−２−３−４Ｃ：ステップＳ４−２−３−１Ｃにて推定したデータ量と所定量とを比較し（ステップＳ４−２−３−２Ｃ）、その結果、当該データ量が所定量より少ないときには、上述した第１の実施形態におけるステップＳ４−２−３−２（図２２）と同様に、輪郭図形及びピックウインドウの各ビットマップイメージの各画素ごとの干渉判定を行うことによってヒット処理を行う（ステップＳ４−２−３−３Ｃ）。一方、推定したデータ量が所定量以下のときには、上述した第２の実施形態における図２５のフローチャートと同様な手順で幾何的に干渉判定を行う（ステップＳ４−２−３−４Ｃ）。
【０１７６】
ビットマップを使った干渉判定は、資源・計算コストを使うものの印刷属性等を考慮した精密な干渉判定が行える。一方、幾何的な干渉判定は、若干精密さを損なうものの、少ない資源・低い計算コストで行うことができる。本実施形態によれば、最初の要素の表示イメージの輪郭図形のデータ量を推定することにより適応的に上記の２処理を切り替えるようにしたものである。
【０１７７】
このような本実施形態によっても、第１の実施形態と略同様な効果が享受できる。
【０１７８】
［第５の実施形態］
次に、上述した第１の実施形態に係る描画指示装置を基本とする第５の実施形態を説明する。以下の説明においては、第１の実施形態と同様な構成については重複する説明を省略し、本実施形態における特徴的な部分を中心に説明する。
【０１７９】
本実施形態に係る描画指示装置は、ステップＳ９における処理が図２８に示すフローチャートの手順に従って行われる点が、図２３及び図２４に示すフローチャートに従って行われる第１の実施形態と異なる。
【０１８０】
図２８において、ステップＳ９−１Ａ：選択要素候補が重なっていて、オペレータが選択に難い場合があるので、一時的に重ならないように、選択要素候補を一時的に位置をずらして表示する（図１８参照）。より具体的な手順は、例えば、図２９に示すフローチャートに従って行えば良い。
【０１８１】
図２９において、ステップＳ９−１Ａ−１，ステップＳ９−１Ａ−２：重なっている各要素の外接矩形を算出し、重なっている図形をずらして表示するときの各要素間の距離を示す適当なマージン値を設定する。
【０１８２】
ステップＳ９−１Ａ−３：入力座標を中心に各要素の外接矩形が、ステップＳ９−１Ａ−２で設定したマージン値の分だけ他の要素の外接矩形と縦・横方向に配置できるように、各図形の移動量を算出する。
【０１８３】
ステップＳ９−１Ａ−４，ステップＳ９−１Ａ−５：選択要素候補となっている図形要素が画面内に全て納まるかを判断し、その判断の結果、図形要素が全て納まるときにはステップＳ９−１Ａ−６に進み、納まらないときには、ステップＳ９−１Ａ−５において、マイナスの値になるのも許して、マージン値を減らして画面内におさまるように各図形の移動量を再算出する。または、画面の表示スケールを縮小して、選択要素候補となっている要素がすべて画面内におさまるようにする。
【０１８４】
ステップＳ９−１Ａ−６：求めた移動量により各図形を一時的に再配置する。
【０１８５】
次に、図２８の説明に戻り。ステップＳ９−２Ａ：上記如く一時的に表示位置をずらした各図形要素をオペレータが判り易いように、高輝度表示、特殊な色による表示、点滅などの特殊な表示状態に一時的にする。
【０１８６】
ステップＳ９−３Ａ：オペレータに上記の如く表示した選択要素候補の中から所望の図形要素を選ばせるために、マウス１２等のポインティングデバイスにより座標を入力させる。
【０１８７】
ステップＳ９−４Ａ〜ステップＳ９−７Ａ：本実施形態では、第１の実施形態で説明したような選択要素が複数あるという前提をおかないピック処理を行う。即ち、ピック処理の結果、選択された図形がある場合は、それを選択図形とする（ステップＳ９−６Ａ）。一方、選択された図形がない場合は、エラーとして、もう一度ユーザに入力させ直すなどのエラー処理を行う（ステップＳ９−７Ａ）。
【０１８８】
ステップＳ９−８Ａ：ステップＳ９−２Ａの処理で一時的にずらして特殊な表示状態になっている要素を元の状態に戻す。
【０１８９】
このような本実施形態によっても、第１の実施形態と略同様な効果が享受できる。
【０１９０】
［第６の実施形態］
次に、上述した第１の実施形態に係る描画指示装置を基本とする第６の実施形態を説明する。以下の説明においては、第１の実施形態と同様な構成については重複する説明を省略し、本実施形態における特徴的な部分を中心に説明する。
【０１９１】
図３０は、第６の実施形態におけるピック処理の手順を示すフローチャートであり、ステップＳ１乃至ステップＳ６は、第１の実施形態における図１のステップＳ１乃至ステップＳ６と同様の処理を行う。即ち、ステップＳ６において１つでもヒットしている図形要素があればその図形要素を、選択要素とする。これによりすばやい選択処理が可能になる。
【０１９２】
ステップＳ１１，ステップＳ１２：ステップＳ５の判断でヒットしていないときには、ステップＳ１１において図１のステップＳ７と同様に、まだ選択された可能性のある図形要素が有るかを判断する。この判断の結果、まだ選択された可能性のある図形要素が有るときにはステップＳ２に戻り、無いときには、ステップＳ１２において選択要素無しとする。
【０１９３】
このような本実施形態によっても、第１の実施形態と略同様な効果が享受できる。
【０１９４】
以上説明した各実施形態によれば、操作性に優れ、印刷属性を考慮したピック処理が実現する。また、描画指示装置の計算資源量に応じて、通常は、精密な印刷属性を含む表示データを基にピック処理を行うものの、資源量が足りない場合は、簡易的な処理でピック処理を行うため、状況に応じた適切な処理が行える。
【０１９５】
【他の実施形態】
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１９６】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１９７】
【発明の効果】
以上説明したように、本発明によれば、操作性に優れ、印刷属性を考慮したピック処理を行う描画指示装置及び描画指示方法及びコンピュータ読み取り可能な記憶媒体の提供が実現する。
【図面の簡単な説明】
【図１】ピック処理の手順を説明するフローチャートである。
【図２】本発明の第１の実施形態の描画指示装置のハードウエア構成を示すブロック図である。
【図３】ＷＹＳＩＷＹＧの機能を説明する図である。
【図４】第１の実施形態に係るピック処理プログラムの実行時に、表示装置４１に表示されるメインパネル６１を例示する図である。
【図５】各要素の特徴点を示す図である。
【図６】交点指定による位置の指定の例を示す図である。
【図７】線上点指定による位置の指定の例を示す図である。
【図８】印刷データファイルの例を示す図である。
【図９】シンボルの例を示す図である。
【図１０】線幅・端点属性の印刷属性を考慮しないピック処理の例を示す図である。
【図１１】線種の印刷属性を考慮しないピック処理の例を説明する図である。
【図１２】文字列のフォントボックスによるピック処理の例を説明する図である。
【図１３】要素種別によってピックしにくくなる例を示す図である。
【図１４】入力座標により選択された可能性のある要素をリストに入れる処理を示す図である。
【図１５】輪郭図形を抽出する処理を示す図である。
【図１６】ピックウインドウの作成を示す図である。
【図１７】ピックウインドウと要素の輪郭図形の干渉を検査することによってヒットの有無を判定する処理を示す図である。
【図１８】重なった図形をピック処理がしやすいように一時的に図形をずらす処理を示す図である。
【図１９】図１のステップＳ４の処理の詳細を示すフローチャートである。
【図２０】図１９のステップＳ４−１の処理の詳細を示すフローチャートである。
【図２１】図１９のステップＳ４−２の処理の詳細を示すフローチャートである。
【図２２】図２１のステップＳ４−２−３の処理の詳細を示すフローチャートである。
【図２３】図１のステップＳ９の処理の詳細を示すフローチャートである。
【図２４】図２３のステップＳ９−３の処理の詳細を示すフローチャートである。
【図２５】第２の実施形態においてステップＳ４−２−３として行われる処理の詳細を示すフローチャートである。
【図２６】第３の実施形態においてステップＳ４−２−３として行われる処理の詳細を示すフローチャートである。
【図２７】第４の実施形態においてステップＳ４−２−３として行われる処理の詳細を示すフローチャートである。
【図２８】第５の実施形態においてステップＳ９として行われる処理の詳細を示すフローチャートである。
【図２９】第５の実施形態において図２８のステップＳ９−１Ａとして行われる処理の詳細を示すフローチャートである。
【図３０】第６の実施形態におけるピック処理の手順を示すフローチャートである。
【図１】
0004458640.tif 000002
【図２】
0004458640.tif 000003
【図３】
0004458640.tif 000004
【図４】
0004458640.tif 000005
【図５】
0004458640.tif 000006
【図６】
0004458640.tif 000007
【図７】
0004458640.tif 000008
【図８】
0004458640.tif 000009
【図９】
0004458640.tif 000010
【図１０】
0004458640.tif 000011
【図１１】
0004458640.tif 000012
【図１２】
0004458640.tif 000013
【図１３】
0004458640.tif 000014
【図１４】
0004458640.tif 000015
【図１５】
0004458640.tif 000016
【図１６】
0004458640.tif 000017
【図１７】
0004458640.tif 000018
【図１８】
0004458640.tif 000019
【図１９】
0004458640.tif 000020
【図２０】
0004458640.tif 000021
【図２１】
0004458640.tif 000022
【図２２】
0004458640.tif 000023
【図２３】
0004458640.tif 000024
【図２４】
0004458640.tif 000025
【図２５】
0004458640.tif 000026
【図２６】
0004458640.tif 000027
【図２７】
0004458640.tif 000028
【図２８】
0004458640.tif 000029
【図２９】
0004458640.tif 000030
【図３０】
0004458640.tif 000031