JP4046753B2 - 線形状処理装置、線形状処理方法、ならびに、プログラム - Google Patents

線形状処理装置、線形状処理方法、ならびに、プログラム Download PDF

Info

Publication number
JP4046753B2
JP4046753B2 JP2006172206A JP2006172206A JP4046753B2 JP 4046753 B2 JP4046753 B2 JP 4046753B2 JP 2006172206 A JP2006172206 A JP 2006172206A JP 2006172206 A JP2006172206 A JP 2006172206A JP 4046753 B2 JP4046753 B2 JP 4046753B2
Authority
JP
Japan
Prior art keywords
coordinate value
type instruction
coordinate
instruction input
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006172206A
Other languages
English (en)
Other versions
JP2008003823A (ja
Inventor
憲明 岡村
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.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment 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 Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2006172206A priority Critical patent/JP4046753B2/ja
Priority to EP07767273A priority patent/EP2037351A4/en
Priority to CNA2007800234303A priority patent/CN101473291A/zh
Priority to KR1020087031013A priority patent/KR100984685B1/ko
Priority to PCT/JP2007/062435 priority patent/WO2007148730A1/ja
Priority to US12/305,013 priority patent/US8164578B2/en
Publication of JP2008003823A publication Critical patent/JP2008003823A/ja
Application granted granted Critical
Publication of JP4046753B2 publication Critical patent/JP4046753B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Description

本発明は、マウスやタッチパネル等により線の形状の入力を受け付け、当該線の形状を処理するのに好適な、線形状処理装置、線形状処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
従来から、タッチパネルやマウス等、所定の2次元領域内の点の位置を2つの座標値(典型的には、x座標とy座標の値。)で指定する指示入力を受け付けて、この座標値を処理する技術が提案されている。このような技術については、たとえば、以下の文献に開示されている。
特開2003−114760号公報
[特許文献1]には、マウスポインタの位置を移動させる際に、単位操作量あたりのポインタの移動距離より小さい単位操作量あたりの移動距離でポインタを移動制御することによって、ポインタの精密な位置移動を行う技術が開示されている。
一方で、このようなタッチパネルやマウスを用いた座標値の入力によって、各種の曲線を画面に描く技術も広く用いられている。
また、時間の経過にともなう株価や体重の変化などを、時間を横軸(x座標)、その時点での値を縦軸(y座標)とするグラフで描くことも、広く行われている。このグラフを表す線の形状は、線に含まれる点の位置が第1座標値と第2座標値(本例では、それぞれx座標値とy座標値に対応する。)によって指定され、y = f(x)のような陽関数の形式で、第1座標値xに対して第2座標値yが唯一つに決まる。
したがって、このような制約条件を持つような線の形状の入力を受け付けて種々の処理を行う際に、ユーザによる入力や修正が容易にできる技術が強く求められている。
本発明は、上記の課題を解決することを課題とするものであって、マウスやタッチパネル等により線の形状の入力を受け付け、当該線の形状を処理するのに好適な、線形状処理装置、線形状処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係る線形状処理装置は、2次元領域内のそれぞれの位置が第1座標値と第2座標値とにより指定され、当該2次元領域内に配置される線の形状を処理し、入力受付部、記憶部、表示部を備え、以下のように構成する。
まず、当該2次元領域内に配置される線に含まれる点の位置を指定する第1種指示入力と、当該第1種指示入力とは異なる第2種指示入力と、を受け付ける。
横方向に時間軸をとったグラフのような線図の座標値を処理する場合には、座標系として直交座標系を用い、第1座標値としてx座標の値、第2座標値としてy座標の値をそれぞれ用いるのが典型的である。ただし、用途によって、x座標やy座標を交換したり、斜交座標や極座標を採用したりしても良い。たとえば、円グラフを描く場合には、第1座標値として角度、第2座標値として半径を採用することができる。
マウスを移動させることによって画面内でマウスポインタを移動させるような入力機器を採用する場合には、マウスのボタンを押したまま移動させるドラッグ操作の間だけ、当該マウスポインタの画面内における位置を指定する第1種指示入力が順次入力されることとするのが典型的である。
この場合、それ以外の操作、たとえば、マウスのボタンを離したり、マウスのボタンを離したままマウスを移動させたりする操作の間は、第2種指示入力が順次入力されることとなる。
一方、タッチパネルのような入力機器を採用する場合には、タッチパネルに触れた(押圧操作した)ままタッチペンを移動させた間の軌跡に含まれる点の位置を指定する第1種指示入力が順次入力されることとするのが典型的である。
この場合、それ以外の操作、たとえば、タッチペンをタッチパネルから離す操作等が、第2種指示入力に対応付けられることとなる。
一方、記憶部は、当該第1種指示入力の受付が続いて行われた場合、当該先の第1種指示入力に指定される開始位置の第1座標値から当該後の第1種指示入力に指定される終了位置の第1座標値までの間に含まれる第1座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第1座標値を有する点の第2座標値を、当該第1座標値に対応付けて記憶する。
記憶部は、典型的にはRAM(Random Access Memory)内に用意される。第1座標値と第2座標値との対をそのまま記憶することとしても良いし、第1座標値が整数で表現される場合には、第1座標値をインデックスとする配列に第2座標値を記憶することにより、当該第1座標値に対して最後に入力された第2座標値のみを記憶することとしても良い。
先の第1種指示入力に指定される座標を(x1,y1)、後の第1種指示入力に指定される座標を(x2,y2)としたとき、x1とx2が隣り合う(x1とx2との相違が1)とは限らないため、(x1,y1)と(x2,y2)とを結ぶ線分を想定する。この線分内に含まれる点の位置(x,y)は、以下のように表現される。
(x,(x2-x)・y1/(x2-x1) + (x-x1)・y2/(x2-x1))
ただし、xはx1とx2の間にある。
このようにして得られる(x,y)のxを適切な精度で、たとえば、
(a)x1 < x2の場合は、xの初期値をx1としてx2に至るまでxを1ずつ増やす。
(b)x2 < x1の場合は、xの初期値をx1としてx2に至るまでxを1ずつ減らす。
(c)x1 = x2の場合は、(x,y) = (x2,y2)とする。
のように変化させ、得られる(x,y)について、xにyを対応付けて記憶部に記憶させる。このとき、過去に同じ第1座標値xについて何らかの第2座標値が記憶されていたとしても、これは上書きして、常に最新の第2座標値yを記憶させるのである。すなわち、記憶部によって記憶される第2座標値yは、第1座標値xに対して入力された最新の値、ということになる。
さらに、表示部は、第1座標値に対応付けられて記憶された第2座標値を、当該第1座標値に対する所定の順序で取得し、当該2次元領域内の当該取得された第2座標値が対応付けられる第1座標値と当該第2座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該2次元領域内に配置される線の形状を表示する。
第1座標値としてx座標値を、第2座標値としてy座標値を、それぞれ採用した場合には、x座標値を昇順に取得してそれぞれのx座標値に対するy座標値を取得しても良いし、x座標値を降順に取得してそれぞれのx座標値に対するy座標値を取得しても良い。
このようにして得られる(x,y)に点を描画すると、線の形状が点線(破線)で描かれることとなり、その線の形状は、y = f(x)のように陽関数として表示できるようなグラフをなすこととなる。
本発明によれば、線形状処理装置において、陽関数のグラフ形状をなすような線図を構成する点の座標値を、入力させる際に、ユーザが当該グラフ形状を入力する際に誤差があった場合であっても、ユーザの所望の形状に近いと想定される形状のグラフの点の座標値を、容易に得ることができるようになる。
また、本発明の線形状処理装置において、記憶部は、当該第2種指示入力の受付に続いて当該第1種指示入力の受付が行われた場合、当該第1種指示入力に指定される点の第2座標値を、当該点の第1座標値に対応付けて記憶するように構成することができる。
本発明は、過去に描いた線の形状を修正する場合の修正の開始時点での処理を特徴とするものであり、タッチパネルとタッチペンの例で説明すれば、一旦タッチパネルの上でタッチパネルを押圧操作しながら移動してグラフを描いて、タッチペンをタッチパネルから離した後に、タッチパネルの別の位置にタッチペンを押圧操作させたときの処理を表すものである。
このような場合には、新たにタッチペンが置かれた位置の第1座標値に対しては、過去に入力された第2座標値ではなく、新たに置かれた位置の第2座標値が対応付けられて記憶されることになる。
一方、表示部での線形状の表示の処理では、第1座標値を順次変化させて第1座標値と第2座標値で指定される点を結ぶように線形状を描くから、どのような位置にタッチペンを置いたとしても、線の形状は一繋がりになる。
本発明によれば、線の形状を修正したい場合に、過去に入力した線の形状に重なるような位置を指定しなくとも、線の形状が一繋がりになって取得されるため、ユーザは、簡単な処理で容易に線の形状を編集、修正することができるようになる。
また、本発明の線形状処理装置において、入力受付部は、当該画面の表面に対する押圧操作を、当該押圧操作された位置に対応付けられる当該2次元領域内の位置を指定する第1種指示入力として受け付け、当該画面の表面からの離脱操作を、第2種指示入力として受け付けるように構成することができる。
画面の表面にタッチパネルが配置され、画面における点や線図の表示位置と、タッチペンで点や線図を描きたいときの押圧操作の位置とが重なるようにしたものである。
本発明は、上記発明の好適実施形態に係るものであり、本発明によれば、所望の形状の線に含まれる点の位置を、ユーザが容易に指示できるようになる。
また、本発明の線形状処理装置は、削除部をさらに備え、以下のように構成することができる。
すなわち、削除部は、当該第1種指示入力の受付が続いて所定の回数行われた場合、当該続いて行われた第1種指示入力の互いに隣り合う第1種指示入力の対のすべてにおいて、当該対の先の第1種指示入力に指定される位置から当該対の後の第1種指示入力に指定される位置へのベクトルと、当該2次元領域において当該第1座標値のみを当該所定の順序で変化させる方向のベクトルと、のなす角が所定の鈍角以上である場合、当該続いて行われた第1種指示入力のそれぞれに指定される第1座標値の最小値から最大値までの範囲に含まれる第1座標値に対応付けられて記憶部に記憶される第2座標値の値を、記憶部から削除する。
たとえばタッチペンの状態を一定時間間隔で監視してこの状態から指示入力を得る場合には、「第1種指示入力が続いて所定の回数行われる」とは、タッチペンでタッチパネルの表面を一定時間以上なぞり続けた場合に相当する。
また、第1座標値としてx座標値を採用し、xが増加する順序に点を描画する場合には、「2次元領域において第1座標値のみを所定の順序で変化させる方向」とは、x軸の正の方向を意味する。
そして、M回続いて行われた第1種指示入力に指定される座標が時間順に
(x1,y1),…,(xM,yM)
であるときに、i = 1,2,…,M-1のすべてについて、方向ベクトル
(xi+1-xi,yi+1-yi)
がx軸正の方向と鈍角θ以上をなす、すなわち、
xi+1<xi かつ |(yi+1-yi)/(xi+1-xi)|≦tanθ
のとき、削除を行うこととなる。
たとえば、x軸が画面の水平方向に配置され、x軸の正の向きが左から右であるとき、グラフなどの線の形状を描く場合には、ユーザは、できるだけ左から右へタッチペンを移動させるようにこころがければ良い。このとき、操作に少々の誤差があり、少しだけ右から左へタッチペンが逆行したとしても、線の形状はタッチペンの移動の履歴に合わせて決定される。
しかしながら、タッチペンを右から左へ水平に一定時間以上移動させると、その移動の開始位置のx座標から終了位置のx座標までの間に含まれる線の一部が消去されるのである。
削除の手法としては、RAM内に座標値を記憶する際に、ありえない座標値、たとえば、2次元領域の外側に相当する座標値等を記憶させたり、各第2座標値を記憶する際に、当該第2座標値が削除されているか否かを表すフラグ情報を同時に記憶することとしても良い。
本発明によれば、入力されたグラフ等の線の形状の一部を消去して、分断された線の形状を描いたり、不要な区間を削除したりするような線の形状の編集が容易にできるようになる。
また、本発明の線形状処理装置において、当該第1座標値は整数により表現され、表示部は、当該描画される点の第1座標値と、その直前に描画された点の第1座標値と、が隣り合う場合、当該描画される点と、その直前に描画された点と、を結ぶ線分をさらに描画するように構成することができる。
本発明は、上記発明の好適実施形態に係るものであり、上記発明では、y = f(x)に相当するグラフを、そのx座標値とy座標値を有する点の点列として表示していたが、本実施形態では、描画すべき2つの点のx座標が十分に近い場合、たとえば、画面の表示精度(ドット単位)で隣り合う場合に、これら2つの点の間に線分を描画することによって、グラフを線図として描くことができるようにするものである。
なお、x座標が隣り合わない場合は、その間には線分を描画しないから、y = f(x)のx座標のうち、一部の区間についてはy座標が定義されないような、分断されたグラフを描くこともできる。
本発明によれば、入力された点の位置を適切に結ぶグラフ等の線の形状を描き、各種のグラフ等を表示させることが容易にできるようになる。
また、本発明の線形状処理装置において、記憶部は、当該第1座標値をインデックスとする配列の要素として当該第2座標値、もしくは、当該第1座標値に対応付けられるべき第2座標値は削除されている旨を示す値を記憶し、表示部は、当該配列のインデックスが当該所定の順序に変化するように当該配列の要素を走査して、当該第1座標値に対応付けられる当該第2座標値を取得するように構成することができる。
多くの情報処理装置においては、第1座標値と第2座標値はいずれも整数で入力され、所定の領域として、たとえば、幅320×高240などの大きさを採用した場合は、第2座標値のとりうる値は0〜239の240通りで、1バイトで表現でき、第1座標値のとりうる値は0〜319の320通りであるから、配列全体のサイズは320バイトとすれば良い。配列の要素の値(すなわち、第2座標値)として255を記憶させた場合には、その要素のインデックスである第1座標値では、グラフは描かれない(点が削除されている)として扱うことが可能である。
本発明によれば、各第1座標値に対して最後に記憶された第2座標値を唯一の値として管理するのに容易なデータ構造を実現して、処理を高速に行うことができる。
また、本発明の線形状処理装置において、当該2次元領域には、水平方向の座標軸と垂直方向の座標軸とが設定され、当該第1座標値は当該水平方向の座標軸に対する座標値であり、当該第2座標値は当該垂直方向の座標軸に対する座標値であるように構成することができる。
本発明は、上記発明のもっとも典型的な実施形態に係るものである。上記で例示した通り、本発明によれば、時間軸が水平方向(横軸)に設定され、たとえば株価が垂直方向(縦軸)に設定された株価変動グラフをユーザが入力したい場合等に、ユーザは、容易に株価変動グラフの形状等を容易に入力したり修正したりすることができるようになる。
また、本発明の線形状処理装置において、当該第1座標値のみを当該所定の順序で変化させる方向は、水平方向左から右であるように構成することができる。
本発明は、上記発明のもっとも典型的な実施形態に係るものである。本発明によれば、概ね左から右方向にタッチペンを押圧移動させれば株価変動グラフ等を入力することができるが、右から左方向略水平にタッチペンを押圧移動させれば、その押圧移動の区間について、株価変動グラフ等の形状を削除することができる。したがって、本発明によれば、株価変動グラフ等の一部をユーザが削除したい場合に、容易に削除を行うことができるようになる。
また、本発明の線形状処理装置において、当該2次元領域には、極座標の座標系が設定され、当該第1座標値は当該極座標の角度に対する座標値であり、当該第2座標値は当該極座標の半径に対する座標値であるように構成することができる。
本発明は上記発明の好適実施形態に係るものである。たとえば、複数のパラメータを表示する際に、星型グラフを利用することがある。星型グラフは、正多角形の各頂点にそれぞれのパラメータの種類が対応付けられ、中心から頂点に向かう線分の長さを当該頂点に対応するパラメータ値にして、線分の先を結んだ多角形により、複数のパラメータを表示するものであり、これは極座標による座標系でグラフを表示することに相当する。
本発明によれば、このような星型グラフをユーザが入力・編集したい場合に、簡単な操作で容易に入力・編集を行うことができるようになる。
本発明のその他の観点に係る線形状処理方法は、2次元領域内のそれぞれの位置が第1座標値と第2座標値とにより指定され、当該2次元領域内に配置される線の形状を処理し、入力受付部、記憶部、表示部を備える線形状処理装置にて実行され、入力受付工程、記憶工程、表示工程を備え、以下のように構成する。
まず、入力受付工程では、入力受付部が、当該2次元領域内に配置される線に含まれる点の位置を指定する第1種指示入力と、当該第1種指示入力とは異なる第2種指示入力と、を受け付ける。
一方、記憶工程では、記憶部が、当該第1種指示入力の受付が続いて行われた場合、当該先の第1種指示入力に指定される開始位置の第1座標値から当該後の第1種指示入力に指定される終了位置の第1座標値までの間に含まれる第1座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第1座標値を有する点の第2座標値を、当該第1座標値に対応付けて記憶する。
さらに、表示工程では、表示部が、記憶部に第1座標値に対応付けられて記憶された第2座標値を、当該第1座標値に対する所定の順序で取得し、当該2次元領域内の当該取得された第2座標値が対応付けられる第1座標値と当該第2座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該2次元領域内に配置される線の形状を表示する。
本発明のその他の観点に係るプログラムは、コンピュータを上記の線形状処理装置として機能させ、コンピュータに上記の線形状処理方法を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
本発明によれば、マウスやタッチパネル等により線の形状の入力を受け付け、当該線の形状を処理するのに好適な、線形状処理装置、線形状処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
図1は、本発明に係る線形状処理装置が実現される一般的な情報処理装置の概要構成を示す説明図である。以下、本図を参照して説明する。
本情報処理装置101は、CPU(Central Processing Unit)102と、RAM(Random Access Memory)103と、ROM(Read Only Memory)104と、入力装置105と、画像処理部106と、液晶ディスプレイ107と、音声処理部108と、スピーカ109と、カセットリーダ110と、を備える。
CPU 102は、本情報処理装置101の各部の制御を行う。RAM 103の記憶域、ROM 104の記憶域、カセットリーダ110に挿入されたROMカセット111の記憶域は、いずれも、CPU 102が管理する1つのメモリ空間にマップされており、CPU 102は、それぞれの記憶域がマップされるアドレスを読み出せば、それぞれに記憶されている情報を取得することができる。また、RAM 103の記憶域には、書き込みも可能である。
このほか、CPU 102が画像処理部106や音声処理部108に対して各種の指示を行う際や、これらのほか、入力装置105から情報を取得する際の、窓口となるレジスタも、当該メモリ空間にマップされており、所定のアドレスにコマンドを表すデータ書き込みを行えば指示をすることができ、所定のアドレスからデータを読み出せば、情報を取得することができる。
情報処理装置101の電源が投入されると、CPU 102は、カセットリーダ110に挿入されたROMカセット111の記憶域がマップされたアドレスから開始されるプログラムを実行する。RAM 103は、一時的な記憶域として種々の目的に使用される。ROM 104には、情報処理装置101が提供するBIOS(Basic Input/Output System)ルーチンが記録されており、ROMカセット111内のプログラムから、適宜呼び出すことができる。
入力装置105は、方向を表す指示入力を受け付けるボタン、各種の操作を区別する指示入力を受け付けるボタンからの入力をメモリ空間にマップされたレジスタに反映させるほか、液晶ディスプレイ107の表面に貼り付けられたタッチパネルが押圧されているか否か、および押圧されているときのその座標の入力も受け付ける。
液晶ディスプレイ107は、画像処理部106によって管理される。メモリ空間にマップされたタイルを記憶するための記憶領域や、オブジェクト属性メモリを記憶するための記憶領域が用いられる。CPU 102が、計算により生成した値を書き込んだり、カセットリーダ110に挿入されたROMカセット111から適切に情報を転送すると、液晶ディスプレイ107にスプライト画像が表示されることとなる。
このほか、液晶ディスプレイ107に表示される画像を画素単位で管理するフレームバッファを利用することもでき、液晶ディスプレイ107においてある色をある位置に表示したい場合には、フレームバッファ内のその位置に相当する場所にその色に相当する数値を書き込むと、適切なタイミングで液晶ディスプレイ107にビットマップ画像が表示される。
たとえば、16ビットカラー表示320×200ドットの液晶ディスプレイ107の場合、画素1つ分の色は2バイトで表現される。そこで、320×200個の要素(各2バイト)を持つ配列をフレームバッファとしてRAM 102内に用意し、当該配列の要素を1対1に液晶ディスプレイ107の画素に対応させる。当該配列の要素に色を表す16ビットの値を書き込み、適切なタイミングで(たとえば、垂直同期割り込みが発生する周期で)フレームバッファの内容を液晶ディスプレイ107に反映させるように、画像処理部106にて制御を行う。
液晶ディスプレイ107の数は1つまたは複数とするのが一般的であり、複数の場合には、一方の液晶ディスプレイ107は表示専用とし、他方の液晶ディスプレイ107にはタッチパネルが貼り付けられているように構成しても良い。この場合、タッチペンでタッチパネルを押圧操作することにより、対応する液晶ディスプレイ107の位置を表す座標値が、入力される。
なお、本情報処理装置101は、典型的な携帯ゲーム装置として利用されるものであるが、本発明の技術は、マウスおよびキーボードとCRT(Cathode Ray Tube)を用いて入力と出力を行うような汎用コンピュータで動作する各種のアプリケーションに適用することも可能であり、そのような実施形態も本発明の範囲に含まれる。
(基本的な構成)
図2は、本実施形態に係る線形状処理装置の概要構成を示す説明図である。以下、本図を参照して説明する。
本実施形態に係る線形状処理装置201は、入力受付部202、座標記憶部203、履歴記憶部204、表示部205、削除部206、検出部207を備える。
入力受付部202は、液晶ディスプレイ107の表面に貼り付けられたタッチパネルとタッチペンの組み合わせによって実現される。CPU 102がメモリ空間にマップされた所定のレジスタの値を検査すると、タッチペンでタッチパネルが押圧操作されているか、それとも解放されているか、の情報や、押圧操作されている場合にタッチパネルにおけるその押圧操作されている座標が、直交座標系で得られる。
ここで、本実施形態では、横軸に時間変化、縦軸に株価や体重などの値をとるグラフの線図を入力したい場合を考える。したがって、x座標が第1座標値に、y座標が第2座標値に、それぞれ相当する。上記の例では、x座標としてとりうる値は0〜319、y座標としてとりうる値は0〜239である。これらの数値は、適用分野および情報処理装置101の仕様に応じて、適宜変更が可能である。
一方、座標記憶部203は、グラフの線図に含まれる点のx座標値とy座標値の組合せを記憶するものであり、履歴記憶部204は、座標値の入力の履歴を記憶するものであり、CPU 102の制御の下、典型的にはRAM 103によって実現される。
また、表示部205は、グラフの線図を表示するものであり、CPU 102の制御の下、液晶ディスプレイ107によって実現され、削除部206は、座標記憶部203や履歴記憶部204に記憶される情報を適宜管理するもので、CPU 102がRAM 103と共働して実現される。
さらに、検出部207は、座標記憶部203に記憶された線の形状が所定の特徴的な形状を有しているか否かを検出するもので、CPU 102がRAM 103と共働することにより実現される。
なお、履歴記憶部204および削除部206を用いた処理や、検出部207を用いた処理は、適用分野によっては省略することができ、これらを適宜省略した実施形態も、本発明の範囲に含まれる。
図3は、本実施形態の線形状処理装置にて実行される座標値入力表示処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
まず、CPU 102は、RAM 103内に用意された、座標記憶部203を初期化し(ステップS301)、履歴記憶部204を初期化する(ステップS302)。
座標記憶部203は、320バイトの配列Fによって実現される。以下、配列Fのx番目の要素をF[x]と表記する。本実施形態では、第1座標値xに対する最新の第2座標値yが、配列のx番目の要素F[x]に記憶される。
上記の例では、第2座標値として有効な値は0から239であるため、「第1座標値xに対応する第2座標値yは存在せず、第1座標値xの場所でグラフが途切れている」ことを表すために、255という値を用いる。
したがって、座標記憶部203の初期化は、x = 0,1,…,319について、F[x] ← 255の処理を実行することで行う。ここで、「←」は、いわゆる代入を意味する。
一方、履歴記憶部204は、直近に入力されたx座標とy座標の組合せを所定の個数Mだけ、順次記憶するリングバッファとして実現される。
当該リングバッファは、次に値を登録すべき場所を記憶する変数pと、x座標、y座標からなる構造体を要素とする配列Rと、押圧操作されている旨の座標入力が現在までに何個連続してされたか(どれだけの時間連続してされたか、に相当する。)を格納する変数nと、によって実現する。配列Rの要素の数はM個とする。以下では、配列Rのi番目の要素はR[i]のように表記し、当該要素のx座標、y座標は、それぞれ、R[i].x,R[i].yのように表記する。
したがって、履歴記憶部204の初期化は、p ←0,n ← 0とし、i ← 0,1,…,M-1について、R[i].x ← -1,R[i].y ← 255のように値を設定することによって実現される。
このようにして、RAM 103内に確保された各種の変数領域の初期化を行った後、CPU 102は、メモリ空間内にマップされた所定のレジスタを参照して、液晶ディスプレイ107の表面に貼り付けられたタッチパネルが押圧操作されているか否かを調べる(ステップS303)。
押圧操作されている場合(ステップS303;Yes)、メモリ空間内にマップされた所定のレジスタを参照して、液晶ディスプレイ107の表面に貼り付けられたタッチパネルが押圧操作されている位置のx座標値aとy座標値bを取得する(ステップS304)。すなわち、ステップS303〜ステップS304により、第1種指示入力を受け付けたことになる。
なお、この際に、x座標値aやy座標値bには、符号を反転して定数を加算して向きを逆向きにしたり、適当な定数で乗除を行って座標値の精度を所望の精度に変更するなどの各種の変換処理を行っても良い。また、円グラフの形状を描く場合には、x座標値に相当するものは角度、y座標値に相当するものは中心からの距離とするのが典型的である。
そして、R[p].x ← a,R[p].y ← b,p ← (p + 1) mod Mを実行して、履歴記憶部204のリングバッファに取得された座標値を登録する(ステップS305)。ここで、x mod yは、整数xを正整数yで割った余り(数学的な意味での剰余を意味し、0≦(x mod y)≦y-1である。)を意味する。
なお、マウスを移動させることによって画面内でマウスポインタを移動させるような入力機器を採用する場合には、マウスのボタンを押したまま移動させるドラッグ操作の間だけ、当該マウスポインタの画面内における位置が順次入力されることとするのが好適である。マウスのボタンが押圧されているか否かと、マウスポインタの現在位置と、の情報を用いれば、ステップS303〜ステップS304と同等の処理を行うことができる。
さらに、n ← n + 1を実行して(ステップS306)、押圧操作(第1種指示入力)が現在までに連続してされていることを示す回数をカウントする。ステップS303以降の処理は、後述するように、一定の時間おきにされるので、nの値は、押圧操作が現在までに連続してされている時間と考えることもできる。
ついで、CPU 102は、所定の削除条件が満たされているか否かを判定する(ステップS307)。削除条件が満たされていると、入力された座標値を適宜削除することとなるが、その詳細については後述することとする。また、前述した通り、削除条件を考慮せず、ステップS306からステップS308に直ちに移行するような態様を採用しても良い。そこでここでは、削除条件が満たされていない場合(ステップS307;No)について説明する。
削除条件が満たされていない場合(ステップS307;No)、CPU 102は、押圧操作(第1種指示入力)が連続してされているか否か、すなわち、n≧2が成立するか否かを判断する(ステップS308)。
成立しない場合(ステップS308;No)、すなわち、第2種指示入力に続いて第1種指示入力が行われた場合、言い換えれば、タッチパネルから離れていたタッチペンがタッチパネルに触れたことが検出された場合、F[a]←bを実行して(ステップS330)、押圧操作されている座標の情報を登録し、ステップS319に進む。すなわち、ステップS330は、過去に入力された線の形状の修正を開始することに相当する。
一方、成立する場合(ステップS308;Yes)、最新の第1種指示入力により指定される座標は、
(x1,y1) = (R[(p-1) mod M].x,R[(p-1) mod M].y)
であり、その直前の第1種指示入力により指定される座標は、
(x2,y2) = (R[(p-2) mod M].x,R[(p-2) mod M].y)
であるから、これらの座標値を取得する(ステップS309)。
そして、x1 = x2であるか否かを判定し(ステップS310)、そうであれば(ステップS310;Yes)、F[x2] ← y2を実行して(ステップS311)、所望の形状の線が通過する点として第1座標値x2に対して最新に入力された第2座標値y2を、座標記憶部203に登録する。
一方、x1≠x2である場合(ステップS310;No)、RAM 103に用意された変数領域sに対して、s ← sgn(x2-x1)を実行する(ステップS312)。ここで、sgn(z)は、zが正のときに1、zが負のときに−1を返す関数である。
そして、RAM 103に用意された変数領域xの初期値としてx1を設定してから(ステップS313)、以下の処理を繰り返す(ステップS314)。すなわち、RAM 103に用意された変数領域yに対して
y ← (x2-x)・y1/(x2-x1) + (x-x1)・y2/(x2-x1)
を実行し(ステップS315)、(x1,y1)と(x2,y2)とを結ぶ線分の第1座標値がxであるときの第2座標値yの値を求める。
そして、F[x] ← yを実行して(ステップS316)、所望の形状の線が通過する点として第1座標値xに対して最新に入力された第2座標値yを、座標記憶部203に登録する。
ついで、x ← x + sを実行し(ステップS317)、x≠x2の間、ステップS314〜ステップS318の処理を繰り返す(ステップS318)。
さて、繰り返しが終わったら、ついで、CPU 102は、i = 0,1,…,319についてiの値を1ずつ増やしながら、以下の処理を繰り返す(ステップS319)。
まず、F[i]が有効なy座標値であるか否かを調べる(ステップS320)。すなわち、本実施形態では、0≦F[i]≦239であるか否かを調べる。そして、F[i]が有効なy座標値である場合(ステップS320;Yes)、液晶ディスプレイ107の2次元面の各画素に対応する情報を格納するフレームバッファの、座標(i,F[i])に相当する位置に、点を描画する情報を書き込む(ステップS321)。一方、そうでなければ(ステップS320;No)、点の描画はせず、ステップS322に進む。
ステップS319〜ステップS322を繰り返すことによって(ステップS322)、タッチペンでなぞった位置のうち、位置が検出された点が画面に表示されることになる。
さらに、CPU 102は、i = 0,1,…,318について、iの値を1ずつ増やしながら、以下の処理を繰り返す(ステップS323)。
すなわち、F[i]とF[i+1]が両方とも有効なy座標値であるか否かを調べる(ステップS324)。この判定基準は、ステップS319におけるものと同様である。そして、両方とも有効なy座標値である場合(ステップS324;Yes)、フレームバッファの座標(i,F[i])から座標(i+1,F[i+1])までの線分を描画する情報を書き込む(ステップS325)。このようなフレームバッファに対する線分描画の処理は、ブレゼンハム線分描画アルゴリズムを採用しても良いし、画像処理部107自体がそのような機能を有する場合もある。
一方、そうでなければ(ステップS324;No)、線分の描画はせず、ステップS326に進む。
ステップS323〜ステップS326を繰り返すことによって(ステップS326)、タッチペンでなぞった位置のうち、位置が検出された点を結ぶ線分も画面に表示されることになる。
そして、垂直同期割り込みが発生するまで待機する(ステップS327)。当該待機中には、コルーチン的に他の処理を実行することができる。垂直同期割り込みが発生したら、CPU 102は、画像処理部106に指示を出して、フレームバッファの内容を液晶ディスプレイ107に反映させ、タッチペンを用いて入力された座標値に相当する位置に点を表示し、これらの点を結ぶ線分を適切に表示する(ステップS328)。そして、ステップS303に戻る。
一方、タッチペンが押圧操作されておらず、タッチパネルから離れている場合(ステップS303;No)、n ← 0としてその旨を記憶してから(ステップS329)、ステップS319に進む。これは、第2種指示入力を受け付けたことを意味する。
このような処理によって、タッチペンで入力された点の軌跡から、どのようなグラフの線の形状が描画されることとなるのかについて、説明する。
図4は、押圧操作されたタッチペンの移動の軌跡と、これに対して表示されるグラフ線の形状の様子を示す説明図である。以下、本図を参照して説明する。
本図(a)には、上下にジグザグに蛇行する線をユーザがタッチペンで描いた場合の軌跡を示す。このようなジグザグ線401の形状は、たとえば株価の時間変化において、ペナントやフラッグと呼ばれるような、株価変動が短い周期に頻繁に起きる状況を示すグラフを線の形状としたものである。時間経過は左から右に設定されているので、このジグザグ線401の軌跡は、全体として見ると、概ね左から右に移動していたことになる。
ここで、ユーザがタッチペンを押圧操作しながら移動させるときにジグザグ線401を描くと、タッチペンが常に左から右に移動するとは限らず、ときどきは右から左に戻ってしまうような動きになってしまうことがある。急いでタッチペンを操作した場合には特にこのようなことが発生する。このような逆行が生じると、あるx座標におけるジグザグ線401のy座標の値が複数発生することとなる。本図でも、このような重複部分402が何か所が生じている。
本図(b)には、このような重複部分402を含むようなジグザグ線401がタッチペンで描かれた場合、実際に入力されるグラフの線403の形状の様子を示している。
上記のように、本実施形態では、ある時点(横軸)における値(縦軸)は1つに決められ、ある時点における値が複数存在してしまう場合には、最後に入力された値が採用される。したがって、右から左へ後戻りしてしまう場合であっても、その後に左から右へタッチペンが移動することとなっており、その最新の軌跡がグラフの線403として採用されている。
また、本図(c)は、本図(a)で描かれたジグザグ線401の一部のジグザグをやめて、平ら(x軸に平行に)にしたいと考えたときの、タッチペンの移動の軌跡を描いてある。本図に示すジグザグ線401をタッチペンで描いた後に、平らな線404を左から右へタッチペンで描いたものである。
このような操作を行うと、あるx座標に対するy座標の値としては、最後に入力されたものが有効となる。本図(d)では、実際に入力されるグラフの線405の形状の様子を示しており、平らにしたい部分が反映されている。
なお、後述する削除条件を採用しない場合は、平らな線404に沿ってタッチパネルを押圧するようにタッチペンを右から左へ移動させても、左から右へ移動させても、平らにしたい部分が反映されることになる。
図5は、タッチペンの移動の軌跡と、画面に表示される線の形状との関係を説明する説明図である。以下、本図を参照して説明する。
本図(a)〜(e)は、タッチペンが移動する様子を時系列順に示すものであり、矢印はタッチペンが移動する方向を表し、実線はタッチペンがタッチパネルを押圧操作しながら移動していることを、破線はタッチペンがタッチパネルから解放されて移動していることを、それぞれ示す。
一方、本図(A)〜(E)は、本図(a)〜(e)に対応して、時系列中のそれぞれの時点で、画面に表示される線の形状の様子を示すものである。
本図(a)のように、タッチペンを概ね左から右へ押圧移動させると、本図(A)のように、これと同じ形状の線の形状が描画される。本図(b)と本図(B)についても同様である。
この後、本図(c)に示すように、タッチペンをタッチパネルから離して、タッチペンを移動する。このとき、タッチペンはタッチパネルから離れているから、第1種指示操作入力はされないので、画面に表示される線の形状は、本図(B)と本図(C)とで同じになる。
たとえば、本図(B)に表示される線の形状は逆S字形のカーブをなしているが、その末端をペナント形状にしたくなった場合を考える。本実施形態では、本図(d)に示すように、タッチペンを右から左に移動して、ジグザグ線を描き始めるだけで良い。本図(D)は、このジグザグ線を描いている途中での表示例であり、グラフの線の形状は、一繋がりの線になっている。
本図(e)には、このままジグザグ線を描き続けた様子を示す。これに呼応して、本図(E)に示すように、一繋がりの線の形状が、画面に表示される。
このように、本実施形態では、おおまかなグラフの形状を描いた(本図(a)(b))後に、その一部をジグザグ線に修正したいときには、その区間に単純にジグザグ線を描くだけで(本図(d)(e))、グラフが一繋がりとなって得られる。この際に、ジグザグ線の開始点や終了点を、過去に描いたおおまかな線の上に重ねる必要はないため、ユーザは、修正が容易である。
さて、本実施形態では、横方向に時間軸をとったグラフのような線図の座標値を処理しているため、座標系として直交座標系を用い、第1座標値としてx座標の値、第2座標値としてy座標の値をそれぞれ用いているが、用途によって、x座標やy座標を交換したり、斜交座標や極座標を採用したりしても良い。たとえば、円グラフを描く場合には、第1座標値として角度、第2座標値として半径を採用することができる。
このように、斜行座標や極座標におけるグラフの入力においては、座標軸が直交していなかったり曲線であったりするために、ユーザの入力にぶれが生じやすいが、本発明を適用した場合には、このようなぶれを適宜修正して、ユーザの希望に近い形状のグラフの座標値を取得することができるようになる。
(削除条件)
上記のように、削除条件が常に満たされないものとしても、グラフ線図を描いたり、これを修正する作業を十分に行うことができるが、グラフの一部を削除したいこともありうる。すなわち、途切れた線図を描きたい場合である。また、一旦余計なグラフを消去してから、新たに所望のグラフを書き直したいことも多い。そこで、以下では、簡単な操作でグラフ線図の一部を消去するための技術について説明する。
上記のように、グラフを描く場合には、タッチペンを押圧操作しながら左から右へ移動させる。そこで、本実施形態では、グラフを消去する場合には、消去したい範囲で、タッチペンを押圧操作しながら右から左へ移動させることとするのである。
ただし、ジグザグ線を描くような場合には、上述の通り、タッチペンが一瞬だけ右から左へ移動してしまうことがありうる。
これらを区別するため、タッチペンが一定時間の間、右から左へ、ほぼ水平に移動した場合には、グラフを消去するが、そうでない場合は、タッチペンが右から左へ移動したとしても、通常の座標値の入力として解釈するのである。このための判断基準が削除条件である。
この「一定時間」に相当するものは、本実施形態では、「M×垂直同期割り込み周期」である。すなわち、「M×垂直同期割り込み周期」の間、タッチペンが右から左へほぼ水平に移動した場合には、線の形状のうち、その右から左への移動の範囲だけを削除する。
本実施形態では、リングバッファを用いて、削除条件「M×垂直同期割り込み周期の間、タッチペンが右から左へほぼ水平に移動した」か否かを、以下のように検知する。
図6は、削除条件が成立するか否かを判断するステップS307と、成立した場合に実行される処理の詳細な制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本処理が開始されると、まず、n≧Mであるか否かを判断する(ステップS501)。n<Mである場合(ステップS501;No)、本処理を終了し、ステップS308に進む。
一方、n≧Mである場合(ステップS501;Yes)、リングバッファ内に、現在までのM×垂直同期割り込み周期の間のタッチペンの移動の座標の履歴は、リングバッファ内に時間順に、
(x1,y1) = (R[(p-M) mod M].x,R[(p-M) mod M].y),
(x2,y2) = (R[(p-M+1) mod M].x,R[(p-M+1) mod M].y),
…,
(xi,yi) = (R[(p-M-1 + i) mod M].x,R[(p-M-1 + i) mod M].y),
…,
(xM,yM) = (R[(p-1) mod M].x,R[(p-1) mod M].y)
のように格納されていることになる。
また、所定の鈍角θ(典型的には、170度〜180度程度の範囲の間。)を用いて、x軸の向きと、タッチペンが移動した向きとがこの鈍角θ以上のときに、タッチペンが水平に移動しているものと判断する。
そこで、i = 1,2,…,M-1について、iを変化させながら、以下の処理を繰り返す(ステップS502)。
まず、xi+1<xi かつ |(yi+1-yi)/(xi+1-xi)|≦tanθであるか否か、すなわち、履歴のi番目からi+1番目についてのタッチペンの移動の方向ベクトル
(xi+1-xi,yi+1-yi)
がx軸正の方向と鈍角θ以上をなし、ほぼ水平方向逆向きに移動したか否かを判断する(ステップS503)。
この条件が成立していなければ(ステップS503;No)、本処理を終了して、ステップS308に進む。一方、この条件が成立していれば(ステップS503;Yes)、ステップS502〜ステップS504の処理を繰り返す。
i = 1,2,…,M-1のすべてについて上記の条件が成立したときは、削除条件が成立したことになり、ステップS505に進む。
削除条件が成立している場合、
xM<xM-1<…<x2<x1
であるから、最近のM個の履歴におけるx座標の最大値はx1、x座標の最小値はxMである。
そこで、i = xM,xM+1,…,x1-1,x1のそれぞれについて、以下の処理を繰り返す(ステップS505)。
すなわち、座標記憶部203において、
F[i] = 255
を実行する(ステップS506)ことを、繰り返すのである(ステップS507)。
この処理によって、線の形状からx座標がxM以上x1以下の区間が除去され、多くの場合、線が分断されることになる。
繰り返し(ステップS505〜ステップS507)が終了したら、本処理を終了して、ステップS319に進む。
図7は、タッチペンを右から左に移動する操作をユーザが行った場合に入力される線の形状を示す説明図である。以下、本図を参照して説明する。
本図(a)には、ユーザが行ったタッチペンの移動の経路を示す。図4におけるものと同様のジグザグ線401に沿ってタッチペンでタッチパネルを押圧操作しながら移動させた後、タッチペンをタッチパネルから外して、さらにペンを置き、右から左へのほぼ水平な消去指示線601に沿ってタッチペンでタッチパネルを押圧操作しながら移動させ、その後にタッチペンを外したときの「押圧操作経路の履歴」が示されている。
本図(b)は、ジグザグ線401に沿ってタッチペンでタッチパネルを押圧操作しながら移動させた直後に、線形状処理装置によって表示されるグラフの線403の形状の「画面表示例」を示すものである。図4(b)と同様の形状が表示されている。本図には、タッチペンがタッチパネルをなぞった履歴であるジグザク線401に応じたグラフの線403の形状が、表示例として示されている。
本図(c)は、さらにその後に、消去指示線601に沿ってタッチペンでタッチパネルを押圧操作しながら移動させた直後に、線形状処理装置によって表示されるグラフの線603の線の形状の「画面表示例」を示すものである。本図に示すように、グラフの線603の線の形状は、途中で分断されている。
これは、消去指示線601に沿って水平にある程度の時間連続してタッチペンでタッチパネルを押圧操作しながら移動させると、グラフの線403の形状のうち、当該移動区間の水平範囲が削除されるからである。
このように、本実施形態によれば、簡単な操作で、線の形状から一部の区間を削除することができ、ユーザは容易に線の形状を修正、編集することができるようになる。
(座標値に対する種々の処理)
以下では、特に株の価格変動を示す場合に用いられる線の形状を検出する技術について説明する。本技術は、上記のような技術によって入力された線の形状が、株の価格の時間経過をあらわすグラフだと考えたときに、株の価格変化の特徴を検出することに適用することができる。
このような株の価格変化に特徴的な形状には、ペナントとフラッグと呼ばれるものがある。図8は、ペナントとフラッグの形状を表す説明図である。以下、本図を参照して説明する。
本図(a)(b)(c)は、ペナントと呼ばれる形状であり、当初は値動きが激しいが、時間が経過するにつれて値が次第に収束するような形状である。すなわち、価格が振動しながら(ジグザグになりながら)、その振動幅が次第に狭まっていく形状である。さらに、平均的な値がほぼ一定のときは単に「ペナント」もしくは「水平ペナント」(本図(a))、上昇しているときは「上昇ペナント」(本図(b))、下降しているときは「下降ペナント」(本図(c))のように呼ぶ。
一方、本図(d)(e)(f)は、フラッグと呼ばれる形状であり、ほぼ同じ値動きの変動幅が維持される形状である。すなわち、ほぼ一定の振動幅で振動する(ジグザグになる)形状である。さらに、平均的な値がほぼ一定のときは単に「フラッグ」もしくは「水平フラッグ」(本図(d))、上昇しているときは「上昇フラッグ」(本図(e))、下降しているときは「下降フラッグ」(本図(f))のように呼ぶ。
ペナントやフラッグは、株価の変動においては、もっとも直近(最近)に生じたものが重要である。したがって、ペナントやフラッグを検出する際には、これらがグラフの終端近傍に存在するか否か(上記実施形態でいえば、x座標が一番大きいところで当該形状を呈するか否か)、を検出する必要がある。
さて、上記実施形態においては、線の形状が座標記憶部203の配列Fに記憶されている。したがって、この配列Fの内容を吟味することで、ペナントやフラッグを検出することができる。以下、この検出を行う処理の詳細について説明する。
本実施形態では、線の形状の極大点、極小点、および、その時のx座標の広がりから、ペナントもしくはフラッグの確認を行う。図9は、線の形状にペナントやフラッグの形状があるか否かを検出するための検出処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
本処理においては、以下のような定数および一時変数を用いる。
定数W。極大点を2W個、極小点を2W個抽出するために用いる。
極大点のx座標値およびy座標値の部分和および平均を、前半と後半に分けて記憶するための配列AX,AY。いずれも要素は2つである。
極小点のx座標値およびy座標値の部分和および平均を、前半と後半に分けて記憶するための配列IX,IY。いずれも要素は2つである。
2W個の極大点および極小点のx座標の広がりが、ペナントもしくはフラッグに相当すると考えられるための閾値定数Z。x座標の広がりがZ以下であれば、激しく値が上下していることになり、ペナントもしくはフラッグであると考えるが、そうでなければ、ゆるやかに値が上下していることになり、ペナントでもフラッグでもないことになる。
本処理が開始されると、CPU 102は、RAM 103にアクセスして、配列AX,AY,IX,IYを初期化する(ステップS801)。具体的には、i = 0,1のそれぞれについて、AX[i] ← 0,AY[i] ← 0,IX[i] ← 0,IY[i] ← 0を実行する。
次に、現在までに検出された極大点および極小点の数をカウントするための変数mを初期化する(ステップS802)。具体的には、m ← 0を実行する。
さらに、i = 318,317,…,2,1について、iの値を1ずつ減らしながら、以下の処理を繰り返す(ステップS803)。
まず、F[i-1] < F[i]かつF[i] > F[i+1]であるか否か、すなわち、極大点か否かを判定する(ステップS804)。そうであれば(ステップS804;Yes)、AX[m/(4W)] ← AX[m/(4w)]+i,AY[m/(4W)] ← AY[m/(4w)]+F[i]を実行して(ステップS805)、極大点のx座標値とy座標値を積算する。なお、「a/b」は、aをbで割った整数除算(余りを切り捨てる割り算)を意味する。
そして、m ← m+1を実行して(ステップS806)、m ≧ 4Wであれば(ステップS807;Yes)、繰返しを抜けてステップS820に進み、そうでなければ(ステップS807;No)、次の繰返しに移る(ステップS808)。
一方、極大点でなければ(ステップS804;No)、F[i-1] > F[i]かつF[i] < F[i+1]であるか否か、すなわち、極小点であるか否かを判定する(ステップS809)。そうであれば(ステップS809;Yes)、IX[m/(4W)] ← IX[m/(4w)]+i,IY[m/(4W)] ← IY[m/(4w)]+F[i]を実行して(ステップS810)、極小点のx座標値とy座標値を積算する。そして、ステップS806に進む。
さて、繰返し(ステップS803〜ステップS808)が単純に終了したときは、検出された極大点および極小点の総数が少なかったことになるため、線の形状はペナントでもフラッグでもない旨を出力して(ステップS811)、本処理を終了する。当該出力先は、RAM 103内の情報格納場所として他の機能単位に処理させることとしても良いし、ユーザに提示することとしても良い。
一方、繰返しの途中で抜けた場合には(ステップS807;Yes)、i = 0,1のそれぞれについて、以下の処理を繰り返す(ステップS820)。すなわち、AX[i] ← AX[i]/W,AY[i] ← AY[i]/W,IX[i] ← IX[i]/W,IY[i] ← IY[i]/Wを実行して(ステップS821)、繰り返しを行う(ステップS822)。
なお、ステップS803〜ステップS808の繰返しでは、iの値を1ずつ減らされていく一方で、mの値は1ずつ増えていく。AX,AY,IX,IYの添字が小さい要素には、グラフにおいてiの値が大きい側(右側、すなわち直近の側)の情報が蓄積されており、AX,AY,IX,IYの添字が大きい要素には、グラフにおいてiの値が小さい側(右側、すなわち過去の側)の情報が蓄積されている。したがって、ステップS822の後は、
(AX[0],AY[0]) … 直近の極大点の平均(重心)
(AX[1],AY[1]) … 以前の極大点の平均(重心)
(IX[0],IY[0]) … 直近の極小点の平均(重心)
(IX[1],IY[1]) … 以前の極小点の平均(重心)
となる。
図10は、極大点、極小点および各重心の位置の関係を示す説明図である。本図では、W = 2の場合について図示している。以下、本図を参照して説明する。
本図に示すように直近から過去に向けて極大点931、921、911、901および極小点936、926、916、906が検出されている。
時系列に沿ってグラフを描く場合、左から右に時間が進むように描くことが一般に行われているため、画面右側の方が「直近」であり、画面左側の方が「過去」に相当する。
そして、過去の極大点の重心961は、極大点901、911の中点にあり、直近の極大点の重心971は、極大点921、931の中点にあり、過去の極小点の重心966は、極大点906、916の中点にあり、直近の極小点の重心976は、極大点926、936の中点にある。
これらの重心961、966、971、976の位置関係によって、ペナントか、フラッグか、上昇か下降か水平か、などを判断するのである。
まず、AX[0]-AX[1]<ZかつIX[0]-IX[1]<Zであるか否かを調べる(ステップS823)。そうでなければ(ステップS823;No)、値動きの時間変化が激しくないことになるので、ステップS811に進む。
一方、そうであれば(ステップS823;Yes)、AY[0]-IY[0]とAY[1]-IY[1]を比較する(ステップS824)。前者が後者より小さければ(ステップS824;<)、「ペナント」である旨を出力し(ステップS825)、前者が後者と(ほぼ)等しければ(ステップS824;=)、「フラッグ」である旨を出力し(ステップS826)、前者が後者より大きければ(ステップS824;>)、「ノーマル」である旨を出力する(ステップS831)。ここで「ノーマル」とは、「ペナント」でも「フラッグ」でもないことを意味する。
さらに、AY[0]+IY[0]とAY[1]+IY[1]を比較する(ステップS827)。前者が後者より大きければ(ステップS827;>)、「上昇」である旨を出力し(ステップS828)、前者が後者より小さければ(ステップS827;<)、「下降」である旨を出力し(ステップS829)、前者が後者と(ほぼ)等しければ(ステップS827;=)、「水平」である旨を出力して(ステップS830)、本処理を終了する。
なお、ステップS824およびS827における比較においては、いずれも、所定の誤差を考慮して、2つの値が当該誤差範囲内に納まれば、「(ほぼ)等しい」と判断することとするのが典型的である。
また、本実施形態では、ステップS831において「ノーマル」と出力した後にステップS827に進むこととしているが、そのかわりにステップS831からステップS811に進むこととして、「ノーマル」の場合には「上昇」「下降」「水平」の判断は行わないこととしても良い。
本処理によれば、特に株の価格変動を示す場合に用いられる線の形状を検出することができるようになる。
(線の形状の類似度)
上記実施形態では、極大点や極小点の平均位置(重心)を用いて、線の形状の特徴を抽出していたが、複数の線同士の類似度を求めたい場合も多い。たとえば、時間経過に伴う株価の変化をユーザがタッチペンを用いて入力し、その変化に類似する株式を検索する、などの応用を考える場合には、上記のように抽出された特徴を適切に利用して、線の形状の類似度を求める必要がある。以下では、このような線の形状の類似度を求める技術について説明する。
2つの線の形状を比較するためには、まず、その2つの線に対して適切な正規化を行う必要がある。以下、上記の実施形態に沿って、水平方向の右から左にx軸が設定され、垂直方向の下から上にy軸が設定され、このx−y平面内に、対比される線が配置されている場合を考える。
まず、2つの線の横幅(x軸方向の幅)が異なる場合には、一方を横方向(x軸方向)に拡大もしくは縮小して、2つの線の横幅を等しくするように、変換を加える。このとき、両者の長さの比がある定数(たとえば2や3や5。)よりも大きかったり、別の定数(たとえば0.5や0.333や0.2。)よりも小さかったりした場合には、2つの線は大きさが違い過ぎるため、「類似判定不能」あるいは「類似していない」と判断することが望ましい。
また、線が途中で途切れている場合には、途切れている間を適当に補間(単に線分で結んだり、スプライン補間する等の手法を採用することができる。)しても良いし、複数の線のうち直近のもの(最も右側にあるもの)を選択しても良い。
また、横方向への拡大もしくは縮小は、両方の線に対して行うこととしても良く、両方の線を縮小するのが典型的である。
たとえば、上記の実施形態では、i = 0,…,319について値F[i]が座標記憶部203に記憶されているが、これを幅Wに縮小し、k = 0,1,…,W-1について値f[k]が定められるようにするには、
f[k] = Σi=0 W/320 F[kW/320 + i](W/320)
のように計算して、kに対する値f[k]が、区間i = kW/320,kW/320+1,…,(k+1)W/320 - 1に対する値F[i]の平均値となるような変形を行えばよい。
以下、理解を容易にするため、いずれの線の形状についても、適切な選択や変換を行って、線は途中で途切れず、幅はWに正規化されているものとする。
そして、2つの線について、それぞれ正規化された結果が、RAM 103内の要素数Wの配列f,gに格納されているものとする。また、当該配列名f,gによって、線そのものを意味するものとする。
次に、2つの線f,gのy軸方向の高さを揃えるため、それぞれの重心を求める。上記実施形態では、x座標値iでのy座標値がそれぞれf[i],g[i]であるから、それぞれの重心のy軸方向の高さp,qは、
p = Σi=0 W-1 F[i]/W
q = Σi=0 W-1 G[i]/W
により求めることができる。
すると、高さを揃えたときに、同じx座標値[i]における2つの線f,gの高さの差Δ[i]は、
Δ[i] = (F[i]-p) - (G[i]-q)
により計算できる。
さて、2つの線f,gの類似度L(f,g)については、自乗和を利用した以下のような計算式を用いる手法が考えられる。
L(f,g) = Σi=0 W-1 Δ[i]2
すなわち、L(f,g)が小さければ小さいほど、2つの線f,gは類似している、と考えるのである。
しかしながら、株価の変動のように、フラッグであるかペナントであるか、や、直近の価格の変動が重要視される。一方で、上記のように、幅320の情報を幅Wに圧縮することは、いわゆる高周波成分を除去することに相当し、高周波成分そのものであるフラッグやペナントの情報そのものが落ちてしまう。
そこで、2つの線f,gの圧縮前の線F,Gのそれぞれが、上記の実施形態の技術により「フラッグ」「ペナント」「非フラッグ・非ペナント(以下「ノーマル」という。)」のいずれであるかをあらかじめ判定しておき、その情報を用いて、類似度を計算することが望ましい。
そのために、以下のようなW個の正の値の重みパラメータを用いる。
w[0],w[1],…,w[W-1]
この重みパラメータは、2つの線f,gの変換前の元の線F,Gの形状が、「フラッグ」「ペナント」「ノーマル」か否かによって、定数N (0<N<W)を用いて、以下のような関係を持つ値とする。ここで、W-Nに相当する縮小前の幅は、上記実施形態におけるZに相当するものとすることが望ましい。
(1)両者が「ノーマル」である場合は、
w[0] = w[1] = … w[N-1] = 1 = w[N] = W[N+1] = … = W[W-1] = 1
(2)両者が「フラッグ」である場合、もしくは、両者が「ペナント」である場合は、
w[0] = w[1] = … w[N-1] = 1 > w[N] = W[N+1] = … = W[W-1] = ffpp = 0.5
(3)一方が「ノーマル」、他方が「フラッグ」もしくは「ペナント」である場合は、定数N (0<N<W)により、
w[0] = w[1] = … w[N-1] = 1 < w[N] = W[N+1] = … = W[W-1] = nfp = 2
(4)一方が「フラッグ」、他方が「ペナント」である場合は、定数N (0<N<W)により、
w[0] = w[1] = … w[N-1] = 1 < w[N] = W[N+1] = … = W[W-1] = fp = 0.8
そして、類似度を、以下のように定める。
L(f,g) = Σi=0 W-1 w[i]Δ[i]2
すなわち、フラッグやペナントが存在しうる区間i = N,N+1,…,W-1について、上記のように重みを適宜変化させることで、線の形状の変化を類似度に反映させるのである。
なお、上記のように、変化させる重みについては、ffpp = 0.5,nfp = 2,fp = 0.8としているが、これらの大小関係については、
ffpp < fp < 1 < nfp
のような関係が成立していれば、上記の定数以外にも種々の定数を採用することができる。また、w[N],w[N+1],…,w[W-1]が、1からffpp,fp,nfpに向かって単調に変化していくようなパラメータ設定を採用しても良い。
このように、2つの線F,Gの形状について、その高周波成分を除去した配列f,gを考え、F,Gのそれぞれについて検出された「フラッグ」「ペナント」「ノーマル」の形状特性に基づいて重みwを定め、これらの情報に基づいて類似度L(f,g)を計算することにより、両者がどれだけ似ているかを判定することができる。
したがって、あらかじめ複数の線G1,…,GDの形状データが存在する場合にも、そのそれぞれについてユーザが入力した線の形状Fとの類似度を計算し、類似度の小さい順にソートすることによって、G1,…,GDの中から、Fに形状が類似しているものをユーザに適切に提示し、場合によっては選択させることができるようになる。
図11は、このような態様を実現する線形状処理装置の概要構成を示す模式図である。以下本図を参照して説明する。なお、本図における各要素のうち、図2に示すものと同様の機能を果たすものについては、同じ符号を付すこととしており、理解を容易にするため、異なる機能を有する要素について説明を加えるものとする。
線形状処理装置201は、上記実施形態に加えて、候補記憶部991、類似抽出部992、提示部993を備える。
候補記憶部991は、複数の線G1,…,GDの形状のデータをあらかじめ記憶するもので、株価変動のデータベースに相当するものである。なお、これらのデータは時間とともに更新されるものとしても良いが、計算機シミュレーションなどの用途のために固定値を採用するときには、それぞれの形状について、あらかじめ、「フラッグ」か「ペナント」か「ノーマル」かを判定しておくとともに、所定の幅Wに変換した後の配列g1,…,gDもあらかじめ用意しておくと、類似度計算を容易に行うことができる。
一方、類似抽出部992は、ユーザが入力した線Fの形状に対して検出部207が行った「フラッグ」「ペナント」「ノーマル」の検出結果を用いるとともに、上記のような重み付けをおこなった類似度計算処理に基づいて、座標記憶部203に記憶されている線Fの形状、を対比して、複数の線G1,…,GDをソートする、あるいは、順次類似度を計算し、これまでに計算された類似度と対比して、値が小さいものを所定の個数まで残すようにして、複数の線G1,…,GDから、線Fに類似するものを所定の個数抽出する。
さらに、提示部993は、線Fに類似するとして抽出された上位の所定の順位までの線の情報をユーザに提示して、後の処理に備える。たとえば、当該抽出された線とともに当該線に対応付けられる株の銘柄の概要情報を表示する。そして、これらの抽出されたものの中からいずれかをユーザが選択した場合には、選択された線に対応付けられる株の銘柄の詳細情報を提示する、等である。
本実施形態によれば、株価の変動などをグラフで表現するときに、注目すべき事項に基づいてグラフの類似度を計算することができ、株価の変動に基づいて、ユーザが所望の銘柄を検索しやすくすることができる。
以上説明したように、本発明によれば、マウスやタッチパネル等により線の形状の入力を受け付け、当該線の形状を処理するのに好適な、線形状処理装置、線形状処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
本発明に係る線形状処理装置が実現される一般的な情報処理装置の概要構成を示す説明図である。 本実施形態に係る線形状処理装置の概要構成を示す説明図である。 本実施形態の線形状処理装置にて実行される座標値入力表示処理の制御の流れを示すフローチャートである。 押圧操作されたタッチペンの移動の軌跡と、これに対して表示されるグラフ線の形状の様子を示す説明図である。 タッチペンの移動の軌跡と、画面に表示される線の形状との関係を説明する説明図である。 削除条件が成立するか否かを判断し、成立した場合に実行される処理の詳細な制御の流れを示すフローチャートである。 タッチペンを右から左に移動する操作をユーザが行った場合に入力される線の形状を示す説明図である。 ペナントとフラッグの形状を表す説明図である。 線の形状にペナントやフラッグの形状があるか否かを検出するための検出処理の制御の流れを示すフローチャートである。 極大点、極小点および各重心の位置の関係を示す説明図である。 本実施形態に係る線形状処理装置の概要構成を示す説明図である。
符号の説明
101 情報処理装置
102 CPU
103 RAM
104 ROM
105 入力装置
106 画像処理部
107 液晶ディスプレイ
108 音声処理部
109 スピーカ
110 カセットリーダ
111 ROMカセット
201 線形状処理装置
202 入力受付部
203 座標記憶部
204 履歴記憶部
205 表示部
206 削除部
207 検出部
401 ジグザグ線
402 重複部分
403 グラフの線
404 平らな線
405 グラフの線
601 消去指示線
603 グラフの線
901 極大点
906 極小点
911 極大点
916 極小点
921 極大点
926 極小点
931 極大点
936 極小点
961 過去の極大点の重心
966 過去の極小点の重心
971 直近の極大点の重心
976 直近の極小点の重心
991 候補記憶部
992 類似抽出部
993 提示部

Claims (10)

  1. 2次元領域内のそれぞれの位置が第1座標値と第2座標値とにより指定され、当該2次元領域内に配置される線の形状を処理する線形状処理装置であって、当該2次元領域内の第1座標値と、第2座標値と、のそれぞれには下限および上限があり、
    当該2次元領域内に配置される線に含まれる点の位置を指定する第1種指示入力と、当該第1種指示入力とは異なる第2種指示入力と、を受け付ける入力受付部、
    当該第1種指示入力の受付が続いて行われた場合、当該先の第1種指示入力に指定される開始位置の第1座標値から当該後の第1種指示入力に指定される終了位置の第1座標値までの間に含まれる第1座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第1座標値を有する点の第2座標値を、当該第1座標値に対応付けて記憶する記憶部、
    当該第1座標値の下限から上限へ昇順に、もしくは、上限から下限へ降順に、第1座標値を選択し、当該選択された第1座標値に対応付けられて前記記憶部に記憶された第2座標値を取得し、当該2次元領域内の当該取得された第2座標値が対応付けられる第1座標値と当該第2座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該2次元領域内に配置される線の形状を表示する表示部
    当該第1種指示入力の受付が続いて所定の回数行われ、かつ、当該続いて行われた第1種指示入力の互いに隣り合う第1種指示入力の対のすべてにおいて、当該対の先の第1種指示入力に指定される位置から当該対の後の第1種指示入力に指定される位置へのベクトルと、前記表示部において当該第1座標値が選択される順に当該第1座標値のみを変化させる方向のベクトルと、のなす角が所定の鈍角以上である場合、当該なす角が当該所定の鈍角以上である間続いて行われた第1種指示入力のそれぞれに指定される複数の第1座標値のうちの最小値と最大値を求め、当該最小値から当該最大値までの範囲に含まれる第1座標値に対応付けられて前記記憶部に記憶される第2座標値の値を、前記記憶部から削除する削除部
    を備えることを特徴とする線形状処理装置。
  2. 請求項1に記載の線形状処理装置であって、
    前記記憶部は、当該第2種指示入力の受付に続いて当該第1種指示入力の受付が行われた場合、当該第1種指示入力に指定される点の第2座標値を、当該点の第1座標値に対応付けて記憶する
    ことを特徴とする線形状処理装置。
  3. 請求項1または2に記載の線形状処理装置であって、
    前記入力受付部は、当該画面の表面に対する押圧操作を、当該押圧操作された位置に対応付けられる当該2次元領域内の位置を指定する第1種指示入力として受け付け、当該画面の表面からの離脱操作を、第2種指示入力として受け付ける
    ことを特徴とする線形状処理装置。
  4. 請求項1から3のいずれか1項に記載の線形状処理装置であって、当該第1座標値は整数により表現され、
    前記表示部は、当該描画される点の第1座標値と、その直前に描画された点の第1座標値と、が隣り合う場合、当該描画される点と、その直前に描画された点と、を結ぶ線分をさらに描画する
    ことを特徴とする線形状処理装置。
  5. 請求項4に記載の線形状処理装置であって、
    前記記憶部は、当該第1座標値をインデックスとする配列の要素として当該第2座標値、もしくは、当該第1座標値に対応付けられるべき第2座標値は削除されている旨を示す値を記憶し、
    前記表示部は、当該配列のインデックスが当該下限から当該上限まで昇順に、もしくは、当該上限から当該下限まで降順に、変化するように当該配列の要素を走査して、当該第1座標値に対応付けられる当該第2座標値を取得する
    ことを特徴とする線形状処理装置。
  6. 請求項1から5のいずれか1項に記載の線形状処理装置であって、
    当該2次元領域には、水平方向の座標軸と垂直方向の座標軸とが設定され、当該第1座標値は当該水平方向の座標軸に対する座標値であり、当該第2座標値は当該垂直方向の座標軸に対する座標値である
    ことを特徴とする線形状処理装置。
  7. 請求項1から5のいずれか1項に記載の線形状処理装置であって、
    当該2次元領域には、水平方向の座標軸と垂直方向の座標軸とが設定され、当該第1座標値は当該水平方向の座標軸に対する座標値であり、当該第2座標値は当該垂直方向の座標軸に対する座標値であり、
    前記表示部にて当該第1座標値が選択される順に沿って当該第1座標値のみを変化させる方向は、水平方向左から右である
    ことを特徴とする線形状処理装置。
  8. 請求項1から5のいずれか1項に記載の線形状処理装置であって、
    当該2次元領域には、極座標の座標系が設定され、当該第1座標値は当該極座標の角度に対する座標値であり、当該第2座標値は当該極座標の半径に対する座標値である
    ことを特徴とする線形状処理装置。
  9. 2次元領域内のそれぞれの位置が第1座標値と第2座標値とにより指定され、当該2次元領域内に配置される線の形状を処理する線形状処理方法であって、入力受付部、記憶部、表示部、削除部を有する線形状処理装置が実行し、当該2次元領域内の第1座標値と、第2座標値と、のそれぞれには下限および上限があり、
    前記入力受付部が、当該2次元領域内に配置される線に含まれる点の位置を指定する第1種指示入力と、当該第1種指示入力とは異なる第2種指示入力と、を受け付ける入力受付工程、
    当該第1種指示入力の受付が続いて行われた場合、前記記憶部に、当該先の第1種指示入力に指定される開始位置の第1座標値から当該後の第1種指示入力に指定される終了位置の第1座標値までの間に含まれる第1座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第1座標値を有する点の第2座標値を、当該第1座標値に対応付けて記憶させる記憶工程、
    前記表示部が、当該第1座標値の下限から上限へ昇順に、もしくは、上限から下限へ降順に、第1座標値を選択し、当該選択された第1座標値に対応付けられて前記記憶部に記憶された第2座標値を取得し、当該2次元領域内の当該取得された第2座標値が対応付けられる第1座標値と当該第2座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該2次元領域内に配置される線の形状を表示する表示工程、
    前記削除部が、当該第1種指示入力の受付が続いて所定の回数行われ、かつ、当該続いて行われた第1種指示入力の互いに隣り合う第1種指示入力の対のすべてにおいて、当該対の先の第1種指示入力に指定される位置から当該対の後の第1種指示入力に指定される位置へのベクトルと、前記表示工程において当該第1座標値が選択される順に当該第1座標値のみを変化させる方向のベクトルと、のなす角が所定の鈍角以上である場合、当該なす角が当該所定の鈍角以上である間続いて行われた第1種指示入力のそれぞれに指定される複数の第1座標値のうちの最小値と最大値を求め、当該最小値から当該最大値までの範囲に含まれる第1座標値に対応付けられて前記記憶部に記憶される第2座標値の値を、前記記憶部から削除する削除工程
    を備えることを特徴とする線形状処理方法。
  10. コンピュータに、2次元領域内のそれぞれの位置が第1座標値と第2座標値とにより指定され、当該2次元領域内に配置される線の形状を処理させるプログラムであって、
    当該2次元領域内の第1座標値と、第2座標値と、のそれぞれには下限および上限があり、
    当該プログラムは、当該コンピュータを、
    当該2次元領域内に配置される線に含まれる点の位置を指定する第1種指示入力と、当該第1種指示入力とは異なる第2種指示入力と、を受け付ける入力受付部、
    当該第1種指示入力の受付が続いて行われた場合、当該先の第1種指示入力に指定される開始位置の第1座標値から当該後の第1種指示入力に指定される終了位置の第1座標値までの間に含まれる第1座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第1座標値を有する点の第2座標値を、当該第1座標値に対応付けて記憶する記憶部、
    当該第1座標値の下限から上限へ昇順に、もしくは、上限から下限へ降順に、第1座標値を選択し、当該選択された第1座標値に対応付けられて前記記憶部に記憶された第2座標値を取得し、当該2次元領域内の当該取得された第2座標値が対応付けられる第1座標値と当該第2座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該2次元領域内に配置される線の形状を表示する表示部、
    当該第1種指示入力の受付が続いて所定の回数行われ、かつ、当該続いて行われた第1種指示入力の互いに隣り合う第1種指示入力の対のすべてにおいて、当該対の先の第1種指示入力に指定される位置から当該対の後の第1種指示入力に指定される位置へのベクトルと、前記表示部において当該第1座標値が選択される順に当該第1座標値のみを変化させる方向のベクトルと、のなす角が所定の鈍角以上である場合、当該なす角が当該所定の鈍角以上である間続いて行われた第1種指示入力のそれぞれに指定される複数の第1座標値のうちの最小値と最大値を求め、当該最小値から当該最大値までの範囲に含まれる第1座標値に対応付けられて前記記憶部に記憶される第2座標値の値を、前記記憶部から削除する削除部
    として機能させることを特徴とするプログラム。
JP2006172206A 2006-06-22 2006-06-22 線形状処理装置、線形状処理方法、ならびに、プログラム Expired - Fee Related JP4046753B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006172206A JP4046753B2 (ja) 2006-06-22 2006-06-22 線形状処理装置、線形状処理方法、ならびに、プログラム
EP07767273A EP2037351A4 (en) 2006-06-22 2007-06-20 LINEARFORM PROCESSING DEVICE, LINEARFORM PROCESSING METHOD, INFORMATION RECORDING MEDIUM AND PROGRAM
CNA2007800234303A CN101473291A (zh) 2006-06-22 2007-06-20 线形状处理装置、线形状处理方法、信息记录介质及程序
KR1020087031013A KR100984685B1 (ko) 2006-06-22 2007-06-20 선형상 처리장치, 선형상 처리방법 및 정보 기록 매체
PCT/JP2007/062435 WO2007148730A1 (ja) 2006-06-22 2007-06-20 線形状処理装置、線形状処理方法、情報記録媒体、ならびに、プログラム
US12/305,013 US8164578B2 (en) 2006-06-22 2007-06-20 Linear shape processing device, linear shape processing method, information recording medium, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006172206A JP4046753B2 (ja) 2006-06-22 2006-06-22 線形状処理装置、線形状処理方法、ならびに、プログラム

Publications (2)

Publication Number Publication Date
JP2008003823A JP2008003823A (ja) 2008-01-10
JP4046753B2 true JP4046753B2 (ja) 2008-02-13

Family

ID=38833470

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006172206A Expired - Fee Related JP4046753B2 (ja) 2006-06-22 2006-06-22 線形状処理装置、線形状処理方法、ならびに、プログラム

Country Status (6)

Country Link
US (1) US8164578B2 (ja)
EP (1) EP2037351A4 (ja)
JP (1) JP4046753B2 (ja)
KR (1) KR100984685B1 (ja)
CN (1) CN101473291A (ja)
WO (1) WO2007148730A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010046963A1 (ja) * 2008-10-20 2010-04-29 株式会社 Jsp データ検索システム、データ検索方法及びデータ検索プログラム
JP5039091B2 (ja) 2009-06-04 2012-10-03 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム制御方法、ならびに、プログラム
JP5029721B2 (ja) * 2010-03-25 2012-09-19 カシオ計算機株式会社 グラフ表示装置及びグラフ表示制御プログラム
US9405397B2 (en) * 2012-10-15 2016-08-02 Sharp Kabushiki Kaisha Touch panel-equipped display device and non-transitory computer-readable storage medium
CN106775429A (zh) * 2017-03-08 2017-05-31 青岛海信电器股份有限公司 一种基于触摸屏上画线存储的方法和装置
JP6922301B2 (ja) * 2017-03-22 2021-08-18 カシオ計算機株式会社 電子機器、グラフ描画システム、グラフ描画方法、及びプログラム
JP6930337B2 (ja) * 2017-09-27 2021-09-01 カシオ計算機株式会社 電子機器、移動経路記録方法、およびプログラム
CN113608499B (zh) * 2021-08-26 2022-08-26 江西理工大学 一种提升二维运动流畅程度的方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5894071A (ja) 1981-11-30 1983-06-04 Nec Home Electronics Ltd 座標検出装置
JPH0764696A (ja) 1993-08-26 1995-03-10 Toshiba Corp 座標検出装置の誤測定データ除去装置及び方法
JP3535624B2 (ja) 1995-09-21 2004-06-07 キヤノン株式会社 検索装置及び方法
JPH09114591A (ja) * 1995-10-12 1997-05-02 Semiconductor Energy Lab Co Ltd 液晶表示装置及びその表示方法
JPH09319494A (ja) 1996-05-31 1997-12-12 Toshiba Corp タブレットを有する情報処理装置及び座標データ入力制御方法
US6289112B1 (en) * 1997-08-22 2001-09-11 International Business Machines Corporation System and method for determining block direction in fingerprint images
JPH11212714A (ja) 1998-01-27 1999-08-06 Sanyo Electric Co Ltd 座標検出装置および座標検出方法
JP3513490B2 (ja) 2000-12-27 2004-03-31 株式会社セルシス 記録媒体、画像処理装置および方法
JP2003051014A (ja) 2001-08-03 2003-02-21 Canon Inc 情報処理装置及び方法
JP2003114760A (ja) 2001-10-05 2003-04-18 Konami Computer Entertainment Japan Inc ポインタの制御方法および装置
JP4029012B2 (ja) 2002-06-21 2008-01-09 日立ソフトウエアエンジニアリング株式会社 座標列取得方法
US7149356B2 (en) * 2002-07-10 2006-12-12 Northrop Grumman Corporation System and method for template matching of candidates within a two-dimensional image
US7116844B2 (en) * 2002-08-09 2006-10-03 Celsys Co., Ltd. Method for generating vector data for a hand-drawn curve
US6912309B2 (en) * 2003-03-06 2005-06-28 Lockheed Martin Corporation Method and system for identifying objects in an image
JP4492036B2 (ja) * 2003-04-28 2010-06-30 ソニー株式会社 画像認識装置及び方法、並びにロボット装置
JP4681868B2 (ja) 2004-12-16 2011-05-11 キヤノン株式会社 情報処理装置及びその制御方法、コンピュータプログラム及び記憶媒体

Also Published As

Publication number Publication date
EP2037351A4 (en) 2009-09-09
CN101473291A (zh) 2009-07-01
KR20090027652A (ko) 2009-03-17
KR100984685B1 (ko) 2010-10-01
JP2008003823A (ja) 2008-01-10
EP2037351A1 (en) 2009-03-18
US8164578B2 (en) 2012-04-24
US20090201262A1 (en) 2009-08-13
WO2007148730A1 (ja) 2007-12-27

Similar Documents

Publication Publication Date Title
JP4046753B2 (ja) 線形状処理装置、線形状処理方法、ならびに、プログラム
JP5668365B2 (ja) 描画処理システム、サーバ装置、ユーザ端末、描画処理方法、プログラム及び記録媒体
US8847978B2 (en) Information processing apparatus, information processing method, and information processing program
US8896606B2 (en) Touch screen and display method
JP4177335B2 (ja) 手書き文字入力装置および手書き文字入力処理方法
JP5033216B2 (ja) コンピュータグラフィックスシステムにおける立方ベジェ制御点の生成
JP3938928B1 (ja) 線形状処理装置、線形状処理方法、ならびに、プログラム
JP2008134918A (ja) 画像処理装置及び画像処理決定方法
US11402923B2 (en) Input method, apparatus based on visual recognition, and electronic device
KR101690254B1 (ko) 이미지 처리 장치의 사용자 인터페이스 처리 방법 및 장치
JP2016212887A (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
WO2007094411A1 (ja) 軌跡情報処理装置、軌跡情報処理方法、情報記録媒体、ならびに、プログラム
KR20220110493A (ko) 비디오의 객체 표시 방법 및 장치, 전자 장치 및 컴퓨터 판독 가능 저장 매체
JP6432449B2 (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
JP2626528B2 (ja) 図形認識装置
JP2001075721A (ja) 図形入力装置及びその方法と図形入力のためのプログラムを記録した記録媒体
JP4940911B2 (ja) 画像処理装置及び画像処理選択方法
JP2018163441A (ja) 画像処理装置、及びプログラム
EP4073624B1 (en) Systems and methods for grid-aligned inking
JPH08212306A (ja) 筆跡データ間引き方法、辞書作成方法及び文字認識装置
JP2017142572A (ja) ユーザ・インタフェース画像表示方法およびプログラム
JPH09319494A (ja) タブレットを有する情報処理装置及び座標データ入力制御方法
JP2003248830A (ja) 指紋画像解析装置及び入力装置
CN112639710A (zh) 页面操作方法、电子装置及计算机可读存储介质
JP2010271821A (ja) ポリライン生成方法及びポリライン生成システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071120

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101130

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111130

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121130

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131130

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees