JP3282957B2 - 座標入力制御装置及び方法 - Google Patents
座標入力制御装置及び方法Info
- Publication number
- JP3282957B2 JP3282957B2 JP00689196A JP689196A JP3282957B2 JP 3282957 B2 JP3282957 B2 JP 3282957B2 JP 00689196 A JP00689196 A JP 00689196A JP 689196 A JP689196 A JP 689196A JP 3282957 B2 JP3282957 B2 JP 3282957B2
- Authority
- JP
- Japan
- Prior art keywords
- coordinate
- rotation angle
- points
- angle
- control data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 55
- 238000006073 displacement reaction Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 19
- 230000001154 acute effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 33
- 238000004364 calculation method Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 20
- 238000012935 Averaging Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000005070 sampling Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 238000003825 pressing Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 102000001690 Factor VIII Human genes 0.000 description 1
- 108010054218 Factor VIII Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- Digital Computer Display Output (AREA)
- Position Input By Displaying (AREA)
- User Interface Of Digital Computer (AREA)
Description
いた図形処理(特に3次元図形処理)のための座標入力
制御装置及び方法に係り、特に、表示された図形の位置
や姿勢を制御するための座標入力制御装置及び方法に関
する。更に詳しくは、本発明は、表示された図形の位置
や姿勢に関する制御データ(変位量)をマウス等の一般
的な座標指示装置によって入力可能な座標入力制御装置
及び方法に関する。
システムの利用分野も拡大してきた。コンピュータによ
る図形や画像の作成や処理はその一例である。図形処理
技術は、科学、工学、製造その他の応用分野でのCAD
/CAMや、各種ソフトウェア開発などの分野におい
て、ますます重要になってきている。
では、表示中のオブジェクトを画面上で回転させたり移
動させたりする(すなわち位置や姿勢を制御する)とい
うニーズは極めて高い。このため、3次元図形処理シス
テムは、いわゆるコンピュータ・システム本体の他、図
形表示装置、及び位置や姿勢を入力するための指示入力
装置を有しているのが一般的である。ここで、コンピュ
ータ・システム本体は、例えばグラフィック・ワークス
テーションのように、高速なCPU、大容量のメモリ、
高速なビデオ・アダプタ、及び大容量のDASD(Dire
ct Access Storage Device:例えばハード・ディスクな
ど)を備えていることが好ましい。また、図形表示装置
は、1000×1000ドット以上の高解像度のビット
マップ・ディスプレイであることが好ましい。また、3
次元オブジェクトの位置や姿勢は、XYZの3軸方向及
び各軸回りの回転方向という、合計6個の自由度を持つ
ことから、指示入力装置は、最低でも6種類の指示入力
機構を備えていることが好ましい(さらに画面中での拡
大/縮小という自由度も必要であろう)。
下、"5085/86"という)は、ホスト・メインフレ
ーム上で稼働するグラフィック適用業務プログラムの入
出力端末である。5085/86は、特にグラフィック
に関して優れた表示機能を持ち、高速度で図形を処理し
表示することが可能であり、また、入力デバイスとして
操作し易いダイヤル、タブレット、キーボード等を標準
装備している。
ls Model 010"(以下、「ハードウェア・
ダイヤル」という)は、IBM 5085/86上で使
用可能な指示入力装置の最たる例である。ハードウェア
・ダイヤルは、図13に示すように、8個のダイヤルを
備えた回転入力式デバイスである。ハードウェア・ダイ
ヤル中の各ダイヤルは、xyz各軸方向の位置、各軸回
りの回転、及び拡大/縮小の制御のために、それぞれ割
り当てられている。各ダイヤルはコーン形状をしている
ため、オペレータは先細部分を回すことにより比較的大
きな変位量を容易に入力したり、奥太部分を回すことに
より微妙な変位量を入力したりすることができる。ハー
ドウェア・ダイヤルは、操作性の点で抜群に優れている
が、高価なことが大きな難点である。IBM 5085
/86のような比較的高価なグラフィック端末を購入可
能なハイエンド・ユーザにとっては、ハードウェア・ダ
イヤルの価格は問題でないかもしれない。しかし、この
ようなグラフィック端末自体ではなく、端末エミュレー
ション・プログラムを利用するユーザにとってはハード
ウェア・ダイヤルの価格は無視し難いであろう。
IBM Soft5080 forAIX"(以下、
「5080エミュレーション」という)は、汎用コンピ
ュータ・システム(例えばRS/6000:"RS/6
000"は米IBM社の商標)上で、IBM 5085
/86グラフィック端末をエミュレートするためのプロ
グラムである(但し、コンピュータ・システムは、グラ
フッィクス・アダプタを装着し、且つオペレーティング
・システムとしてAIX("AIX"は米IBM社の商
標)をインストールしていることが必要)。5080エ
ミュレーションは、ホスト・メインフレーム上で稼働す
る適用業務プログラム(例えばCADAMやCATI
A)のチャネル・コマンドの処理、図形表示プログラム
の実行、ダイヤルやキーボードによるユーザの入力な
ど、ほとんど全ての機能をエミュレートすることで、A
IX−Window環境下で5085/86端末の機能
を提供するものである。この5080エミュレーション
とともに、『ソフトウェア・ダイヤルズ』を含む各種ソ
フトウェア・ツールもパッケージ化されて市販されてい
る。ここで、ソフトウェア・ダイヤルズは、ウィンドウ
画面上でハードウェア・ダイヤルと同等の機能をエミュ
レートするためのアプリケーションであり、マウス等の
比較的低価格で且つ広く普及しているポインティング・
デバイスによってハードウェア・ダイヤルの機能をエミ
ュレートするためのツールである。
示パネルを示している。同図に示すように、ソフトウェ
ア・ダイヤルズは、最上段のタイトル・バーと、その下
段のメニュー・バーと、ハードウェアのダイヤルを模し
た8個の「ソフトウェア・ダイヤル」とで構成される1
つのウィンドウ画面である。各ダイヤルの左右には、時
計回り/反時計回りのダイヤル回転を指示するための2
つのボタンが表示されている。また、各ソフトウェア・
ダイヤルの円内には、現在の指示値を表示するためのポ
ジション・インジケータが表示されている。ソフトウェ
ア・ダイヤルズの操作方法は、所望の自由度(例えばx
軸回りの回転や、x軸方向の移動)に割り当てられたソ
フトウェア・ダイヤルの左ボタン又は右ボタンを随時ク
リック動作する、というものである。そして、左/右の
ボタンのマウスによるクリック操作は、ハードウェア・
ダイヤルの反時計回り又は時計回りの指示としてエミュ
レートされる。入力回転量はクリック操作回数あるいは
マウス・ボタンの押圧時間に比例させてもよい。そし
て、ダイヤル円内のポジション・インジケータは指示さ
れたダイヤル回転量に応じてその指示回転位置を更新す
るようになっている。なお、一回のクリック操作当りの
回転量(又はボタンの押圧時間当りの回転量)は、デフ
ォルト値であってもユーザ・プログラマブルであっても
よい。
ェア・ダイヤルズは、ハードウェア的な回転式入力装置
であるハードウェア・ダイヤルのイメージ及び機能を可
能な限りエミュレートしたものであり、オペレータは直
感的に使用することができる。但し、このようなソフト
ウェア・エミュレーションは、入力方式の殆どをマウス
・ボタンのクリック操作で実現しているため、ハードウ
ェア実物による操作とはある程度のギャップがあり、回
転や移動の指示入力に関して幾つかの難点を含んでい
る。
は、最初に大きく次第に小さくという具合に、図形モデ
ルの回転や移動を粗雑な制御から微妙な制御へと漸進的
に移っていく傾向がある。ハードウェア・ダイヤルであ
れば、各ダイヤルはコーン形状をしているため、オペレ
ータは先細部分を回すことにより比較的大きな変位を、
あるいは奥太部分を回すことにより微妙な変位を入力す
ることができる。一方、ソフトウェア・ダイヤルの場
合、ダイヤル回転量は左/右ボタンのクリック操作回数
(又はボタンの押圧時間)に比例する。しかし、その比
例定数は、デフォルト値であれユーザ・プログラマブル
であれ、入力操作の間は固定的である。このため、各マ
ウス操作毎の図形モデルの回転量や移動量は均一なもの
であり、ハードウェア・ダイヤルを用いた場合のような
漸進的な回転/移動操作までエミュレートすることはで
きない。比例定数をユーザ・プログラマブルにした場合
であっても、設定後は固定的に用いられるため、漸進的
な入力操作は実現できない。
形処理(特に3次元図形処理)のための、優れた座標入
力制御装置及び方法を提供することにある。
位置や姿勢を制御するための、優れた座標入力制御装置
及び方法を提供することにある。
アを増設することなく、表示された図形の位置や姿勢に
関する制御データ(変位量)を入力することができる、
優れた座標入力制御装置及び方法を提供することにあ
る。
位置や姿勢に関する制御データ(変位量)をマウス等の
一般的な座標指示装置によって入力可能な、優れた座標
入力制御装置及び方法を提供することにある。
酌してなされたものであり、その第1の側面は、座標指
示装置から獲得した座標値に基づいて画面上に表示され
た図形モデルの位置や姿勢に関する制御データを求める
ための座標入力制御装置において、(a)座標指示装置
から逐次入力される各点Pi(xi,yi)の座標値を含
む、処理中のデータを記憶することができるメモリと
(但し、添字iは正の整数であり、入力回数を示すもの
とする)、(b)前記メモリに記憶された連続する3個
の点Pn(xn,yn),Pn+1(xn+1,yn+1),及びP
n+2(xn+2,yn+2)と外接する円Onにおける円弧Pn
Pn+1Pn+2に対する中心角∠PnOnPn+2を求める第1
の手段と(但し、nは正の整数)、(c)中心角∠Pn
OnPn+2に基づいて2点Pn(xn,yn),Pn+1(x
n+1,yn+1)が表す回転角∠θn(=∠PnOnPn+1)を
求める第2の手段と、(d)回転角∠θnを制御データ
として採用する第3の手段と、を具備することを特徴と
する座標入力制御装置である。
置から獲得した座標値に基づいて画面上に表示された図
形モデルの位置や姿勢に関する制御データを求めるため
の座標入力制御装置において、(a)座標指示装置から
逐次入力される各点Pi(xi,yi)の座標値を含む、
処理中のデータを記憶することができるメモリと(但
し、添字iは正の整数であり、入力回数を示すものとす
る)、(b)前記メモリに記憶された連続する3個の点
Pn(xn,yn),Pn+1(xn+1,yn+1),及びPn+2
(xn+2,yn+2)と外接する円Onにおける円弧PnP
n+1Pn+2に対する中心角∠PnOnPn+2を求める第1の
手段と(但し、nは正の整数)、(c)中心角∠PnOn
Pn+2に基づいて2点Pn(xn,yn),Pn+1(xn+1,
yn+1)が表す回転角∠θn(=∠PnOnPn+1)を求め
る第2の手段と、(d)回転角∠θnを、それ以前に求
められた1以上の回転角∠θn-1(=∠Pn-1O
n-1Pn),∠θn-2(=∠Pn-2On-2Pn-1)…との間で
加重平均する第3の手段と、(e)加重平均化された回
転角∠(θn)aveを制御データとして採用する第4の手
段と、を具備することを特徴とする座標入力制御装置で
ある。
としての回転量を、座標指示装置から獲得した座標値を
元にして求めるための座標入力制御装置において、
(a)座標指示装置から逐次入力される各点Piの座標
値を含む、処理中のデータを記憶することができるメモ
リと(但し、添字iは正の整数であり、入力回数を示す
ものとする)、(b)前記メモリに記憶された連続する
3個の点Pn,Pn+1,及びPn+2に外接する円Onにおけ
る円弧PnPn+1Pn+2に対する中心角∠PnOnPn+2を求
める第1の手段と、(c)円Onおける円弧PnPn+1に
対する中心角∠θnを求める第2の手段と、(d)回転
角∠θnを制御データとして採用する第3の手段と、を
具備することを特徴とする座標入力制御装置である。
置から獲得した座標値に基づいて画面上に表示された図
形モデルの位置や姿勢に関する制御データを求めるため
の座標入力制御方法において、(a)座標指示装置から
獲得した各点Pi(xi,yi)の座標値を逐次記憶する
第1の段階と(但し、添字iは正の整数であり、入力回
数を示すものとする)、(b)連続する3個の点P
n(xn,yn),Pn+1(xn+1,yn+1),及びP
n+2(xn+2,yn+2)と外接する円Onにおける円弧Pn
Pn +1Pn+2に対する中心角∠PnOnPn+2を求める第2
の段階と(但し、nは正の整数)、(c)中心角∠Pn
OnPn+2に基づいて2点Pn(xn,yn),Pn+1(xn
+1,yn+1)が表す回転角∠θn(=∠PnOnPn+1)を
求める第3の段階と、(d)回転角∠θnを制御データ
として採用する第4の段階と、を具備することを特徴と
する座標入力制御方法である。
置から獲得した座標値に基づいて画面上に表示された図
形モデルの位置や姿勢に関する制御データを求めるため
の座標入力制御方法において、(a)座標指示装置から
獲得した各点Pi(xi,yi)の座標値を逐次記憶する
第1の段階と(但し、添字iは正の整数であり、入力回
数を示すものとする)、(b)連続する3個の点P
n(xn,yn),Pn+1(xn+1,yn+1),及びP
n+2(xn+2,yn+2)と外接する円Onにおける円弧Pn
Pn +1Pn+2に対する中心角∠PnOnPn+2を求める第2
の段階と(但し、nは正の整数)、(c)中心角∠Pn
OnPn+2に基づいて2点Pn(xn,yn),Pn+1(xn
+1,yn+1)が表す回転角∠θn(=∠PnOnPn+1)を
求める第3の段階と、(d)回転角∠θnを、それ以前
に求められた1以上の回転角∠θn-1(=∠Pn-1On-1
Pn),∠θn-2(=∠Pn-2On-2Pn-1)…との間で加
重平均する第4の段階と、(e)加重平均化された回転
角∠(θn)aveを制御データとして採用する第5の段階
と、を具備することを特徴とする座標入力制御方法であ
る。
としての回転量を、座標指示装置から獲得した座標値を
元にして求めるための座標入力制御方法において、
(a)座標指示装置から獲得した各点Piの座標値を逐
次記憶する第1の段階と(但し、添字iは正の整数であ
り、入力回数を示すものとする)、(b)連続する3個
の点Pn,Pn+1,及びPn+2に外接する円Onにおける円
弧PnPn+1Pn+2に対する中心角∠PnOnPn+2を求める
第2の段階と、(c)円Onおける円弧PnPn+1に対す
る中心角∠θnを求める第3の段階と、(d)回転角∠
θnを制御データとして採用する第4の段階と、を具備
することを特徴とする座標入力制御方法である。
ば、マウスなどの座標指示装置から入力された連続する
3点Pn,Pn+1,及びPn+2の座標値を元にして、ま
ず、この3点を外接する円Onにおける円弧PnPn+1P
n+2に対する中心角∠PnOnPn+2が求められる。角∠P
nOnPn+2の算出には、例えば余弦定理が用いられる
([発明の実施の形態]のC−2項参照)。次いで、角
∠PnOnPn+2を元にして、円弧PnPn+1に対する中心
角∠θnが求まる。∠θnは比較的容易な幾何学計算によ
り求まる(第70パラグラフ乃至第81パラグラフ、及
び図8乃至図11参照)。制御データとしてのダイヤル
回転量の入力を待つ論理回路又は上位プログラムは、連
続する2点Pn及びPn+1の座標値入力によって得られた
中心角∠θnを回転量として採用する。そして、論理回
路又は上位プログラムは、画面上の図形モデルを指定さ
れた軸回りに角度∠θnだけ回転させるとともに、ソフ
トウェア・ダイヤルのポジション・インジケータも角度
∠θnだけ回転させる。要するに本発明によれば、マウ
スなどの一般的な座標指示装置によって所望のダイヤル
回転量に相当する円弧を描くだけでよい訳である。当
然、ハードウェア・ダイヤルのような特別なデバイスを
要しないのである。
ス・ポインタの軌跡の表す回転角度によってダイヤル回
転量をエミュレートする、という直感的な手法であると
言えよう。しかしながら、このような手法はなおも幾つ
かの不都合を含んでいる。何故ならば、マウスのような
ポインティング・デバイスは、回転量ではなくxy平面
上の座標値の入力を基調としているため、ハードウェア
・ダイヤルとの感覚的な相違は否めないからである。例
えばオペレータはマウスによって滑らかな曲線を描いた
つもりであっても、サンプリングされた座標値は不連続
でジグザク状であることもある。このようなジグザグ入
力は、オペレータ自身の腕の運動に起因する場合もあれ
ば、マウスのトラック・ボールの摩擦やマウス操作プレ
ート表面の凹凸によって招来される場合もある。このよ
うなジグザグ入力をそのまま追従して図形モデルやソフ
トウェア・ダイヤルのグラフィック・イメージを更新さ
せていては、グラフィック・イメージはぎこちなく回転
し又は移動する。イメージのぎこちない動きは、オペレ
ータに不快感を与え、あるいは使い勝手を失わせる結果
となる。
れば、連続する3点の入力座標値によって求められた回
転角∠θnを、それ以前に求められた1以上の回転角∠
θn-1(=∠Pn-1On-1Pn),∠θn-2(=∠Pn-2O
n-2Pn-1)…との間で加重平均化することによって、こ
のようなジグザグな入力を平滑化するようにしている。
御するプログラム(例えばX−Window中のX−S
erver)は、一般には、16msec毎にマウス・
ポインタの座標値をサンプリングするようになってい
る。マウス・ポインタの軌跡からダイヤル回転量をエミ
ュレートする本手法の不都合は、マウスによる座標入力
が離散的なものに過ぎない、ということにも依拠する。
何故ならば、離散的にサンプリングされた座標値から連
続的且つ曲線の回転角を算出するには、ある程度の誤差
を含んでしまうからである。例えば、連続する3個の点
Pn(xn,yn),Pn+1(xn+1,yn+1),及びPn+2
(xn+2,yn+2)の座標値に差がない場合は、ユーザは
ダイヤルの回転を意図していないと想定される。にも拘
らず敢えて回転角∠θnを求めると、無意味な(あるい
は意図しない)回転角∠θnがとり込まれ、画面上のグ
ラフィック・イメージはオペレータの意に反した回転/
移動を行う。また、第2及び第5の側面のように回転角
を加重平均処理する場合では、誤入力は後のプロセスに
も影響を及ぼすことになる。
回避するため、連続する3個の点Pn,Pn+1,及びP
n+2の座標値に差がない場合は、回転角∠θnを求める処
理を行わず、且つ制御データを0にするようにしてい
る。
1軸の回転自由度しかないので誤操作は少なくて済む
が、マウスのxy平面操作には何ら拘束がないので、そ
の分誤操作は頻繁に起こる。誤操作の顕著な例は、所謂
「手ぶれ」である。手ぶれは短時間内でのマウスの微小
な往復運動として観測される。例えば、連続する3点P
n,Pn+1,及びPn+2のなす角∠PnPn+1Pn+2が鋭角を
形成したときは、オペレータの手ぶれに因ることが想定
される(何故ならば、3点のサンプリングに要する10
0msecという短時間の間にマウス・ポインタを往復
させることは、通常の入力操作では考えられないからで
ある)。このような誤操作に画面表示を追従させていた
のでは、画面上のグラフィック・イメージはオペレータ
の意に反した回転/移動を行い、あるいは見辛いものに
なってしまう。また、第2及び第5の側面のように回転
角を加重平均処理する場合では、誤入力は後のプロセス
にも影響を及ぼすことになる。
回避するために、連続する3点Pn,Pn+1,及びPn+2
のなす角∠φ(=∠PnPn+1Pn+2)が鋭角の場合に
は、回転角∠θn(=∠PnOnPn+1)を求める処理を行
わず、且つ制御データを0にするようにしている。
弧の回転角度によってダイヤル回転量を指示するより
も、マウスの直線的な操作(すなわちマウスの移動距
離)によってダイヤル回転量を指示する方が、直感的で
入力し易いこともある。例えば、軸周りの回転でなく軸
方向の移動に係るソフトウェア・ダイヤルを操作したい
場合には、後者の方が便利であろう。そこで、本発明で
は、連続する3個の点Pn,Pn+1,及びPn+2が略一直
線上にある場合には、2点PnPn+1間の変位量に比例し
た値を回転角∠θnとして採用するようにしている。
後述する本発明の実施例や添付する図面に基づくより詳
細な説明によって明らかになるであろう。
の実施例を詳解する。
テム100の概略的なブロック図を示している。
ーラであるCPU11が、オペレーティング・システム
(OS)の制御下で、各種プログラムを実行するように
なっている。CPU11には、例えばPowerP
C("PowerPC"は米IBM社の商標)のような高
速なRISC型CPUが用いられる。CPU11は、デ
ータ信号線、アドレス信号線、コントロール信号線等か
らなる共通信号伝送路(「バス」ともいう)12を介し
て各部と連絡している。
ログラム(OSやアプリケーション・プログラム:B項
参照)をロードしたり、CPU11が作業領域として用
いたりするための揮発性メモリ(RAM)である。マウ
ス22から逐次取り込まれた座標値もメモリ13内の所
定領域に一時的に格納される。
e)14は、いわゆる補助記憶装置である。例えばハー
ド・ディスク・ドライブ(HDD)やフロッピー・ディ
スク・ドライブ(FDD)がこれに該当する。
は、キーボード21からの入力マトリックスやマウス2
2からの指示座標値を、OSの定義に合致したフォーマ
ットに変換してバス12上に送り出すようになってい
る。例えばマウス22から獲得した座標値は、メモリ1
3の所定アドレス上のバッファ領域に一時的に格納され
る。
11からの描画命令を実際に処理するための周辺デバイ
スであり、処理した描画情報を画面バッファ(VRA
M)17に一旦書き込むとともに、VRAM17から描
画情報を読み出して、ディスプレイ19に出力するよう
になっている。本実施例のグラフィックス・アダプタ1
6は、特にグラフィックス機能が強化されたアダプタ・
カードであると理解されたい。また、本実施例のディス
プレイ19は、高解像度ビットマップ・ディスプレイ
(例えば1000×1000ドット以上)であると理解
されたい。
交信するための周辺デバイスであり、Ethernet
カードやTokenringカードなどがこれに該当す
る。システム100は、通信アダプタ18により、ネッ
トワーク経由であるいは直接にホスト・メインフレーム
(例えばS/390)と接続される。
の一例は、オペレーティング・システムとしてAIXを
インストールしたRS/6000である。なお、コンピ
ュータ・システム100を構成するためには、図1に示
した以外にも多くのハードウェア構成要素が必要である
が、これらは当業者には周知であり、且つ本発明の要旨
とは関連がないので、本明細書中では省略している。
テム100上でのソフトウェア環境を模式的に示してい
る。
タスク、マルチユーザ・タイプのOSの制御下で各種プ
ログラムが実行されるようになっている。
出力をハードウェア操作するためのデバイス・ドライバ
である。また、ディスプレイ・ドライバは、OS(とり
わけウィンドウ・システム)による画面制御に従ってデ
ィスプレイ19をハードウェア操作するためのデバイス
・ドライバである。
示やマウス操作などの入出力機能やアプリケーションと
の交信を担当するプログラムであり、AIXの"X−W
indow"がこれに該当する。X−Windowのう
ち特に入出力機能を担当する部分は"X−Server"
と呼ばれる。
ルズは、AIX環境下で実行されるアプリケーション・
プログラムである。Soft5080は、IBM 50
85/86グラフィック端末をエミュレートするための
プログラムであり、ホスト・メインフレーム上で稼働す
る適用業務プログラムのチャネル・コマンドの処理、図
形表示プログラムの実行、ダイヤルやキーボードによる
ユーザの入力など、ほとんど全ての機能をエミュレート
することで、5085/86端末の機能を提供するよう
になっている(前述)。また、ソフトウェア・ダイヤル
ズは、ウィンドウ画面上でハードウェア・ダイヤルと同
等の機能をエミュレートするためのアプリケーションで
あり、マウス等の座標指示装置からの入力座標値に従っ
てハードウェア・ダイヤルの機能をエミュレートするた
めのツールである。但し、本実施例のソフトウェア・ダ
イヤルズは、[従来の技術]の項で述べた同名のそれと
は相違した機能・動作特性を備えている点に留意された
い(詳細はC項参照)。
し合う様子を模式的に示している。ハードウェア構成要
素の1つであるマウス22は、自身に何らかの変化(例
えばマウスの移動やマウス・ボタンの押圧)が発生する
と、システム100に対して割り込み要求を発生させ
る。マウス・ドライバはこの割り込み要求をハンドルし
て、ハードウェア操作の内容(例えば新しい入力座標
値)を所定のバッファ領域に書き込む。このバッファ領
域は、メモリ13内のマウス・ドライバの作業領域であ
ってもよい。X−Window(より正確にはX−Se
rver)は、16msec毎にバッファの内容をポー
リングするとともに、50msec毎に座標値を上位プ
ログラムであるソフトウェア・ダイヤルズに通知する。
なお、16msec,50msecなる時間間隔は単な
る設計値に過ぎない。
ドを授受する様子を模式的に示している。図3の説明で
も述べたように、X−Window(より正確にはX−
Server)は、50msec毎に、ソフトウェア・
ダイヤルズに対して座標値を通知する(C1)。ソフト
ウェア・ダイヤルズは、C項で詳解する所定の処理を実
行した後、算出されたダイヤル回転量∠θをSoft5
080に報告する(C2)。また、ソフトウェア・ダイ
ヤルズは、X−Windowに対しては、ダイヤル回転
量∠θ分だけポジション・インジケータの表示を更新さ
せることを要求する(C3)。一方、ダイヤル回転量∠
θの報告を受けたSoft5080は、X−Windo
wに対して、表示中のグラフィック・イメージの更新
(例えば、指定した軸回りの図形モデルの回転量∠θ分
だけの回転、又は、指定した軸方向への回転量∠θに相
当する移動、拡大/縮小)を要求する(C4)。
100のハードウェア及びソフトウェア構成を説明して
きた。本項では、該システム100上で実行される処理
動作について説明することにする。
は、マウスなどの一般的な座標指示装置で描いた曲線を
元にして、ダイヤル回転量をエミュレートする、という
点にある。図5には、本発明の該機能を実現するための
グローバル・ルーチンをフローチャート化して示してい
る。
の処理ルーチンは、図14に示すソフトウェア・ダイヤ
ルズのウィンドウ上の8個のダイヤルのうちの所望の1
つを選択動作することによって開始する(S100)。
また、該処理ルーチンは、他のダイヤルを選択動作する
まで継続する(S300)。なお、選択されたダイヤル
を反転させることによって、選択外のダイヤルと識別で
きるようにしてもよい(図15参照)。
に、X−Windowはソフトウェア・ダイヤルズに対
してマウス・ポインタの現在の座標値を報告する(S2
00)。すなわち、ソフトウェア・ダイヤルズは50m
sec毎に座標値をサンプリングする訳である。
番目の入力点Pn(xn,yn)と(n+1)番目の入力
点Pn+1(xn+1,yn+1)を結ぶ円弧が表すの回転角∠
θn(=∠PnOnPn+1)を求める(S400)。回転∠
θnの算出には連続する3個の点Pn,Pn+1,及びPn+2
の各座標値が用いられるが、詳細はC−2項を参照され
たい。(但し、nは正の整数。以下同様)
番目の入力に係る回転角∠θnを、それ以前に求められ
た1以上の回転角∠θn-1(=∠Pn-1On-1Pn),∠θ
n-2(=∠Pn-2On-2Pn-1)…との間で加重平均化する
(S500)。他の回転角∠θn−1…との間で加重平均
をとるのは、ジグザグ状にサンプリングされたマウス・
ポインタの軌跡を平滑化させるためである。加重平均化
サブ・ルーチンの詳細については、C−3項を参照され
たい。
テップS500で加重平均化された回転角∠(θn)ave
をSoft5080に報告するとともに、X−Wind
owに対しては回転角∠(θn)aveに相当するポジショ
ン・インジケータの回転位置の更新を要求する。また、
回転角∠(θn)aveの報告を受けたSoft5080
は、X−Windowに対して、ダイヤル回転角∠(θ
n)aveに相当するグラフィック・イメージの更新(例え
ば、現在表示している図形モデルを、指定した軸回りに
回転量∠(θn)aveだけ回転させる、又は、回転量∠
(θn)aveに相当する分だけ、指定した軸方向に移動さ
せる若しくは拡大/縮小させる)を要求する。X−Wi
ndowは、ソフトウェア・ダイヤルズ及びSoft5
080からの要求に従って、グラフィック・イメージを
更新する(S600)。X−Windowが実行するイ
メージ更新の内容は主に、(1)選択中のダイヤルのポ
ジション・インジケータ表示位置を回転角∠(θn)ave
だけ回転させることと、(2)現在表示している図形モ
デルを、指定した軸回りに回転量(θn)aveだけ回転さ
せる、又は、回転量(θn)aveに相当する分だけ、指定
した軸方向に移動させる若しくは拡大/縮小させるこ
と、の2点である。
再びステップS200に戻り、マウス・ポインタの座標
値のサンプリングが行われる。サンプリングは他のダイ
ヤルが選択されるまで継続する。
角計算サブ・ルーチン(図5中のステップS400)に
ついてさらに詳細に説明する。図6には、回転角計算サ
ブ・ルーチンをフローチャート化して示している。この
サブ・ルーチンは、連続する3個のサンプリング点Pn
(xn,yn),Pn+1(xn+1,yn+1),及びPn+2(x
n+2,yn+2)の座標値に基づいて円弧Pn及びPn+1に対
する中心角∠θn(=∠PnOnPn+1)を求める場合を例
にしている。
個のサンプリング点Pn,Pn+1,及びPn+2がそれぞれ
違う点か否かが判断される(S410)。この判断ブロ
ックは、オペレータがマウス操作をしていない間は、周
期的にサンプリングされた座標値によって無意味なグラ
フィック・イメージの更新を行わせないためである。し
たがって、この判断ブロックの結果が否定的な場合、以
後のステップS420,S430…はスキップされ、且
つ回転角∠θn(=∠PnOnPn+1)にゼロを与えて(S
460)、回転角計算サブ・ルーチンを終わる。一方、
判断ブロックの結果が肯定的であれば、後続のステップ
S420に進む。
ンプリング点Pn,Pn+1,及びPn+ 2が略一直線上にあ
るか否かが判断される。一直線上に存在すれば、オペレ
ータはマウスによる直線的な入力操作を希望していると
解釈して、ステップS470以降の例外的な処理ルーチ
ンに進む(第58パラグラフ乃至第63パラグラフ参
照)。なお、連続する3点が一直線に並ぶか否かの判断
は、後続のステップS440における時計回り(CW)
か否かの判断とともに、同じ幾何学的手法に基づいて試
みられる(第64パラグラフ乃至第69パラグラフ参
照)。
的であれば、後続のステップS430に進み、幾何学的
な手法に基づいて回転角∠θnの計算が試みられる(第
70パラグラフ乃至第81パラグラフ参照)。
n→Pn+1の向きが時計回り(CW)か反時計回り(CC
W)かを判断する。この判断は、ステップS420と同
様の幾何学的手法に基づいて試みられる。時計回りであ
れば、回転角∠θnには正の符号が与えられて、該サブ
・ルーチンを終了する。また、反時計回りであれば、回
転角∠θnには負の符号が与えられて、該サブ・ルーチ
ンを終了する(S450)。
る3個のサンプリング点Pn,Pn+1,及びPn+2が略一
直線上にある場合に実行される、ステップS470以降
の例外的な処理ルーチンについて説明する。
n+1間におけるマウス・ポインタのxy各軸方向の変位
量Dx及びDyを求める。
の変位量Dx及びDyの絶対値の大小比較を行う。
ロックS472の分岐Yesに進む。この場合、オペレ
ータはx軸方向の変位による入力を期待していると見做
される。そして、Dxに比例する角度及びDxに相当する
正負の符号が回転角∠θnに与えられて(S474)、
該サブ・ルーチンを終える。
ロックS472の分岐Noに進む。この場合、オペレー
タはy軸方向の変位による入力を期待していると見做さ
れる。そして、Dyに比例する角度及びDyに相当する正
負の符号が回転角∠θnに与えられて(S476)、該
サブ・ルーチンを終える。
よってダイヤル回転量を指示するよりも、マウスの直線
的な操作(すなわちマウス・ポインタの移動距離)によ
ってダイヤル回転量を指示する方が、直感的で入力し易
いこともある。例えば、軸周りの回転でなく軸方向の移
動に係るソフトウェア・ダイヤルを操作したい場合に
は、後者の方が便利であろう。上述の例外的な処理ルー
チン(S470〜S476)は、このようなニーズに応
えるためのものである。
判断:ここでは、連続する3個のサンプリング点Pn,
Pn+1,及びPn+2が略一直線上にあるか、及び、弧Pn
→Pn+1の向きが時計回り(CW)か反時計回り(CC
W)かを判断するための処理ルーチンについて説明す
る。該処理ルーチンは上述のステップS420及びS4
40において用いられる。
Pn+2が時計回りにサンプリングされた場合を例にとっ
ている。同図において、ベクトルPnPn+1=ベクトルa
=(x1,y1)とおき、ベクトルPnPn+2=(x2,
y2)とおく。さらに、点Pnを中心に点Pn+1を時計回
りに90゜だけ回転させた点をPn+1'とおく。この場
合、ベクトルPnPn+1'=ベクトルa'=(y1,−x1)
となる。
と、ベクトルa'とベクトルbとの内積は下式(1)の
通りとなる。
Pn+1,Pn+2…は50msec毎にサンプリングされ
る。通常のオペレータであれば、100msecという
極めて短い期間に∠Pn+1PnPn+2が180゜を越える
入力動作を行うことはまず不可能である。したがって、
上式(1)に示した内積a'・bが負の値になる(すな
わち(90゜−∠δ)>90゜となる)のは、∠δが負の
とき、すなわち、連続する3点Pn,Pn+1,及びPn+2
が反時計回りのときだけである。また、内積a'・bが
ゼロになるのは、∠δが0゜のとき、すなわち、連続す
る3点Pn,Pn+1,及びPn+2が一直線上にあるときだ
けである。
Pn+1,Pn+2による軌跡が時計回りか否か、及び一直線
上か否かは、内積a'・bの正負関係を用いて以下のよ
うに判断される。 内積a'・b > 0 → 時計回り(CW) 内積a'・b = 0 → 一直線上 内積a'・b < 0 → 反時計回り(CCW)
S430における回転角∠θnの計算方法を、図8〜図
11を参照しながら具体的に説明する。
点Pn,Pn+1,及びPn+2の挟角∠PnPn+1Pn+2(=∠
φ)を求める。図9に示すように、三角形PnPn+1P
n+2の各辺の長さをそれぞれl,m,kとおく。∠φと
l,m,kとの間には、余弦定理により下式(2)が成
立する。各辺の長さl,m,kはそれぞれ単純なベクト
ル距離計算により求まることから、∠φも算出すること
が可能である。
゜より小さいか否かが判定される。∠φが90゜未満の
場合とは、図10(a)に示すように、マウス・ポイン
タを往復運動させたに等しい場合である。100mse
c(3点をサンプリングするための所要時間)という短
時間の間にマウス・ポインタを往復させることは、通常
の入力操作ではなく、オペレータの手ぶれ(すなわちマ
ウスの誤操作)に因ることが想定される。このような誤
操作に画面表示を追従させていたのでは、画面上のグラ
フィック・イメージはオペレータの意に反した回転/移
動を行い、あるいは見辛いものになってしまう([作
用]の項参照)。そこで、判断ブロックS432の結果
が肯定的な場合は、正規のフローから抜けて、回転角∠
θnにゼロを与えて(S438)、該サブ・ルーチンを
終了する。
的な場合、すなわち∠φが90゜以上の場合(図10
(b)参照)には、サンプリングされた座標値が正常で
あると見做され、後続の正規フローに進む。
n+2の円周角∠ψが算出される。円周角∠ψは、『優弧
と劣弧各々の円周角の総和(=∠φ+∠ψ)は180゜
に等しい』という、幾何学上の周知の公式に基づき求め
られる。
n+1Pn+2に対する中心角が求められる。該中心角は、
『円周角は、その弧に対する中心角の2分の1に等し
い』という、いわゆる円周角の定理に基づいて計算され
る。
n+1Pn+2に対する中心角∠2ψを用いて、2点Pn及び
Pn+1が表す回転角∠θn(=∠PnOnPn+1)を求め
る。図11及び下式(3)に示すように、中心角∠2ψ
は∠θn(=∠PnOnPn+1)と∠θn'(=∠Pn+1OnP
n+2)とに分解される。
下式(4)のような近似式が成立する。該近似式(4)
を用いて上式(3)より∠θn'を消去すれば、中心角∠
θnは求まる。
求めることによっても計算することができよう。但し、
3点Pn,Pn+1,及びPn+2の各座標値から円の中心座
標を求めるには、比較的複雑な計算過程を要する。図8
に示すフローチャートによる回転角∠θnの計算方法に
よれば、円Onの中心座標を求めずに済む、という点に
も充分留意されたい。
平均化ステップ(図5中のステップS500)につい
て、さらに詳細に説明する。
を描いたつもりであっても、実際にサンプリングされた
座標値は不連続でジグザク状であることもある。このよ
うなジグザグ入力に追従させて図形モデルやソフトウェ
ア・ダイヤルのグラフィック・イメージを更新させる
と、これらイメージはぎこちなく回転/移動してしま
う。加重平均化処理は、このようなジグザグな入力を平
滑化するためのものである。
れ以前に求められた1以上の回転角∠θn-1(=∠Pn-1
On-1Pn),∠θn-2(=∠Pn-2On-2Pn-1)…の各々
に対して重み因子(weighting factor)を掛けたものの
総和を、重み因子の総和で割算して求められる。すなわ
ち、回転角∠θnの加重平均値∠(θn)aveは、下式
(5)に従って算出される。同式では、当の回転角∠θ
nに対して最大の重み因子8が与えられ、また、それ以
前の各回転角∠θn-1,∠θn-2,∠θn-3に対してはそ
れぞれ重み因子4,2,1が与えられる。
り、マウス・ポインタの軌跡のコンテキストを反映した
回転角∠(θn)aveを制御データとして用いることがで
きる。この結果、ジグザグな入力を平滑化することがで
きる訳である。
C−2,C−3で説明した処理ルーチンによる演算結果
を具体的に説明する。
は、X−Windowから50msec毎に逐次入力さ
れる座標値を一時保管しておくための制御テーブルが用
意されている。下表1には制御テーブルの構造を模式的
に示している。
ードを割り当てている。[表1]では、4個の座標点の
データを格納するために、4個のレコードを備えてい
る。各レコードは、座標点のxy座標値xn,yn、及び
回転角∠θnを書き込むための3個のフィールドからな
る。初期状態では、同表1に示すように、各フィールド
にはゼロが書き込まれている。
ず、オペレータがマウス・ポインタを曲線運動させたと
きの処理について説明する。
9,456)を受け取ると、先頭のレコードに書き込ま
れる。この時点では3点の座標値が存在せず、回転角∠
θnは計算できないので、ゼロのままである(表2参
照)。また、この時点での回転角の加重平均値∠
(θn)aveも当然ゼロである。
wから次の座標値(797,456)を受け取ると、レ
コードの内容は1段シフトして、先頭のレコードに座標
値(797,456)が書き込まれる。この時点でも回
転角∠θnは計算できないので、ゼロのままである(表
3参照)。また、この時点での回転角の加重平均値∠
(θn)aveは依然ゼロである。
wから次の座標値(790,450)を受け取ると、レ
コードの内容は1段シフトして、先頭のレコードに座標
値(790,450)が書き込まれる。この時点で3点
の座標値が出揃い、図5中のステップS400では回転
角の計算が実行される。この場合、連続する3個の点P
n(790,450),Pn-1(797,456),及び
Pn-2(799,456)は互いに相違する点であり
(ステップS410)、且つ、一直線上には存在しない
ので(ステップS420)、ステップS430における
幾何学的演算により、回転角∠θnが求められる。この
場合の演算結果は∠θn=8゜なので、8が先頭レコー
ドの最下段フィールドに書き込まれる(表4参照)。ま
た、回転角の加重平均値は上式(5)に従い計算され
る。計算結果∠(θn)ave=(8×8+4×0+2×0
+1×0)/(8+4+2+1)≒4゜は、ダイヤルの
回転量としてSoft5080に報告される。そして、
Soft5080は、X−Windowsに対して、こ
のダイヤル回転量に応じたグラフィック・イメージの更
新を要求する(ステップS600)。イメージ更新の内
容は主に、(1)選択中のダイヤルのポジション・イン
ジケータ表示位置を回転角∠(θn)aveだけ回転させる
ことと、(2)現在表示している図形モデルを、指定し
た軸回りに回転量(θn)aveだけ回転させる、又は、回
転量(θn)aveに相当する分だけ指定した軸方向に移動
させる若しくは拡大/縮小させること、の2点である
(以下同様)。
wから次の座標値(780,438)を受け取ると、レ
コードの内容は1段シフトして、先頭のレコードに座標
値(780,438)が書き込まれる。そして、ステッ
プS400では回転角の計算が実行され、演算結果∠θ
n=14゜が先頭レコードの最下段フィールドに書き込
まれる(表5参照)。また、回転角の加重平均値が上式
(5)に従い計算される。計算結果∠(θn)ave∠(θ
n)ave=(8×14+4×8+2×0+1×0)/(8
+4+2+1)≒9゜は、ダイヤルの回転量としてSo
ft5080に報告される。そして、Soft5080
は、X−Windowsに対して、このダイヤル回転量
に応じたグラフィック・イメージの更新を要求する(ス
テップS600)。
wから次の座標値(776,425)を受け取ると、レ
コードの内容は1段シフトして、先頭のレコードに座標
値(776,425)が書き込まれる。そして、ステッ
プS400では回転角の計算が実行され、演算結果∠θ
n=22゜が先頭レコードの最下段フィールドに書き込
まれる(表6参照)。また、回転角の加重平均値が上式
(5)に従い計算される。計算結果∠(θn)ave∠(θ
n)ave=(8×22+4×14+2×8+1×0)/
(8+4+2+1)≒15゜は、ダイヤルの回転量とし
てSoft5080に報告される。そして、Soft5
080は、X−Windowsに対して、このダイヤル
回転量に応じたグラフィック・イメージの更新を要求す
る(ステップS600)。
で、オペレータがマウス・ポインタを直線運動させたと
きの処理について説明する。
2,450)を受け取ると、先頭のレコードに書き込ま
れる。この時点では3点の座標値が存在せず、回転角∠
θnは計算できないので、ゼロのままである(表7参
照)。また、この時点での回転角の加重平均値∠
(θn)aveも当然ゼロである。
wから次の座標値(532,450)を受け取ると、レ
コードの内容は1段シフトして、先頭のレコードに座標
値(532,450)が書き込まれる。この時点でも回
転角∠θnは計算できないので、ゼロのままである(表
8参照)。また、この時点での回転角の加重平均値∠
(θn)aveは依然ゼロである。
wから次の座標値(533,450)を受け取ると、レ
コードの内容は1段シフトして、先頭のレコードに座標
値(533,450)が書き込まれる。この時点で3点
の座標値が出揃うが、これらは一直線上に存在するので
(ステップS420)、図5中の例外的ステップS47
0に進み、xy各軸方向の変位量が算出される。そし
て、変位量の多いx軸方向の変位量1が回転角∠θnと
して採用されて(ステップS474)、先頭レコードの
最下段フィールドに1が書き込まれる(表9参照)。ま
た、回転角の加重平均値は上式(5)に従い計算され
る。計算結果∠(θn)ave=(8×1+4×0+2×0
+1×0)/(8+4+2+1)≒0゜は、ダイヤルの
回転量としてSoft5080に報告される。
wから次の座標値(543,450)を受け取ると、レ
コードの内容は1段シフトして、先頭のレコードに座標
値(543,450)が書き込まれる。但し、これら連
続する3点は一直線上に存在するので(ステップS42
0)、図5中の例外的ステップS470に進み、xy各
軸方向の変位量が算出される。そして、変位量の多いx
軸方向の変位量10が回転角∠θnとして採用されて
(ステップS474)、先頭レコードの最下段フィール
ドに10が書き込まれる(表10参照)。また、回転角
の加重平均値は上式(5)に従い計算される。計算結果
∠(θn)ave=(8×10+4×1+2×0+1×0)
/(8+4+2+1)≒5゜は、ダイヤルの回転量とし
てSoft5080に報告される。そして、Soft5
080は、X−Windowsに対して、このダイヤル
回転量に応じたグラフィック・イメージの更新を要求す
る(ステップS600)。
wから次の座標値(560,450)を受け取ると、レ
コードの内容は1段シフトして、先頭のレコードに座標
値(560,450)が書き込まれる。これら連続する
3点は一直線上に存在するので(ステップS420)、
図5中の例外的ステップS470に進み、xy各軸方向
の変位量が算出される。そして、変位量の多いx軸方向
の変位量17が回転角∠θnとして採用されて(ステッ
プS474)、先頭レコードの最下段フィールドに17
が書き込まれる(表11参照)。また、回転角の加重平
均値は上式(5)に従い計算される。計算結果∠
(θn)ave=(8×17+4×10+2×1+1×0)
/(8+4+2+1)≒11゜は、ダイヤルの回転量と
してSoft5080に報告される。そして、Soft
5080は、X−Windowsに対して、このダイヤ
ル回転量に応じたグラフィック・イメージの更新を要求
する(ステップS600)。
wから次の座標値(560,450)を受け取ると、レ
コードの内容は1段シフトして、先頭のレコードに座標
値(588,450)が書き込まれる。これら連続する
3点は一直線上に存在するので(ステップS420)、
図5中の例外的ステップS470に進み、xy各軸方向
の変位量が算出される。そして、変位量の多いx軸方向
の変位量28が回転角∠θnとして採用されて(ステッ
プS474)、先頭レコードの最下段フィールドに28
が書き込まれる(表12参照)。また、回転角の加重平
均値は上式(5)に従い計算される。計算結果∠
(θn)ave=(8×28+4×17+2×10+1×
1)/(8+4+2+1)≒19゜は、ダイヤルの回転
量としてSoft5080に報告される。そして、So
ft5080は、X−Windowsに対して、このダ
イヤル回転量に応じたグラフィック・イメージの更新を
要求する(ステップS600)。
化される様子を説明しておく。
算出された生の回転角∠θnを、その下段には上式
(5)により加重平均化された回転角∠(θn)aveを、
それぞれ列記している。各加重平均値∠(θn)aveが正
しい計算値であることは、各回転角∠θnを式(5)に
代入することにより明らかであろう。
及びその加重平均値∠(θn)aveをプロットしたグラフ
を示している。同グラフを参照すれば、加重平均化処理
により、以前の入力座標値のコンテキストに基づいてダ
イヤル回転量が平滑化されたことが明瞭であろう。
解してきた。しかしながら、本発明の要旨を逸脱しない
範囲で当業者が該実施例の修正や代用を成し得ることは
自明である。例えば、座標指示装置が連続的に指示する
入力点Pの数が全部でm個の場合(P1〜Pm)、実施例
では、3番目の入力点P3以降で、P1とP2の間の回転
角∠θ1、P2とP3の間の回転角∠θ2、P3とP4の間の
回転角∠θ3などを連続的に計算しているが、式3及び
式4から明らかなように、連続する3点によって決まる
2つの隣り合う回転角(図11の∠θn及び∠θn')
は、計算上は同等に扱うことができるから、連続する3
点Pn、Pn+1及びPn+2から、回転角∠θn(=∠PnOn
Pn+1)の代わりに、その隣の回転角∠θn'(=∠Pn+1
OnPn+2)を求めてもよいことは当業者であれば容易に
考えつくであろう。また実施例では、座標指示装置とし
てマウスを採用して説明しているが、他の同様の装置、
例えばトラック・ボール、トラック・ポイント(Tra
ckPoint:米IBM社の商標)、ジョイスティッ
クなどであってもよい。要するに、例示という形態で本
発明を開示してきたのであり、限定的に解釈されるべき
ではない。本発明の要旨を判断するためには、冒頭に記
載した特許請求の範囲の欄を参酌すべきである。
特別なハードウェアを増設することなく、表示された図
形の位置や姿勢に関する制御データ(変位量)を入力す
ることができる、優れた座標入力制御装置及び方法を提
供することができる。
位置や姿勢に関する制御データ(変位量)をマウス等の
一般的な座標指示装置によって入力可能な、優れた座標
入力制御装置及び方法を提供することができる。本発明
に係る座標入力制御装置及び方法によれば、マウスなど
の一般的な座標指示装置によって所望のダイヤル回転量
に相当する円弧を、マウスなどの一般的な座標指示装置
によって描くだけでよい訳である。
・システム100の概略的な構成を示した図である。
・システム100上でのソフトウェア環境を模式的に示
した図である。
間でデータを交換し合う様子を模式的に示した図であ
る。
間でコマンドを授受する様子を模式的に示した図であ
る。
バル・ルーチンをフローチャート化して示した図であ
る。
ーチンをフローチャート化して示した図である。
W)か反時計回り(CCW)かを判断するための過程を
図解するためのものである。
nの計算方法を具体的に説明するための図である。
nの計算方法を具体的に説明するための図である。
∠θnの計算方法を具体的に説明するための図である。
∠θnの計算方法を具体的に説明するための図である。
ップS500)に基づいて逐次計算された回転角∠θn
及びその加重平均値∠(θn)aveをプロットしたグラフ
である。
デバイス"6094 DialsModel 010"の
概観を示した図である。
販するソフトウェア製品"IBMSoft5080 f
or AIX"にパッケージ化された『ソフトウェア・
ダイヤルズ』のウィンドウ画面を概略的に示した図であ
る。
・ダイヤルズ』のウィンドウ画面を概略的に示した図で
ある。
SD、15…KMC、16…グラフィック・アダプタ、
17…VRAM、18…通信アダプタ、19…ディスプ
レイ、21…キーボード、22…マウス、100…コン
ピュータ・システム。
Claims (14)
- 【請求項1】座標指示装置から獲得した座標値に基づい
て画面上に表示された図形モデルの位置や姿勢に関する
制御データを求めるための座標入力制御装置において、
(a)座標指示装置から逐次入力される各点Pi(xi,
yi)の座標値を含む、処理中のデータを記憶すること
ができるメモリと(但し、添字iは正の整数であり、入
力回数を示すものとする)、(b)前記メモリに記憶さ
れた連続する3個の点Pn(xn,yn),P
n+1(xn+ 1,yn+1),及びPn+2(xn+2,yn+2)と外
接する円Onにおける円弧PnPn+1Pn+2に対する中心角
∠PnOnPn+2を求める第1の手段と(但し、nは正の
整数)、(c)中心角∠PnOnPn+2に基づいて2点Pn
(xn,yn),Pn+1(xn+1,yn+1)が表す回転角∠
θn(=∠PnOnPn+1)を求める第2の手段と、(d)
回転角∠θnを制御データとして採用する第3の手段
と、を具備することを特徴とする座標入力制御装置 - 【請求項2】座標指示装置から獲得した座標値に基づい
て画面上に表示された図形モデルの位置や姿勢に関する
制御データを求めるための座標入力制御装置において、
(a)座標指示装置から逐次入力される各点Pi(xi,
yi)の座標値を含む、処理中のデータを記憶すること
ができるメモリと(但し、添字iは正の整数であり、入
力回数を示すものとする)、(b)前記メモリに記憶さ
れた連続する3個の点Pn(xn,yn),P
n+1(xn+ 1,yn+1),及びPn+2(xn+2,yn+2)と外
接する円Onにおける円弧PnPn+1Pn+2に対する中心角
∠PnOnPn+2を求める第1の手段と(但し、nは正の
整数)、(c)中心角∠PnOnPn+2に基づいて2点Pn
(xn,yn),Pn+1(xn+1,yn+1)が表す回転角∠
θn(=∠PnOnPn+1)を求める第2の手段と、(d)
回転角∠θnを、それ以前に求められた1以上の回転角
∠θn-1(=∠Pn- 1On-1Pn),∠θn-2(=∠Pn-2O
n-2Pn-1)…との間で加重平均する第3の手段と、
(e)加重平均化された回転角∠(θn)aveを制御デー
タとして採用する第4の手段と、を具備することを特徴
とする座標入力制御装置 - 【請求項3】連続する3個の点Pn(xn,yn),Pn+1
(xn+1,yn+1),及びPn+2(xn +2,yn+2)の座標
値に差がない場合には、回転角∠θn(=∠PnO
nPn+1)を求める処理を行わず、且つ制御データを0に
する、ことを特徴とする請求項1又は請求項2に記載の
座標入力制御装置 - 【請求項4】前記3個の点Pn(xn,yn),Pn+1(x
n+1,yn+1),及びPn+2(xn+2,yn+2)の挟角∠φ
(=∠PnPn+1Pn+2)を求める手段を更に有し、該挟
角∠φが鋭角の場合には、回転角∠θn(=∠PnOnP
n+1)を求める処理を行わず、且つ制御データを0にす
る、ことを特徴とする請求項1又は請求項2に記載の座
標入力制御装置 - 【請求項5】前記第2の手段は、連続する3個の点Pn
(xn,yn),Pn+1(xn+1,yn+1),及びPn+2(x
n+2,yn+2)が一直線上にある場合には、2点PnPn+1
間の変位量に比例した値を回転角∠θnとして採用す
る、ことを特徴とする請求項1又は請求項2に記載の座
標入力制御装置 - 【請求項6】制御データとしての回転量を、座標指示装
置から獲得した座標値を元にして求めるための座標入力
制御装置において、(a)座標指示装置から逐次入力さ
れる各点Piの座標値を含む、処理中のデータを記憶す
ることができるメモリと(但し、添字iは正の整数であ
り、入力回数を示すものとする)、(b)前記メモリに
記憶された連続する3個の点Pn,Pn+1,及びPn+2に
外接する円Onにおける円弧PnPn+1Pn+2に対する中心
角∠PnOnPn+2を求める第1の手段と、(c)円Onお
ける円弧PnPn+1に対する中心角∠θnを求める第2の
手段と、(d)回転角∠θnを制御データとして採用す
る第3の手段と、を具備することを特徴とする座標入力
制御装置 - 【請求項7】座標指示装置から獲得した座標値に基づい
て画面上に表示された図形モデルの位置や姿勢に関する
制御データを求めるための座標入力制御方法において、
(a)座標指示装置から獲得した各点Pi(xi,yi)
の座標値を逐次記憶する第1の段階と(但し、添字iは
正の整数であり、入力回数を示すものとする)、(b)
連続する3個の点Pn(xn,yn),Pn+1(xn+1,y
n+1),及びPn+2(xn+2,yn+2)と外接する円Onに
おける円弧PnPn+1Pn+2に対する中心角∠PnOnPn+2
を求める第2の段階と(但し、nは正の整数)、(c)
中心角∠PnOnPn+2に基づいて2点Pn(xn,yn),
Pn+1(xn+1,yn+1)が表す回転角∠θn(=∠PnOn
Pn+1)を求める第3の段階と、(d)回転角∠θnを制
御データとして採用する第4の段階と、を具備すること
を特徴とする座標入力制御方法 - 【請求項8】座標指示装置から獲得した座標値に基づい
て画面上に表示された図形モデルの位置や姿勢に関する
制御データを求めるための座標入力制御方法において、
(a)座標指示装置から獲得した各点Pi(xi,yi)
の座標値を逐次記憶する第1の段階と(但し、添字iは
正の整数であり、入力回数を示すものとする)、(b)
連続する3個の点Pn(xn,yn),Pn+1(xn+1,y
n+1),及びPn+2(xn+2,yn+2)と外接する円Onに
おける円弧PnPn+1Pn+2に対する中心角∠PnOnPn+2
を求める第2の段階と(但し、nは正の整数)、(c)
中心角∠PnOnPn+2に基づいて2点Pn(xn,yn),
Pn+1(xn+1,yn+1)が表す回転角∠θn(=∠PnOn
Pn+1)を求める第3の段階と、(d)回転角∠θnを、
それ以前に求められた1以上の回転角∠θn-1(=∠P
n- 1On-1Pn-1),∠θn-2(=∠Pn-2On-2Pn-1)…
との間で加重平均する第4の段階と、(e)加重平均化
された回転角∠(θn)aveを制御データとして採用する
第5の段階と、を具備することを特徴とする座標入力制
御方法 - 【請求項9】連続する3個の点Pn(xn,yn),Pn+1
(xn+1,yn+1),及びPn+2(xn +2,yn+2)の座標
値に差がない場合には、回転角∠θn(=∠PnO
nPn+1)を求める処理を行わず、且つ制御データを0に
する、ことを特徴とする請求項7又は請求項8に記載の
座標入力制御方法 - 【請求項10】前記3個の点Pn(xn,yn),P
n+1(xn+1,yn+1),及びPn+2(xn+2,yn+2)の挟
角∠φ(=∠PnPn+1Pn+2)を求める段階を更に有
し、該挟角∠φが鋭角の場合には、回転角∠θn(=∠
PnOnPn+1)を求める処理を行わず、且つ制御データ
を0にする、ことを特徴とする請求項7又は請求項8に
記載の座標入力制御方法 - 【請求項11】連続する3個の点Pn(xn,yn),P
n+1(xn+1,yn+1),及びPn+2(xn+2,yn+2)が一
直線上にある場合には、前記第3の段階では2点PnP
n+1間の変位量に比例した値を回転角∠θnとして採用す
る、ことを特徴とする請求項7又は請求項8に記載の座
標入力制御方法 - 【請求項12】制御データとしての回転量を、座標指示
装置から獲得した座標値を元にして求めるための座標入
力制御方法において、(a)座標指示装置から獲得した
各点Piの座標値を逐次記憶する第1の段階と(但し、
添字iは正の整数であり、入力回数を示すものとす
る)、(b)連続する3個の点Pn,Pn+1,及びPn+2
に外接する円Onにおける円弧PnPn+1Pn+2に対する中
心角∠PnOnPn+2を求める第2の段階と、(c)円On
おける円弧PnPn+1に対する中心角∠θnを求める第3
の段階と、(d)回転角∠θnを制御データとして採用
する第4の段階と、を具備することを特徴とする座標入
力制御方法 - 【請求項13】座標指示装置から獲得した座標値に基づ
いて画面上に表示された図形モデルの位置や姿勢に関す
る制御データを求めるための座標入力制御装置におい
て、(a)座標指示装置から逐次入力される各点P
i(xi,yi)の座標値を含む、処理中のデータを記憶
することができるメモリと(但し、添字iは正の整数で
あり、入力回数を示すものとする)、(b)前記メモリ
に記憶された連続する3個の点Pn-1(xn-1,
yn-1),Pn(xn,yn),及びPn+1(xn+1,
yn+1)と外接する円Onにおける円弧Pn-1PnPn+1に
対する中心角∠Pn-1OnPn+1を求める第1の手段と
(但し、nは正の整数)、(c)中心角∠Pn-1OnP
n+1に基づいて2点Pn(xn,yn),Pn+1(xn+1,y
n+1)が表す回転角∠θn(=∠PnOnPn+1)を求める
第2の手段と、(d)回転角∠θnを制御データとして
採用する第3の手段と、を具備することを特徴とする座
標入力制御装置 - 【請求項14】座標指示装置から獲得した座標値に基づ
いて画面上に表示された図形モデルの位置や姿勢に関す
る制御データを求めるための座標入力制御方法におい
て、(a)座標指示装置から獲得した各点Pi(xi,y
i)の座標値を逐次記憶する第1の段階と(但し、添字
iは正の整数であり、入力回数を示すものとする)、
(b)連続する3個の点Pn-1(xn-1,yn-1),P
n(xn,yn),及びPn+1(xn+1,yn+1)と外接する
円Onにおける円弧Pn-1PnPn+1に対する中心角∠P
n-1OnPn+1を求める第2の段階と(但し、nは正の整
数)、(c)中心角∠Pn-1OnPn+1に基づいて2点Pn
(xn,yn),Pn+1(xn+1,yn+1)が表す回転角∠
θn(=∠PnOnPn+1)を求める第3の段階と、(d)
回転角∠θnを制御データとして採用する第4の段階
と、を具備することを特徴とする座標入力制御方法
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00689196A JP3282957B2 (ja) | 1996-01-18 | 1996-01-18 | 座標入力制御装置及び方法 |
US08/734,588 US5956045A (en) | 1996-01-18 | 1996-10-22 | Coordinate data input system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00689196A JP3282957B2 (ja) | 1996-01-18 | 1996-01-18 | 座標入力制御装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09198219A JPH09198219A (ja) | 1997-07-31 |
JP3282957B2 true JP3282957B2 (ja) | 2002-05-20 |
Family
ID=11650859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00689196A Expired - Lifetime JP3282957B2 (ja) | 1996-01-18 | 1996-01-18 | 座標入力制御装置及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5956045A (ja) |
JP (1) | JP3282957B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10320112A (ja) * | 1997-05-14 | 1998-12-04 | Wacom Co Ltd | 角度情報入力装置 |
US7046229B1 (en) * | 1999-04-20 | 2006-05-16 | Microsoft Corporation | Computer input device providing absolute and relative positional information |
US6597382B1 (en) * | 1999-06-10 | 2003-07-22 | Dassault Systemes | Knowledge-based polymorph undockable toolbar |
FR2850775B1 (fr) * | 2003-01-30 | 2005-07-22 | Ge Med Sys Global Tech Co Llc | Dispositif d'imagerie medicale a reorientation semi-automatique d'objet radiologique |
JP3924579B2 (ja) * | 2005-03-30 | 2007-06-06 | 株式会社コナミデジタルエンタテインメント | ゲームプログラム、ゲーム装置及びゲーム制御方法 |
JP4897411B2 (ja) * | 2006-09-26 | 2012-03-14 | 任天堂株式会社 | 情報処理プログラムおよび情報処理装置 |
WO2008065740A1 (fr) * | 2006-11-27 | 2008-06-05 | Visionarts, Inc. | Système d'interface de dispositifs de communication |
JP5437726B2 (ja) * | 2009-07-29 | 2014-03-12 | 任天堂株式会社 | 情報処理プログラム、情報処理装置、情報処理システム、および座標算出方法 |
CN103873455B (zh) * | 2012-12-18 | 2019-05-17 | 阿里巴巴集团控股有限公司 | 一种信息校验的方法及装置 |
JP6897215B2 (ja) * | 2017-03-24 | 2021-06-30 | カシオ計算機株式会社 | 画像処理装置、画像処理方法及びプログラム |
US10967266B2 (en) * | 2018-02-21 | 2021-04-06 | Roblox Corporation | Cinematic game camera in a gaming platform |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60186967A (ja) * | 1984-03-05 | 1985-09-24 | Fanuc Ltd | 画像表示方法 |
JPS63201816A (ja) * | 1987-02-18 | 1988-08-19 | Hitachi Ltd | カ−ソル表示装置 |
US5019809A (en) * | 1988-07-29 | 1991-05-28 | University Of Toronto Innovations Foundation | Two-dimensional emulation of three-dimensional trackball |
CA2077173C (en) * | 1991-11-22 | 2003-04-22 | Michael Chen | Method and apparatus for direct manipulation of 3-d objects on computer displays |
JPH07111743B2 (ja) * | 1992-03-04 | 1995-11-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 三次元空間中の物体を回転させるグラフィック表示方法及び装置 |
JPH07248870A (ja) * | 1994-03-11 | 1995-09-26 | Wacom Co Ltd | データ整合方法、座標入力方法及び座標入力システム |
-
1996
- 1996-01-18 JP JP00689196A patent/JP3282957B2/ja not_active Expired - Lifetime
- 1996-10-22 US US08/734,588 patent/US5956045A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5956045A (en) | 1999-09-21 |
JPH09198219A (ja) | 1997-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6049326A (en) | System and method for dual browser modes | |
US7451408B2 (en) | Selecting moving objects on a system | |
US5345543A (en) | Method for manipulating objects on a computer display | |
US6259432B1 (en) | Information processing apparatus for improved intuitive scrolling utilizing an enhanced cursor | |
JP3975472B2 (ja) | デジタルマップの拡大縮小表示方法、デジタルマップの拡大縮小表示装置、及びデジタルマップの拡大縮小表示プログラムを格納した格納媒体 | |
JPH0798769A (ja) | 情報処理装置及びその画面編集方法 | |
US5745112A (en) | Device and method for a window responding to a drag operation | |
US7173603B2 (en) | Input system, program, and recording medium | |
US20020033849A1 (en) | Graphical user interface | |
US20030174149A1 (en) | Apparatus and method for data-processing | |
JP3282957B2 (ja) | 座標入力制御装置及び方法 | |
JP3982288B2 (ja) | 三次元ウィンドウ表示装置、三次元ウィンドウ表示方法及び三次元ウィンドウ表示プログラム | |
WO1995031765A1 (en) | Apparatus and method for providing different input device orientations of a computer system | |
JP2002123369A (ja) | データ処理装置、入出力装置、タッチパネルの制御方法、記憶媒体及びプログラム伝送装置 | |
US6002399A (en) | Apparatus and method for creating diagrams | |
JP4106058B2 (ja) | ウィンドウ内におけるフレーム再配置を行うための情報処理装置、フレームの再配置方法、およびプログラム | |
KR20050051669A (ko) | 그래픽 사용자 인터페이스 내비게이션 방법 및 장치 | |
JPH06282368A (ja) | 情報処理装置の位置情報入力システム | |
JP2511804B2 (ja) | 多重指示点カ―ソルをもつデ―タ処理装置及び多重指示点カ―ソルを利用するデ―タ処理方法 | |
JP2002024860A (ja) | 画像編集システム及び画像編集方法、並びに記憶媒体 | |
JP3015264B2 (ja) | 情報処理装置及び方法 | |
JP3808209B2 (ja) | カーソル制御方法、記憶媒体及び情報処理装置 | |
JP3239356B2 (ja) | 図形編集装置 | |
JPH08249500A (ja) | 3次元図形の表示方法 | |
JP2000048220A (ja) | 文書作成装置、方法および記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080301 Year of fee payment: 6 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080301 Year of fee payment: 6 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080301 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090301 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100301 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110301 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130301 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130301 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140301 Year of fee payment: 12 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |