JP2004110734A - Device, method and program for processing information - Google Patents
Device, method and program for processing information Download PDFInfo
- Publication number
- JP2004110734A JP2004110734A JP2002275982A JP2002275982A JP2004110734A JP 2004110734 A JP2004110734 A JP 2004110734A JP 2002275982 A JP2002275982 A JP 2002275982A JP 2002275982 A JP2002275982 A JP 2002275982A JP 2004110734 A JP2004110734 A JP 2004110734A
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- group
- display
- group object
- objects
- 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
Links
- 238000000034 method Methods 0.000 title description 2
- 230000010365 information processing Effects 0.000 claims abstract description 114
- 238000001514 detection method Methods 0.000 claims description 24
- 238000003672 processing method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 7
- 230000005484 gravity Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【0002】
【従来の技術】
現在、コンピュータは様々な用途に使用されているが、その多くは表示装置や操作装置をユーザインタフェース(UI)とする情報処理を実行する。特に最近では、感覚的にも理解しやすいグラフィカルユーザインタフェース(GUI)が主流である。表示装置としてはビットマップディスプレイ等、操作装置としてはマウスやキーボードやタッチパネルやスタイラスペン等が使用されている。
【0003】
GUIには、通常、図形や画像等のように視覚的に表現されたグラフィカルオブジェクト(これを「オブジェクト」と略称する)が登場する。このようなGUIでは、通常、ディスプレイに表示されているオブジェクトをマウス等で操作する。例えば、オブジェクトをマウスでクリックして選択状態にしたり、オブジェクトをマウスでダブルクリックして編集状態にしたり、オブジェクトをマウスでドラッグして表示特性を変化させたりするのである。表示特性の変化としては、表示位置の変化(移動)や表示サイズの変化(リサイズ)等が挙げられる。
【0004】
このようなGUIではさらに、ディスプレイに表示されている複数個のオブジェクトをグループ化することにより、それらの複数個のオブジェクトをまとめて操作できるようになっている場合が多い。例えば、グループ内のいずれかのオブジェクトをドラッグして、そのグループ内のオブジェクトの表示特性をまとめて変化させるのである。すなわち、そのグループ内のオブジェクトをまとめて移動したりリサイズしたりするのである。なお、グループ化は、マウスのドラッグやSHIFTクリックにより実行できるようになっている場合が多い。
【0005】
グループ化で問題になるのは、グループを構成するオブジェクトを変化させる場合の操作性である。グループを構成するオブジェクトを変化させるためには、古いグループを解消して新しいグループを構築し直せばよいのだが、毎回それを実行するのは面倒だからである。
【0006】
このような場合の操作性を向上させる発明としては、表示装置にグループを示す指示を表示しておいて、これを利用してグループを分割させたり結合させたりできるようにすることにより、グループを分割させたり結合させたりする場合の操作性を向上させる発明が、特開平10−63462号公報に記載されている。
【0007】
【特許文献1】
特開平10−63462号公報。
【0008】
【発明が解決しようとする課題】
しかしながら、特開平10−63462号公報に記載されている発明は、グループを分割させたり結合させたりする場合の操作性は向上させるが、グループにオブジェクトを加える場合の操作性や、グループからオブジェクトを除く場合の操作性は向上させていない。
【0009】
したがって、本発明は、グループにオブジェクトを加える場合の操作性や、グループからオブジェクトを除く場合の操作性を向上させることを課題とする。
【0010】
【課題を解決するための手段】
請求項1に記載の発明(情報処理装置)は、表示装置と操作装置をユーザインタフェースとする情報処理を実行する情報処理装置であって、前記表示装置にオブジェクトを表示させるオブジェクト表示手段と、前記表示装置にグループオブジェクトを表示させるグループオブジェクト表示手段とを備え、前記操作装置で前記オブジェクトを操作して、そのオブジェクトを前記グループオブジェクト内に加えることと、前記操作装置で前記オブジェクトを操作して、そのオブジェクトを前記グループオブジェクト内から除くことと、前記操作装置で前記グループオブジェクトを操作して、そのグループオブジェクト内に位置する前記オブジェクトをまとめて操作することを可能にする情報処理を実行する。
【0011】
請求項2に記載の発明(情報処理装置)は、請求項1に記載の発明(情報処理装置)に関して、前記グループオブジェクト内に位置する前記オブジェクトを検出するオブジェクト検出手段を備え、前記操作装置で前記グループオブジェクトを操作して、そのグループオブジェクト内に位置するとして前記オブジェクト検出手段により検出された前記オブジェクトをまとめて操作することを可能にする情報処理を実行する。
【0012】
請求項3に記載の発明(情報処理装置)は、請求項2に記載の発明(情報処理装置)に関して、前記オブジェクト検出手段は、前記オブジェクト又は前記グループオブジェクトに係るイベントの発生に応じて、前記グループオブジェクト内に位置する前記オブジェクトを検出する。
【0013】
請求項4に記載の発明(情報処理装置)は、請求項2に記載の発明(情報処理装置)に関して、前記オブジェクト検出手段は、所定の時刻に又は所定の時間間隔で、前記グループオブジェクト内に位置する前記オブジェクトを検出する。
【0014】
請求項5に記載の発明(情報処理装置)は、請求項1に記載の発明(情報処理装置)に関して、前記操作装置で前記グループオブジェクトを操作して、そのグループオブジェクト内に位置する前記オブジェクトの表示特性をまとめて変化させることを可能にする情報処理を実行する。
【0015】
請求項6に記載の発明(情報処理装置)は、請求項5に記載の発明(情報処理装置)に関して、前記表示特性は、表示位置又は表示サイズである。
【0016】
請求項7に記載の発明(情報処理方法)は、表示装置と操作装置をユーザインタフェースとする情報処理を実行する情報処理方法であって、前記表示装置にオブジェクトを表示させるオブジェクト表示段階と、前記表示装置にグループオブジェクトを表示させるグループオブジェクト表示段階とを備え、前記操作装置で前記オブジェクトを操作して、そのオブジェクトを前記グループオブジェクト内に加えることと、前記操作装置で前記オブジェクトを操作して、そのオブジェクトを前記グループオブジェクト内から除くことと、前記操作装置で前記グループオブジェクトを操作して、そのグループオブジェクト内に位置する前記オブジェクトをまとめて操作することを可能にする情報処理を実行する。
【0017】
請求項8に記載の発明(情報処理プログラム)は、請求項7に記載の情報処理方法をコンピュータに実行させる。
【0018】
請求項1に記載の発明(情報処理装置)は、操作装置でオブジェクトを操作して、そのオブジェクトをグループオブジェクト内に加えることと、操作装置でオブジェクトを操作して、そのオブジェクトをグループオブジェクト内から除くことと、操作装置でグループオブジェクトを操作して、そのグループオブジェクト内に位置するオブジェクトをまとめて操作することを可能にする情報処理を実行することにより、グループにオブジェクトを加える場合の操作性や、グループからオブジェクトを除く場合の操作性を向上させることができる。
【0019】
請求項7に記載の発明(情報処理方法)は、操作装置でオブジェクトを操作して、そのオブジェクトをグループオブジェクト内に加えることと、操作装置でオブジェクトを操作して、そのオブジェクトをグループオブジェクト内から除くことと、操作装置でグループオブジェクトを操作して、そのグループオブジェクト内に位置するオブジェクトをまとめて操作することを可能にする情報処理を実行することにより、グループにオブジェクトを加える場合の操作性や、グループからオブジェクトを除く場合の操作性を向上させることができる。
【0020】
請求項8に記載の発明(情報処理プログラム)は、操作装置でオブジェクトを操作して、そのオブジェクトをグループオブジェクト内に加えることと、操作装置でオブジェクトを操作して、そのオブジェクトをグループオブジェクト内から除くことと、操作装置でグループオブジェクトを操作して、そのグループオブジェクト内に位置するオブジェクトをまとめて操作することを可能にする情報処理をコンピュータに実行させることにより、グループにオブジェクトを加える場合の操作性や、グループからオブジェクトを除く場合の操作性を向上させることができる。
【0021】
【発明の実施の形態】
本発明の実施の形態について説明する。
【0022】
図1は、本発明の実施の形態の例である情報処理装置11を表す。図1の情報処理装置11には、表示装置12と、操作装置13と、記憶装置14とが接続されている。情報処理装置11はここではパソコンであり、表示装置12はここではディスプレイであり、操作装置13はここではマウスやキーボードであり、記憶装置14はここではハードディスクである。表示装置12や操作装置13や記憶装置14は、情報処理装置11の内蔵機器でも周辺機器でもよい。
【0023】
図1の情報処理装置11は、表示装置12と操作装置13をUIとする情報処理を実行する。さらに言えば、記憶装置14にはGUIを提供するようなプログラムがインストールされており、このGUIには上記のような「オブジェクト」が登場する。このGUIでは、表示装置12に表示されている「オブジェクト」を操作装置13により操作することができる。
【0024】
図2は、図1の情報処理装置11のGUIについて説明するための図である。図2Aと図2Bとはそれぞれ、オブジェクト21と、グループオブジェクト22と、マウスポインタ23とが、表示装置12に表示されている様子を表す。図2Aには、4個のオブジェクト21(円形21A・三角形21B・四角形21C・六角形21D)が存在し、図2Bには、3個のオブジェクト21(円形21A・三角形21B・四角形21C)が存在する。なお、図1の情報処理装置11がウィンドウシステムを採用している場合には、オブジェクト21とグループオブジェクト22とは、同一のウィンドウ内に存在する表示物同士であるとする。
【0025】
このGUIでは、複数個のオブジェクト21をグループ化することにより、それらの複数個のオブジェクト21をまとめて操作することができる。そして、複数個のオブジェクト21をグループ化するために利用されるのが、グループオブジェクト22である。このGUIでは、同一のグループオブジェクト22内に位置するオブジェクト21同士がグループ化される。そして、操作装置13でグループオブジェクト22を操作して、そのグループオブジェクト22内に位置するオブジェクト21をまとめて操作するのである。
【0026】
図2Aでは、4個のオブジェクト21の内の3個のオブジェクト21(円形21A・三角形21B・四角形21C)が、グループオブジェクト22によりグループ化されている。図2Bでは、3個のオブジェクト21すべて(円形21A・三角形21B・四角形21C)が、グループオブジェクト22によりグループ化されている。
【0027】
なお、図2のように、グループオブジェクト22は閉曲線24を有する。この閉曲線24が、グループオブジェクト22の内部と外部とを分かつボーダラインとなる。すなわち、このGUIでは、同一の閉曲線24内に位置するオブジェクト21同士がグループ化される。
【0028】
ここで、グループを構成するオブジェクト21を変化させる場合として、グループにオブジェクト21を加える場合と、グループからオブジェクト21を除く場合について説明する。
【0029】
図2Aは、操作装置21でオブジェクト21Dを操作して、オブジェクト21Dをグループオブジェクト22内に加える様子を表す。図2A’がその事後の様子を表している。このGUIでは、上記のように、同一のグループオブジェクト22内に位置するオブジェクト21同士がグループ化される。したがって、この操作によって、グループにオブジェクト21Dが加えられたのである。
【0030】
図2Bは、操作装置21でオブジェクト21Cを操作して、オブジェクト21Cをグループオブジェクト22内から除く様子を表す。図2B’がその事後の様子を表している。このGUIでは、上記のように、同一のグループオブジェクト22内に位置するオブジェクト21同士がグループ化される。したがって、この操作によって、グループからオブジェクト21Cが除かれたのである。
【0031】
オブジェクト21をグループオブジェクト22内に加える操作や、オブジェクト21をグループオブジェクト22内から除く操作は、マウスのドラッグ等により実現可能である。従来、前者の操作はマウスのSHIFTクリック等により実現していたものであり、後者の操作に至っては古いグループを解消して新しいグループを構築し直すよりほかなかったものである。このように、図1の情報処理装置11のGUIは、グループにオブジェクトを加える場合の操作性や、グループからオブジェクトを除く場合の操作性を向上させることができる。
【0032】
図1についてふたたび説明する。図1の情報処理装置11は、機能ブロックとして、オブジェクト表示部15と、グループオブジェクト表示部16と、イベント発生検出部17と、オブジェクト検出部18とを備える。
【0033】
オブジェクト表示部15は、表示装置12にオブジェクトを表示させる。グループオブジェクト表示部16は、表示装置12にグループオブジェクトを表示させる。図1の情報処理装置11においては、ユーザは操作装置13を操作して、オブジェクトやグループオブジェクトを作成したり、消去したり、記憶装置15に保存させたり、記憶装置15から再生させたりすることができる。これらの作成操作や消去操作や保存操作や再生操作に応じて、オブジェクト表示部15とグループオブジェクト表示部16はそれぞれ、表示装置12にオブジェクトとグループオブジェクトを登場(不表示状態から表示状態にする)させたり、表示装置12からオブジェクトとグループオブジェクトを退去(表示状態から不表示状態にする)させたりする。
【0034】
イベント発生検出部17は、オブジェクトやグループオブジェクトに係るイベントの発生を検出する。ここで言う「イベント」は、オブジェクトやグループオブジェクトの移動やリサイズや作成や消去や保存や再生等である。これらの全部を検出してもいいし、これらの一部を検出してもいい。
【0035】
オブジェクト検出部18は、グループオブジェクト内に位置するオブジェクトを検出する。ここでは、イベント発生検出部17が上記イベントの発生を検出すると、これに応じてオブジェクト検出部18が上記オブジェクトを検出する。また、オブジェクト検出部18が検出対象とするのは、ここでは表示装置12に表示されている全部のオブジェクトとグループオブジェクトである。
【0036】
(ストローク)
上記のように、図1の情報処理装置11においては、ユーザは操作装置13を操作して、オブジェクトやグループオブジェクトを作成することができる。具体的に言うとここでは、ユーザがマウスをドラッグすると、これに応じて情報処理装置11がドラッグ開始時からドラッグ終了時までの座標点列(これを「ストローク」と呼称する)を取得して、これをオブジェクトやグループオブジェクトとして表示装置12に表示させる。ストロークとは、マウス位置を所定の時間間隔でサンプリングして取得した座標点の列である。なお、マウスの代わりにタッチパネルやスタイラスタペンを使用してもよく、この場合には接地開始時から接地終了時までの座標点列を取得する。
【0037】
図3は、ストロークの概念について説明するための図である。図3において、(x[i],y[i])はi番目のサンプリングで取得された座標点(x,y)を表す。図3には、0番目の座標点からn番目の座標点までが記載されている。
【0038】
以下、C言語の構造体形式の書式を使用して説明する。オブジェクトのデータ構造を表す構造体OBJECTは、図4のように定義できる。
【0039】
x[]とy[]はそれぞれストロークを構成する座標点のx座標とy座標を保持する配列であり、NMAXはその配列の最大数を規定する定数であり、nはストロークを構成する座標点の個数を保持する変数である。gxとgyはそれぞれオブジェクトの重心の座標点のx座標とy座標を保持する変数であり、それぞれx[]の平均値とy[]の平均値を保持する。pgxとpgyはそれぞれ前回のイベント発生時におけるオブジェクトの重心の座標点のx座標とy座標を保持する変数である。
【0040】
isGroupは真偽値(真:True、偽:False)を保持する変数であり、Trueはそのオブジェクトがグループオブジェクトであることを意味して、Falseはそのオブジェクトがグループオブジェクト以外のオブジェクトであることを意味する。garrey[]はそのオブジェクトがグループオブジェクトである場合において、そのグループオブジェクト内に位置するオブジェクトobj[]のインデックス番号を順次保持する配列であり、GROUPMAXその配列の最大数を規定する定数であり、gnはそのオブジェクトがグループオブジェクトである場合において、そのグループオブジェクト内に位置するオブジェクトobj[]の個数を保持する変数である。
【0041】
obj[]はOBJECT型の構造体を保持する配列であり、OBJMAXはその配列の最大数を規定する定数であり、maxは現時点でのオブジェクトの個数を保持する変数である。cflagはイベント発生時に真偽値を保持するために使用される変数である。
【0042】
(情報処理)
図5は、図1の情報処理装置11により実行される情報処理に係るフローチャートである。オブジェクトやグループオブジェクトを作成する際にはまず、作成するオブジェクトがグループオブジェクトであるか否かを指定(S501)しておく。続いて、オブジェクトを作成するためにユーザがマウスのドラッグを開始(S502)すると、maxを1インクリメント(S503)する。次に、max番目のobj[]配列のストロークのnを初期化(S504)する。続いて、ユーザがマウスをドラッグ(S505)すると、マウスのドラッグが継続しているか否かを判断(S506)した上で、マウスのドラッグが継続している場合には、マウス位置をサンプリングして取得した座標点(x,y)について、xとyをそれぞれobj[max].x[obj[max].n]とobj[max].y[obj[max].n]に代入(S507)して、obj[max].nを1インクリメント(S508)する。マウスのドラッグが継続していない場合には、0番目からobj[max].n番目までのobj[max].x[]配列の平均値とobj[max].y[]配列の平均値をそれぞれ計算(S509)し、obj[max].gxとobj[max].gyにそれぞれの値を代入(S510)する。さらに、obj[max].pgxとobj[max].pgyにもそれぞれの値を代入(S510)する。最後に、作成されたオブジェクトがグループオブジェクトであるか否かを判断(S511)して、グループオブジェクトであればobj[max].isGroupにTrueを代入して、グループオブジェクトでなければobj[max].isGroupにFalseを代入する。このようにして、オブジェクトやグループオブジェクトが作成される。
【0043】
図6は、イベント発生検出部17により実行される情報処理に係るフローチャートである。上述したイベントが発生(S601)した際にはまず、cflagをFalseに初期化(S602)して、テンポラリ変数jを0に初期化(S603)する。次に、j番目のオブジェクトについて、順次obj[j].gxとobj[j].gyを取得(S604)して、さらにobj[j].pgxとobj[j].pgyを取得(S605)して、obj[j].gxとobj[j].pgxやobj[j].gyとobj[j].pgyを、それぞれ比較(S606)する。値に変化がある場合には、cflagにTrueを代入(S607)して、obj[j].pgxとobj[j].pgyにそれぞれobj[j].gxとobj[j].gyを代入(S608)して、jがmaxであるか否かを判断(S609)する。値に変化がない場合にも同様に、jがmaxであるか否かを判断(S609)する。jがmaxでない場合には、jを1インクリメント(S610)してこれまでの情報処理を繰り返し実行して、jがmaxである場合には、情報処理を終了する。
【0044】
図7は、オブジェクト検出部18により実行される情報処理に係るフローチャートである。イベント発生検出部17によりcflagにTrueが代入されると、これに応じてオブジェクト検出部18による情報処理が実行されることになる。まず、テンポラリ変数iを0に初期化(S701)して、obj[i].isGroupがTrueであるか否かを判断(S702)する。これは、i番目のオブジェクトがグループオブジェクトであるか否かを判断することに相当する。i番目のオブジェクトがグループオブジェクトである場合には、テンポラリ変数jを0に初期化(S703)して、さらにobj[i].gnも0に初期化(S703)する。次に、iとjが異なるか否かを判断(S704)して、iとjが異なる場合には、iflagという変数をTrueに初期化(S705)して、テンポラリ変数kを0に初期化(S706)する。次に、obj[j]のストロークを構成する座標点(obj[i].x[k],obj[i].y[k])が、obj[i]のストローク内に位置するか否かを判断(S707)する。この判断を0番目からobj[j].n番目の座標点について実行(S708・S709)して、その結果すべての座標点がストローク内に位置すると判断した場合、すなわちiflagがTrueのままであると判断した場合(S710)には、obj[i].garray[]配列のobj[i].gn番目にjを代入(S711)して、obj[i].gnを1インクリメント(S711)する。なお、途中の判断しだいで図7のように、iflagにFalseが代入(S712)されることになる。そして、jがmaxでない場合には、jを1インクリメントしてこれまでの情報処理を繰り返し実行(S713・S714)する。さらに、iがmaxでない場合には、iを1インクリメントしてこれまでの情報処理を繰り返し実行(S715・S716)して、iがmaxである場合には、情報処理を終了する。これにより、グループオブジェクトであるobj[i]内に位置するオブジェクトの番号が、obj[i].garray[0]、obj[i].garray[1]、、、obj[i].garray[obj[i].gn]に順次保持される。
【0045】
図8も、オブジェクト検出部18により実行される情報処理に係るフローチャートである。図8は図7の変形例である。図7では、オブジェクトのストロークを構成するすべての座標点が、グループオブジェクトのストローク内に位置する場合に、そのオブジェクトがそのグループオブジェクト内に位置するとしたが、図8では、オブジェクトのストロークを構成する座標点のうちの最低1個が、グループオブジェクトのストローク内に位置する場合に、そのオブジェクトがそのグループオブジェクト内に位置するとする。図8が図7と異なる点としては、S705とS712が存在しない点や、S707とS711がそれぞれS801とS802に置換されている点を挙げることができる。すなわち、S801にて、obj[j]のストロークを構成する座標点(obj[i].x[k],obj[i].y[k])が、obj[i]のストローク内に位置しないか否かを判断して、その結果座標点のうちの最低1個がストローク内に位置すると判断した場合には、S802にて、obj[i].garray[]配列のobj[i].gn番目にjを代入して、obj[i].gnを1インクリメントする。
【0046】
(内包判断)
オブジェクト検出部18は、図7のようにして、グループオブジェクト内に位置するオブジェクトを検出してもいいし、図8のようにして、グループオブジェクト内に位置するオブジェクトを検出してもいい。ところで、図7や図8においては、グループオブジェクト内にオブジェクトが位置するか否かを判断するために、ストローク内に座標点が位置するか否かを判断する情報処理を実行した。このような情報処理を「内包判断」と呼ぶことにして、ここでは「内包判断」について説明することにする。なお、内包判断については「http://www.wombat.or.jp/tomoyashuttle/shtm1/algorithm/Hougan.htm」等が参酌される。
【0047】
さて、ストロークは複数個の座標点により構成されており、これらの座標点を結んだ軌跡は多角形として考えることができる。ストローク内に座標点が位置するか否かの判断は、この多角形内に座標点が位置するか否かの判断に置き換えられる。
【0048】
図9は、このような内包判断について説明するための図である。まず、多角形は三角形の集合であると考えて、座標点がこれらの三角形内に位置するか否かを判断する。ここでは、座標点Paや座標点Pbが三角形ABC内に位置するか否かを判断することにする。
【0049】
座標点Gは、三角形ABCの重心である。幾何学的に言って、線分PaGや線分PbGがそれぞれ線分ABと線分BCと線分のいずれかと交差した場合には、座標点Paや座標点Pbはそれぞれ三角形ABC内に位置しない。実際、Paについては、線分PaGは線分BCと交差していて、Paは三角形ABC内に位置していないが、Pbについては、線分PbGは線分ABと線分BCと線分のいずれとも交差してなく、Pbは三角形ABC内に位置している。すなわち、座標点Paや座標点Pbが三角形ABC内に位置するか否かの判断は、線分PaGや線分PbGがそれぞれ線分ABと線分BCと線分のいずれとも交差しないか否かの判断に置き換えられる。
【0050】
結局、これらの三角形のいずれかに関して、座標点が三角形内に位置する場合には、その座標点は多角形内に位置することになり、その座標点はストローク内に位置すると判断することができる。一方、これらの三角形のすべてに関して、座標点が三角形内に位置しない場合には、その座標点は多角形内に位置しないことになり、その座標点はストローク内に位置しないと判断することができる。
【0051】
(オブジェクトの検出)
図7や図8では、オブジェクト検出部18は、オブジェクトやグループオブジェクトに係るイベントの発生に応じて、グループオブジェクト内に位置するオブジェクトを検出した。一方で、オブジェクト検出部18は、例えば3秒間隔というように「所定の時間間隔」で、グループオブジェクト内に位置するオブジェクトを検出してもよいし、例えば10時30分0秒と1秒と3秒と4秒と6秒、、、というように「所定の時刻」に、グループオブジェクト内に位置するオブジェクトを検出してもよい。
【0052】
(オブジェクトの操作)
図1の情報処理装置11では、操作装置13でグループオブジェクトを操作して、そのグループオブジェクト内に位置するオブジェクトをまとめて操作するということを上述した。この具体例としては、グループオブジェクト内に位置するオブジェクトの表示特性をまとめて変化させることが挙げられる。例えば、グループオブジェクト内に位置するオブジェクトをまとめて移動したりリサイズしたりするのである。
【0053】
図10Aは、マウスでグループオブジェクト22をドラッグして、グループオブジェクト22内に位置する3個のオブジェクト21A・21B・21Cをまとめて移動している様子を表す。これは、複数個のオブジェクトをまとめて操作したいときなどに便利である。図10Bは、マウスでオブジェクト21Cを個別にドラッグして、オブジェクト21Cを個別に移動している様子を表す。これは、オブジェクトを個別に操作したいときなどのほか、グループオブジェクト内にオブジェクトを加えるときや、グループオブジェクト内からオブジェクトを除くときなどにも利用される。
【0054】
図11は、図10のような操作の際に、図1の情報処理装置11により実行される情報処理に係るフローチャートである。図10のような操作のためにユーザがマウスのドラッグを開始(S1101)すると、distminを所定の数値で初期化(S1102)する。所定の数値とは、ストロークを構成する座標点とドラッグ開始時のマウス位置をサンプリングして取得された座標点(x,y)との距離を検出したい最大の距離範囲であり、例えばdistmin=12として初期化すると、上記の距離が12より小さい場合に、最近傍のオブジェクトを選択状態とすることになる。次に、テンポラリ変数iを0で初期化(S1103)して、さらに選択したオブジェクトobj[]配列の番号を保持するための変数selnumを−1で初期化(S1104)する。次に、テンポラリ変数jを0で初期化(S1105)する。次に、オブジェクトobj[i]のj番目の座標点(obj[i].x[j],obj[i].y[j])と座標点(x,y)との距離distを計算(S1106)して、distがdistminより小さいか否かをを判断(S1107)して、distがdistminより小さい場合には、distminにdistの値を代入(S1108)して、selnumにiを代入(S1108)する。そして、jがobj[i].nでない場合には、jを1インクリメントしてこれまでの情報処理を繰り返し実行(S1109・S1110)する。さらに、iがmaxでない場合には、iを1インクリメントしてこれまでの情報処理を繰り返し実行(S1111・S1112)して、iがmaxである場合には、次のステップに移る。
【0055】
次のステップでは、selnumが−1ではないか否かを判断(S1113)する。selnumが−1である場合には、座標点(x,y)にdistminより近傍のオブジェクトは存在しなかったものとして、情報処理を終了する。selnumが−1である場合には、マウス位置をサンプリングして座標点(x’,y’)を取得(S1114)する。次に、選択したobj[selnum].isGroupがTrueであるか否かを判断(S1115)する。選択したobj[selnum].isGroupがTrueである場合、すなわちselnum番目のオブジェクトがグループオブジェクトである場合には、obj[selnum]と、obj[selnum].garray[0]からobj[selnum].garray[obj[selnum].gn]まで、すなわちobj[selnum]内に位置するオブジェクトとを、座標点(x’,y’)に追従して移動(S1116)させ、情報処理を終了する。選択したobj[selnum].isGroupがTrueでない場合、すなわちselnum番目のオブジェクトがグループオブジェクトでない場合には、obj[selnum]のみを、座標点(x’,y’)に追従して移動(S1117)させ、情報処理を終了する。
【0056】
(変形例)
図1の情報処理装置11は、本発明に係る「情報処理装置」の実施の形態の例である。さらに、図1の情報処理装置11により実行される情報処理方法は、本発明に係る「情報処理方法」の実施の形態の例である。さらに、当該情報処理方法をコンピュータに実行させるコンピュータプログラムは、本発明に係る「情報処理プログラム」の実施の形態の例である。
【0057】
図12は、本発明の実施の形態の例である情報処理プログラム121の利用態様を表す。図12Aでは、情報処理プログラム121はコンピュータのハードディスクにインストールされている。図12Bでは、情報処理プログラム121は記録媒体に記録されており、これを使用して情報処理プログラム121をコンピュータに実行させることができる。このような記録媒体としては、図12Cのように、フロッピー(登録商標)ディスクや、CD−ROMや、MOディスクや、磁気ディスクや、DVDや、半導体メモリ等を挙げることができる。図12Dでは、情報処理プログラム121はダウンロードサイトからネットワークを介してコンピュータにダウンロードされている。このようなネットワークとしては、イントラネットのようなLANや、インターネットのようなWAN等を挙げることができる。有線でも無線でもよい。
【0058】
【発明の効果】
このように、本発明は、グループにオブジェクトを加える場合の操作性や、グループからオブジェクトを除く場合の操作性を向上させることを可能にする。
【図面の簡単な説明】
【図1】本発明の実施の形態の例である情報処理装置を表す。
【図2】図1の情報処理装置のGUIについて説明するための図である。
【図3】ストロークの概念について説明するための図である。
【図4】オブジェクトのデータ構造を表す構造体OBJECTである。
【図5】図1の情報処理装置により実行される情報処理に係るフローチャートである。
【図6】イベント発生検出部により実行される情報処理に係るフローチャートである。
【図7】オブジェクト検出部により実行される情報処理に係るフローチャートである。
【図8】オブジェクト検出部により実行される情報処理に係るフローチャートである。
【図9】内包判断について説明するための図である。
【図10】オブジェクトの操作について説明するための図である。
【図11】図1の情報処理装置により実行される情報処理に係るフローチャートである。
【図12】本発明の実施の形態の例である情報処理プログラムの利用態様を表す。
【符号の説明】
11 情報処理装置
12 表示装置
13 操作装置
14 記憶装置
15 オブジェクト表示部
16 グループオブジェクト表示部
17 イベント発生検出部
18 オブジェクト検出部
21 オブジェクト
22 グループオブジェクト
23 マウスポインタ
24 閉曲線
121 情報処理プログラム[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an information processing device, an information processing method, and an information processing program.
[0002]
[Prior art]
Currently, computers are used for various purposes, and most of them execute information processing using a display device or an operation device as a user interface (UI). Particularly in recent years, a graphical user interface (GUI) that is easy to understand intuitively has become mainstream. As a display device, a bitmap display or the like is used, and as an operation device, a mouse, a keyboard, a touch panel, a stylus pen, or the like is used.
[0003]
In the GUI, a graphical object (such as a graphic or an image) which is visually represented usually appears (this is abbreviated as “object”). In such a GUI, an object displayed on the display is usually operated with a mouse or the like. For example, the object is selected by clicking with the mouse, the object is double-clicked with the mouse to enter the editing state, or the object is dragged with the mouse to change the display characteristics. The change in display characteristics includes a change in display position (movement), a change in display size (resizing), and the like.
[0004]
In such a GUI, a plurality of objects displayed on the display are often grouped so that the plurality of objects can be operated collectively. For example, by dragging any object in the group, the display characteristics of the objects in the group are changed collectively. That is, the objects in the group are moved or resized collectively. In many cases, grouping can be performed by dragging a mouse or clicking SHIFT.
[0005]
The problem with grouping is the operability when changing the objects that make up the group. The only way to change the objects that make up a group is to delete the old group and rebuild a new group, but it is cumbersome to do it every time.
[0006]
As an invention for improving operability in such a case, an instruction indicating a group is displayed on a display device, and the group can be divided or combined by using the instruction. Japanese Patent Application Laid-Open No. 10-63462 discloses an invention for improving the operability in the case of dividing or combining.
[0007]
[Patent Document 1]
JP-A-10-63462.
[0008]
[Problems to be solved by the invention]
However, the invention described in Japanese Patent Application Laid-Open No. 10-63462 improves the operability when dividing or combining a group, but improves the operability when adding an object to a group, or removes an object from a group. The operability when removing is not improved.
[0009]
Therefore, an object of the present invention is to improve operability when adding an object to a group and operability when removing an object from a group.
[0010]
[Means for Solving the Problems]
The invention (information processing apparatus) according to
[0011]
The invention (information processing device) according to claim 2 relates to the invention (information processing device) according to
[0012]
The invention (information processing apparatus) according to claim 3 is the invention (information processing apparatus) according to claim 2, wherein the object detection unit is configured to perform the processing based on the occurrence of an event related to the object or the group object. Detecting the object located within the group object;
[0013]
The invention (information processing apparatus) according to a fourth aspect is the invention according to the second aspect (information processing apparatus), wherein the object detecting means is configured to store the information in the group object at a predetermined time or at a predetermined time interval. Detect the located object.
[0014]
The invention (information processing apparatus) according to a fifth aspect relates to the invention (information processing apparatus) according to the first aspect, wherein the group object is operated by the operation device, and the object located in the group object is operated. Information processing that enables the display characteristics to be changed collectively is executed.
[0015]
The invention (information processing device) according to claim 6 is the invention (information processing device) according to claim 5, wherein the display characteristic is a display position or a display size.
[0016]
An invention (information processing method) according to claim 7, which is an information processing method for executing information processing using a display device and an operation device as a user interface, wherein an object display step of displaying an object on the display device; A group object display step of displaying a group object on a display device, operating the object with the operating device, adding the object to the group object, operating the object with the operating device, Information processing for removing the object from the group object and operating the group object with the operating device to operate the objects located in the group object collectively is executed.
[0017]
An invention (information processing program) according to an eighth aspect causes a computer to execute the information processing method according to the seventh aspect.
[0018]
The invention (information processing device) according to
[0019]
The invention (information processing method) according to claim 7 is to operate an object with the operation device and add the object to the group object, and to operate the object with the operation device and move the object from within the group object. Operability when adding an object to a group by executing information processing that allows the user to operate the group object with the operating device and operate the objects located in the group object collectively In addition, the operability when removing an object from a group can be improved.
[0020]
The invention (information processing program) according to claim 8 operates the object with the operating device to add the object to the group object, and operates the object with the operating device to move the object from within the group object. Operation when adding an object to a group by causing the computer to execute the information processing that allows the computer to operate the group object with the operating device and collectively operate the objects located within the group object The operability when removing an object from a group and an object can be improved.
[0021]
BEST MODE FOR CARRYING OUT THE INVENTION
An embodiment of the present invention will be described.
[0022]
FIG. 1 shows an
[0023]
The
[0024]
FIG. 2 is a diagram for describing a GUI of the
[0025]
In this GUI, by grouping a plurality of objects 21, the plurality of objects 21 can be operated collectively. The
[0026]
In FIG. 2A, three objects 21 (
[0027]
Note that the
[0028]
Here, as a case where the objects 21 forming the group are changed, a case where the object 21 is added to the group and a case where the object 21 is removed from the group will be described.
[0029]
FIG. 2A illustrates a state where the
[0030]
FIG. 2B shows a state in which the object 21C is operated by the operation device 21 to remove the object 21C from the inside of the
[0031]
The operation of adding the object 21 to the
[0032]
FIG. 1 will be described again. The
[0033]
The
[0034]
The event
[0035]
The
[0036]
(stroke)
As described above, in the
[0037]
FIG. 3 is a diagram for explaining the concept of a stroke. In FIG. 3, (x [i], y [i]) represents a coordinate point (x, y) obtained at the i-th sampling. FIG. 3 shows a range from the 0th coordinate point to the nth coordinate point.
[0038]
Hereinafter, the description will be made using the structure format of the C language. The structure OBJECT representing the data structure of the object can be defined as shown in FIG.
[0039]
x [] and y [] are arrays holding the x-coordinate and y-coordinate of the coordinate points forming the stroke, respectively, NMAX is a constant defining the maximum number of the array, and n is the coordinate point forming the stroke Is a variable that holds the number of gx and gy are variables that hold the x and y coordinates of the coordinate point of the center of gravity of the object, respectively, and hold the average of x [] and the average of y [], respectively. pgx and pgy are variables that hold the x-coordinate and y-coordinate of the coordinate point of the center of gravity of the object at the time of the previous event occurrence.
[0040]
isGroup is a variable that holds a boolean value (true: True, false: False), True means that the object is a group object, and False means that the object is an object other than the group object. means. garley [] is an array for sequentially holding the index numbers of the objects obj [] located in the group object when the object is a group object, and is a constant that defines the maximum number of the array GROUPMAX. Is a variable that holds the number of objects obj [] located in the group object when the object is a group object.
[0041]
obj [] is an array holding an OBJECT type structure, OBJMAX is a constant that defines the maximum number of the array, and max is a variable that holds the current number of objects. cflag is a variable used to hold a boolean value when an event occurs.
[0042]
(Information processing)
FIG. 5 is a flowchart relating to information processing executed by the
[0043]
FIG. 6 is a flowchart related to information processing executed by the event
[0044]
FIG. 7 is a flowchart related to information processing executed by the
[0045]
FIG. 8 is also a flowchart according to information processing executed by the
[0046]
(Inclusion judgment)
The
[0047]
A stroke is composed of a plurality of coordinate points, and a locus connecting these coordinate points can be considered as a polygon. The determination as to whether or not the coordinate point is located within the stroke is replaced by the determination as to whether or not the coordinate point is located within the polygon.
[0048]
FIG. 9 is a diagram for explaining such inclusion determination. First, it is determined that a polygon is a set of triangles, and it is determined whether or not a coordinate point is located within these triangles. Here, it is determined whether or not the coordinate points Pa and Pb are located within the triangle ABC.
[0049]
The coordinate point G is the center of gravity of the triangle ABC. Geometrically speaking, if the line segment PaG or the line segment PbG intersects any one of the line segment AB, the line segment BC and the line segment, the coordinate point Pa or the coordinate point Pb is not located in the triangle ABC. . In fact, for Pa, line segment PaG intersects line segment BC, and Pa is not located within triangle ABC, but for Pb, line segment PbG is line segment AB, line segment BC and line segment Not intersecting with either, Pb is located within triangle ABC. That is, whether the coordinate point Pa or the coordinate point Pb is located in the triangle ABC is determined by determining whether the line segment PaG or the line segment PbG does not intersect with any of the line segment AB, the line segment BC and the line segment, respectively. Is replaced by the judgment of
[0050]
After all, if the coordinate point is located within the triangle for any of these triangles, the coordinate point will be located within the polygon, and it can be determined that the coordinate point is located within the stroke. . On the other hand, if the coordinate point is not located within the triangle with respect to all of these triangles, the coordinate point is not located within the polygon, and it can be determined that the coordinate point is not located within the stroke. .
[0051]
(Object detection)
7 and 8, the
[0052]
(Operation on objects)
As described above, in the
[0053]
FIG. 10A illustrates a state in which three
[0054]
FIG. 11 is a flowchart relating to information processing executed by the
[0055]
In the next step, it is determined whether or not selnum is not -1 (S1113). If selnum is -1, the information processing is terminated on the assumption that there is no object closer to the coordinate point (x, y) than distmin. If selnum is -1, the mouse position is sampled to obtain a coordinate point (x ', y') (S1114). Next, the selected obj [selnum]. It is determined whether or not isGroup is True (S1115). The selected obj [selnum]. If isGroup is True, that is, if the selnum-th object is a group object, obj [selnum] and obj [selnum]. gallery [0] to obj [selnum]. gallery [obj [selnum]. gn], that is, the object located within obj [selnum] is moved (S1116) following the coordinate point (x ′, y ′), and the information processing ends. The selected obj [selnum]. If isGroup is not True, that is, if the selnum-th object is not a group object, only obj [selnum] is moved following the coordinate point (x ′, y ′) (S1117), and the information processing ends. .
[0056]
(Modification)
The
[0057]
FIG. 12 illustrates a use mode of the
[0058]
【The invention's effect】
Thus, the present invention makes it possible to improve the operability when adding an object to a group and the operability when removing an object from a group.
[Brief description of the drawings]
FIG. 1 shows an information processing apparatus according to an embodiment of the present invention.
FIG. 2 is a diagram for describing a GUI of the information processing apparatus in FIG. 1;
FIG. 3 is a diagram for explaining the concept of a stroke.
FIG. 4 shows a structure OBJECT representing a data structure of an object.
FIG. 5 is a flowchart relating to information processing executed by the information processing apparatus of FIG. 1;
FIG. 6 is a flowchart related to information processing executed by an event occurrence detection unit.
FIG. 7 is a flowchart related to information processing executed by an object detection unit.
FIG. 8 is a flowchart related to information processing executed by an object detection unit.
FIG. 9 is a diagram for describing inclusion determination.
FIG. 10 is a diagram illustrating an operation of an object.
FIG. 11 is a flowchart relating to information processing executed by the information processing apparatus of FIG. 1;
FIG. 12 illustrates a use mode of an information processing program which is an example of an embodiment of the present invention.
[Explanation of symbols]
11 Information processing device
12 Display device
13 Operating device
14 Storage device
15 Object display section
16 Group object display section
17 Event occurrence detector
18 Object detector
21 Objects
22 Group object
23 Mouse pointer
24 Closed curve
121 Information processing program
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002275982A JP2004110734A (en) | 2002-09-20 | 2002-09-20 | Device, method and program for processing information |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002275982A JP2004110734A (en) | 2002-09-20 | 2002-09-20 | Device, method and program for processing information |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004110734A true JP2004110734A (en) | 2004-04-08 |
Family
ID=32272009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002275982A Pending JP2004110734A (en) | 2002-09-20 | 2002-09-20 | Device, method and program for processing information |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004110734A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328456A (en) * | 2006-06-06 | 2007-12-20 | Univ Of Tokyo | Object display processing device, object display processing method, and object display processing program |
US8078988B2 (en) | 2005-08-31 | 2011-12-13 | Ricoh Company, Ltd. | Information display system, apparatus and method of displaying electronic information according to schedule information |
JP2012256172A (en) * | 2011-06-08 | 2012-12-27 | Sony Corp | Information processing device, information processing method and program |
JP2014071762A (en) * | 2012-09-28 | 2014-04-21 | Fuji Xerox Co Ltd | Display controller, image display device, and program |
WO2016035800A1 (en) * | 2014-09-05 | 2016-03-10 | Necソリューションイノベータ株式会社 | Object management device, brainstorming assistance device, object management method, and computer-readable recording medium |
JP2016033753A (en) * | 2014-07-31 | 2016-03-10 | 京セラドキュメントソリューションズ株式会社 | Display input device and display input system including the same |
JP6034878B2 (en) * | 2012-12-27 | 2016-11-30 | グリー株式会社 | Object selection method, storage medium storing program, and information processing apparatus |
US9886188B2 (en) | 2011-08-25 | 2018-02-06 | International Business Machines Corporation | Manipulating multiple objects in a graphic user interface |
-
2002
- 2002-09-20 JP JP2002275982A patent/JP2004110734A/en active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078988B2 (en) | 2005-08-31 | 2011-12-13 | Ricoh Company, Ltd. | Information display system, apparatus and method of displaying electronic information according to schedule information |
JP2007328456A (en) * | 2006-06-06 | 2007-12-20 | Univ Of Tokyo | Object display processing device, object display processing method, and object display processing program |
JP2012256172A (en) * | 2011-06-08 | 2012-12-27 | Sony Corp | Information processing device, information processing method and program |
US9886188B2 (en) | 2011-08-25 | 2018-02-06 | International Business Machines Corporation | Manipulating multiple objects in a graphic user interface |
JP2014071762A (en) * | 2012-09-28 | 2014-04-21 | Fuji Xerox Co Ltd | Display controller, image display device, and program |
JP6034878B2 (en) * | 2012-12-27 | 2016-11-30 | グリー株式会社 | Object selection method, storage medium storing program, and information processing apparatus |
JP2017021859A (en) * | 2012-12-27 | 2017-01-26 | グリー株式会社 | Object processing method, recording medium for recording program, and information processing apparatus |
JP2016033753A (en) * | 2014-07-31 | 2016-03-10 | 京セラドキュメントソリューションズ株式会社 | Display input device and display input system including the same |
WO2016035800A1 (en) * | 2014-09-05 | 2016-03-10 | Necソリューションイノベータ株式会社 | Object management device, brainstorming assistance device, object management method, and computer-readable recording medium |
CN106605199A (en) * | 2014-09-05 | 2017-04-26 | 日本电气方案创新株式会社 | Object management device, brainstorming assistance device, object management method, and computer-readable recording medium |
JPWO2016035800A1 (en) * | 2014-09-05 | 2017-06-08 | Necソリューションイノベータ株式会社 | Object management device, thinking support device, object management method, and computer-readable recording medium |
US10359920B2 (en) | 2014-09-05 | 2019-07-23 | Nec Solution Innovators, Ltd. | Object management device, thinking assistance device, object management method, and computer-readable storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101635232B1 (en) | Pan and zoom control | |
JP5260733B2 (en) | Copy animation effects from a source object to at least one target object | |
US10831936B2 (en) | Virtual design | |
JPH09106334A (en) | Information processor | |
WO2012145324A1 (en) | Hierarchical display and navigation of document revision histories | |
JPH11144071A (en) | Device, method, and interface for drawing graph | |
JP7241462B2 (en) | Fast manipulation of objects in 3D scenes | |
US20140005996A1 (en) | Interactive and three-dimensional well path design | |
JP2004110734A (en) | Device, method and program for processing information | |
US10761684B2 (en) | Setting a parameter | |
JP5988450B2 (en) | Method for displaying nodes, computer for displaying nodes, and computer program therefor | |
JP6222896B2 (en) | Display control apparatus, control method thereof, and program | |
JP2006099385A (en) | Shape design support program | |
JP4143370B2 (en) | Link generator | |
JP2012256173A5 (en) | ||
JP6092472B2 (en) | Modifying constrained and unconstrained curve networks | |
EP3555862B1 (en) | A method and apparatus for modifying a contour comprising a sequence of points positioned on an image | |
CN105739816B (en) | Selecting a graphical element | |
JPH08255173A (en) | Clustering device | |
US11360636B2 (en) | Dynamic dimension switch for 3D content based on viewport resizing | |
JP2022019615A (en) | How to design a 3D mesh in a 3D scene | |
JP4319435B2 (en) | Computer and update notification method | |
JP2004013545A (en) | Information processing device | |
KR101138969B1 (en) | A method for accessing a penetrate image data of 3 dimension data to drive fast the penetrate image data, therefor an user interface apparatus | |
KR101900776B1 (en) | Method and apparatus for visualizing of multi-slice |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050223 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070612 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070813 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080414 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080418 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20081121 |