JP2004110734A - Device, method and program for processing information - Google Patents

Device, method and program for processing information Download PDF

Info

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
Application number
JP2002275982A
Other languages
Japanese (ja)
Inventor
Soichiro Iga
伊賀 聡一郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2002275982A priority Critical patent/JP2004110734A/en
Publication of JP2004110734A publication Critical patent/JP2004110734A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To enhance operability when an object is added to a group and operability when the object is removed from the group. <P>SOLUTION: An information processor executes information processing defining a display device and an operation device as a user interface. The information processor is provided with an object display means which displays an object on the display device and a group object display means which displays group objects on the display device. The information processor executes the information processing for making addition of the object in the group objects by manipulating the object by the operation device, removal of the object from the group object by manipulating the object by the operation device and operation of the objects positioned in the group objects in block by manipulating the group objects by the operation device possible. <P>COPYRIGHT: (C)2004,JPO

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 claim 1 is an information processing apparatus that performs information processing using a display device and an operation device as a user interface, wherein the object display means displays an object on the display device; A group object display means for 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.
[0011]
The invention (information processing device) according to claim 2 relates to the invention (information processing device) according to claim 1, further comprising an object detection unit that detects the object located in the group object, By operating the group object, information processing is performed which enables the objects detected by the object detection means to be located within the group object and operated collectively.
[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 claim 1 operates an object with an operation device to add the object to a group object, and operates an object with the operation device to 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.
[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 information processing apparatus 11 according to an embodiment of the present invention. A display device 12, an operation device 13, and a storage device 14 are connected to the information processing device 11 in FIG. Here, the information processing device 11 is a personal computer, the display device 12 is a display here, the operation device 13 is a mouse or keyboard here, and the storage device 14 is a hard disk here. The display device 12, the operation device 13, and the storage device 14 may be internal devices of the information processing device 11 or peripheral devices.
[0023]
The information processing apparatus 11 in FIG. 1 executes information processing using the display device 12 and the operation device 13 as UIs. In addition, a program for providing a GUI is installed in the storage device 14, and the above-mentioned "object" appears in this GUI. In this GUI, the “object” displayed on the display device 12 can be operated by the operation device 13.
[0024]
FIG. 2 is a diagram for describing a GUI of the information processing apparatus 11 in FIG. 2A and 2B show a state where the object 21, the group object 22, and the mouse pointer 23 are displayed on the display device 12, respectively. FIG. 2A shows four objects 21 (circle 21A, triangle 21B, square 21C, hexagon 21D), and FIG. 2B shows three objects 21 (circle 21A, triangle 21B, square 21C). I do. When the information processing apparatus 11 in FIG. 1 employs a window system, the object 21 and the group object 22 are assumed to be display objects existing in the same window.
[0025]
In this GUI, by grouping a plurality of objects 21, the plurality of objects 21 can be operated collectively. The group object 22 is used to group the plurality of objects 21. In this GUI, the objects 21 located in the same group object 22 are grouped. Then, the group object 22 is operated by the operation device 13, and the objects 21 located in the group object 22 are operated collectively.
[0026]
In FIG. 2A, three objects 21 (circle 21A, triangle 21B, square 21C) among the four objects 21 are grouped by a group object 22. In FIG. 2B, all three objects 21 (circle 21A, triangle 21B, and square 21C) are grouped by a group object 22.
[0027]
Note that the group object 22 has a closed curve 24 as shown in FIG. The closed curve 24 separates the inside and outside of the group object 22 and forms a border line. That is, in this GUI, the objects 21 located within the same closed curve 24 are grouped.
[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 object 21D is operated by the operation device 21 and the object 21D is added to the group object 22. FIG. 2A 'shows the state after that. In this GUI, as described above, the objects 21 located in the same group object 22 are grouped. Therefore, the object 21D is added to the group by this operation.
[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 group object 22. FIG. 2B 'shows the state after that. In this GUI, as described above, the objects 21 located in the same group object 22 are grouped. Therefore, the object 21C has been removed from the group by this operation.
[0031]
The operation of adding the object 21 to the group object 22 and the operation of removing the object 21 from the group object 22 can be realized by dragging the mouse or the like. Conventionally, the former operation has been realized by a SHIFT click of a mouse or the like, and the latter operation has no alternative but to cancel an old group and reconstruct a new group. As described above, the GUI of the information processing apparatus 11 in FIG. 1 can improve the operability when adding an object to a group and the operability when removing an object from a group.
[0032]
FIG. 1 will be described again. The information processing apparatus 11 of FIG. 1 includes, as functional blocks, an object display unit 15, a group object display unit 16, an event occurrence detection unit 17, and an object detection unit 18.
[0033]
The object display unit 15 causes the display device 12 to display an object. The group object display unit 16 causes the display device 12 to display group objects. In the information processing apparatus 11 shown in FIG. 1, the user operates the operation device 13 to create, delete, save in the storage device 15, or reproduce from the storage device 15 an object or a group object. Can be. The object display unit 15 and the group object display unit 16 respectively display the object and the group object on the display device 12 (change from the non-display state to the display state) according to the creation operation, the delete operation, the save operation, and the reproduction operation. Or withdraw the object and the group object from the display device 12 (change the display state from the display state to the non-display state).
[0034]
The event occurrence detection unit 17 detects occurrence of an event related to an object or a group object. The “event” here refers to movement, resizing, creation, deletion, storage, reproduction, etc. of an object or a group object. All of these may be detected, or some of them may be detected.
[0035]
The object detection unit 18 detects an object located within the group object. Here, when the event occurrence detection unit 17 detects the occurrence of the event, the object detection unit 18 detects the object accordingly. The object to be detected by the object detection unit 18 is all objects and group objects displayed on the display device 12 here.
[0036]
(stroke)
As described above, in the information processing apparatus 11 of FIG. 1, the user can operate the operation device 13 to create an object or a group object. More specifically, here, when the user drags the mouse, the information processing apparatus 11 acquires a coordinate point sequence from the start of the drag to the end of the drag (this is referred to as a “stroke”) in response to the drag. Are displayed on the display device 12 as objects or group objects. The stroke is a sequence of coordinate points obtained by sampling the mouse position at predetermined time intervals. Note that a touch panel or a stylus pen may be used in place of the mouse. In this case, a coordinate point sequence from the start of touchdown to the end of touchdown is acquired.
[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 information processing apparatus 11 of FIG. When an object or a group object is created, it is first specified whether or not the object to be created is a group object (S501). Next, when the user starts dragging the mouse to create an object (S502), max is incremented by one (S503). Next, n of the stroke of the max-th obj [] array is initialized (S504). Subsequently, when the user drags the mouse (S505), it is determined whether or not the mouse drag is continued (S506). If the mouse drag is continued, the mouse position is sampled. Regarding the acquired coordinate point (x, y), x and y are respectively represented by obj [max]. x [obj [max]. n] and obj [max]. y [obj [max]. n] (S507), and obj [max]. n is incremented by 1 (S508). If mouse dragging is not continued, obj [max]. obj [max]. x [] average and obj [max]. The average value of each of the y [] arrays is calculated (S509), and obj [max]. gx and obj [max]. Each value is substituted for gy (S510). Further, obj [max]. pgx and obj [max]. The respective values are also substituted for pgy (S510). Finally, it is determined whether the created object is a group object (S511). If the created object is a group object, obj [max]. True is substituted into isGroup, and if it is not a group object, obj [max]. Substitute False for isGroup. In this way, objects and group objects are created.
[0043]
FIG. 6 is a flowchart related to information processing executed by the event occurrence detection unit 17. When the above-described event occurs (S601), first, cflag is initialized to False (S602), and a temporary variable j is initialized to 0 (S603). Next, for the j-th object, obj [j]. gx and obj [j]. gy [j] is acquired (S604), and obj [j]. pgx and obj [j]. py [j] is acquired (S605), and obj [j]. gx and obj [j]. pgx or obj [j]. gy and obj [j]. pgy are compared (S606). If there is a change in the value, True is substituted for cflag (S607), and obj [j]. pgx and obj [j]. obj [j]. gx and obj [j]. gy is substituted (S608), and it is determined whether or not j is max (S609). Similarly, when the value does not change, it is determined whether or not j is max (S609). If j is not max, j is incremented by 1 (S610) and the information processing up to this point is repeatedly executed. If j is max, the information processing is terminated.
[0044]
FIG. 7 is a flowchart related to information processing executed by the object detection unit 18. When True is substituted for cflag by the event occurrence detection unit 17, the information processing by the object detection unit 18 is executed in response. First, a temporary variable i is initialized to 0 (S701), and obj [i]. It is determined whether or not isGroup is True (S702). This corresponds to determining whether the i-th object is a group object. If the i-th object is a group object, the temporary variable j is initialized to 0 (S703), and obj [i]. gn is also initialized to 0 (S703). Next, it is determined whether i and j are different (S704). If i and j are different, a variable iflag is initialized to True (S705), and a temporary variable k is initialized to 0. (S706). Next, whether or not the coordinate points (obj [i] .x [k], obj [i] .y [k]) constituting the stroke of obj [j] are located within the stroke of obj [i] Is determined (S707). This judgment is made from the 0th obj [j]. Execution is performed for the n-th coordinate point (S708 / S709). As a result, when it is determined that all coordinate points are located within the stroke, that is, when it is determined that iflag remains True (S710), obj is set. [I]. obj [i] of the galley [] array. j is substituted into the gn-th (S711), and obj [i]. gn is incremented by 1 (S711). It is to be noted that False is substituted for iflag as shown in FIG. 7 depending on the determination in the middle (S712). If j is not max, j is incremented by 1 and the information processing up to this point is repeatedly executed (S713 and S714). Further, if i is not max, i is incremented by 1 and the information processing up to this point is repeatedly executed (S715 / S716). If i is max, the information processing is terminated. As a result, the number of the object located within the group object obj [i] becomes obj [i]. gallery [0], obj [i]. gallery [1], obj [i]. gallery [obj [i]. gn].
[0045]
FIG. 8 is also a flowchart according to information processing executed by the object detection unit 18. FIG. 8 is a modification of FIG. In FIG. 7, it is assumed that when all the coordinate points constituting the stroke of the object are located within the stroke of the group object, the object is located within the group object. However, in FIG. 8, the stroke of the object is constituted. If at least one of the coordinate points is located within a stroke of a group object, the object is assumed to be located within the group object. 8 differs from FIG. 7 in that S705 and S712 do not exist and that S707 and S711 are replaced by S801 and S802, respectively. That is, in S801, the coordinate points (obj [i] .x [k], obj [i] .y [k]) constituting the stroke of obj [j] are not located within the stroke of obj [i]. If it is determined that at least one of the coordinate points is located within the stroke, obj [i]. obj [i] of the galley [] array. By substituting j for the gnth, obj [i]. gn is incremented by one.
[0046]
(Inclusion judgment)
The object detection unit 18 may detect an object located in the group object as shown in FIG. 7, or may detect an object located in the group object as shown in FIG. By the way, in FIG. 7 and FIG. 8, in order to determine whether or not the object is located within the group object, information processing for determining whether or not the coordinate point is located within the stroke is executed. Such information processing will be referred to as “inclusion judgment”, and here, the “inclusion judgment” will be described. For inclusion determination, "http://www.wombat.or.jp/tomoyashuttle/shtm1/algorithm/Hougan.htm" and the like are taken into consideration.
[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 object detection unit 18 detects an object located in the group object in response to the occurrence of an event related to the object or the group object. On the other hand, the object detection unit 18 may detect an object located in the group object at a “predetermined time interval” such as an interval of 3 seconds, for example, 10: 30: 0 second and 1 second. An object located in the group object may be detected at a “predetermined time” such as 3 seconds, 4 seconds, and 6 seconds.
[0052]
(Operation on objects)
As described above, in the information processing apparatus 11 of FIG. 1, the group object is operated by the operation device 13 and the objects located within the group object are operated collectively. As a specific example, it is possible to collectively change the display characteristics of the objects located in the group object. For example, the objects located in the group object are moved or resized collectively.
[0053]
FIG. 10A illustrates a state in which three objects 21A, 21B, and 21C located in the group object 22 are collectively moved by dragging the group object 22 with a mouse. This is convenient when it is desired to operate a plurality of objects collectively. FIG. 10B illustrates a state where the objects 21C are individually moved by individually dragging the objects 21C with a mouse. This is used not only when it is desired to individually operate objects, but also when adding objects to a group object or when removing objects from a group object.
[0054]
FIG. 11 is a flowchart relating to information processing executed by the information processing apparatus 11 of FIG. 1 at the time of the operation as shown in FIG. When the user starts dragging the mouse for the operation as shown in FIG. 10 (S1101), distmin is initialized to a predetermined numerical value (S1102). The predetermined numerical value is a maximum distance range in which it is desired to detect a distance between a coordinate point forming a stroke and a coordinate point (x, y) obtained by sampling a mouse position at the start of dragging. For example, distmin = 12 When the distance is smaller than 12, the nearest object is set to the selected state. Next, the temporary variable i is initialized with 0 (S1103), and the variable selnum for holding the number of the selected object obj [] array is further initialized with -1 (S1104). Next, the temporary variable j is initialized to 0 (S1105). Next, the distance dist between the j-th coordinate point (obj [i] .x [j], obj [i] .y [j]) of the object obj [i] and the coordinate point (x, y) is calculated ( (S1106) Then, it is determined whether or not dist is smaller than distmin (S1107). If dist is smaller than distmin, the value of dist is substituted for distmin (S1108), and i is substituted for selnum (S1108). S1108). And j is obj [i]. If not n, j is incremented by 1 and the information processing up to this point is repeatedly executed (S1109 / S1110). Further, if i is not max, i is incremented by 1 and the information processing up to this point is repeatedly executed (S1111 and S1112). If i is max, the process proceeds to the next step.
[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 information processing device 11 in FIG. 1 is an example of an embodiment of the “information processing device” according to the present invention. Further, the information processing method executed by the information processing apparatus 11 in FIG. 1 is an example of the embodiment of the “information processing method” according to the present invention. Furthermore, a computer program that causes a computer to execute the information processing method is an example of an embodiment of the “information processing program” according to the present invention.
[0057]
FIG. 12 illustrates a use mode of the information processing program 121 according to the embodiment of the present invention. In FIG. 12A, the information processing program 121 is installed on a hard disk of a computer. In FIG. 12B, the information processing program 121 is recorded on a recording medium, and can be used by a computer to execute the information processing program 121. Examples of such a recording medium include a floppy (registered trademark) disk, a CD-ROM, an MO disk, a magnetic disk, a DVD, and a semiconductor memory, as shown in FIG. 12C. In FIG. 12D, the information processing program 121 has been downloaded from a download site to a computer via a network. Examples of such a network include a LAN such as an intranet and a WAN such as the Internet. It may be wired or wireless.
[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)

表示装置と操作装置をユーザインタフェースとする情報処理を実行する情報処理装置であって、前記表示装置にオブジェクトを表示させるオブジェクト表示手段と、前記表示装置にグループオブジェクトを表示させるグループオブジェクト表示手段とを備え、前記操作装置で前記オブジェクトを操作して、そのオブジェクトを前記グループオブジェクト内に加えることと、前記操作装置で前記オブジェクトを操作して、そのオブジェクトを前記グループオブジェクト内から除くことと、前記操作装置で前記グループオブジェクトを操作して、そのグループオブジェクト内に位置する前記オブジェクトをまとめて操作することを可能にする情報処理を実行することを特徴とする情報処理装置。An information processing apparatus that performs information processing using a display device and an operation device as a user interface, comprising: an object display unit that displays an object on the display device; and a group object display unit that displays a group object on the display device. Operating the object with the operating device and adding the object to the group object; operating the object with the operating device to remove the object from within the group object; An information processing apparatus, wherein the information processing apparatus performs information processing that enables the apparatus to operate the group object and collectively operate the objects located within the group object. 前記グループオブジェクト内に位置する前記オブジェクトを検出するオブジェクト検出手段を備え、前記操作装置で前記グループオブジェクトを操作して、そのグループオブジェクト内に位置するとして前記オブジェクト検出手段により検出された前記オブジェクトをまとめて操作することを可能にする情報処理を実行することを特徴とする請求項1に記載の情報処理装置。Object detecting means for detecting the object located in the group object; operating the group object with the operating device to collect the objects detected by the object detecting means as being located in the group object; The information processing apparatus according to claim 1, wherein the information processing apparatus performs information processing that allows the user to perform an operation. 前記オブジェクト検出手段は、前記オブジェクト又は前記グループオブジェクトに係るイベントの発生に応じて、前記グループオブジェクト内に位置する前記オブジェクトを検出することを特徴とする請求項2に記載の情報処理装置。The information processing apparatus according to claim 2, wherein the object detection unit detects the object located in the group object according to occurrence of an event related to the object or the group object. 前記オブジェクト検出手段は、所定の時刻に又は所定の時間間隔で、前記グループオブジェクト内に位置する前記オブジェクトを検出することを特徴とする請求項2に記載の情報処理装置。The information processing apparatus according to claim 2, wherein the object detection unit detects the object located in the group object at a predetermined time or at a predetermined time interval. 前記操作装置で前記グループオブジェクトを操作して、そのグループオブジェクト内に位置する前記オブジェクトの表示特性をまとめて変化させることを可能にする情報処理を実行することを特徴とする請求項1に記載の情報処理装置。2. The information processing apparatus according to claim 1, wherein the operation device is configured to operate the group object to execute information processing that enables the display characteristics of the objects located in the group object to be changed collectively. 3. Information processing device. 前記表示特性は、表示位置又は表示サイズであることを特徴とする請求項5に記載の情報処理装置。The information processing apparatus according to claim 5, wherein the display characteristic is a display position or a display size. 表示装置と操作装置をユーザインタフェースとする情報処理を実行する情報処理方法であって、前記表示装置にオブジェクトを表示させるオブジェクト表示段階と、前記表示装置にグループオブジェクトを表示させるグループオブジェクト表示段階とを備え、前記操作装置で前記オブジェクトを操作して、そのオブジェクトを前記グループオブジェクト内に加えることと、前記操作装置で前記オブジェクトを操作して、そのオブジェクトを前記グループオブジェクト内から除くことと、前記操作装置で前記グループオブジェクトを操作して、そのグループオブジェクト内に位置する前記オブジェクトをまとめて操作することを可能にする情報処理を実行することを特徴とする情報処理方法。An information processing method for performing information processing using a display device and an operation device as a user interface, comprising: an object display step of displaying an object on the display device; and a group object display step of displaying a group object on the display device. Operating the object with the operating device and adding the object to the group object; operating the object with the operating device to remove the object from within the group object; An information processing method, wherein an information processing method is performed, wherein the apparatus operates the group object to execute the information processing so that the objects located in the group object can be operated collectively. 請求項7に記載の情報処理方法をコンピュータに実行させることを特徴とする情報処理プログラム。An information processing program for causing a computer to execute the information processing method according to claim 7.
JP2002275982A 2002-09-20 2002-09-20 Device, method and program for processing information Pending JP2004110734A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (12)

* Cited by examiner, † Cited by third party
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