(57)【要約】 【課題】マウスやタッチパネル等により線の形状の入力を受け付け、当該線の形状を処理するのに好適な、線形状処理装置を提供する。【解決手段】線形状処理装置２０１において入力受付部２０２は、タッチペンがタッチパネルを押圧しているか否か、および、押圧しているときの位置の情報の入力を受け付け、押圧していることが続いた場合、座標記憶部２０３には、直前に押圧していた場所と現在押圧している場所とを結ぶ線分に含まれる位置のそれぞれについて、当該位置のｘ座標に対応付けて当該位置のｙ座標の値を記憶し、表示部２０５は、座標記憶部２０３に記憶されたｘ座標とｙ座標をｘ座標の順に取得して、画面内のｘ座標とｙ座標で表される位置に点を描画して、線の形状を表示する。【選択図】図２
2008003823.tif 000002
【特許請求の範囲】
【請求項１】
２次元領域内のそれぞれの位置が第１座標値と第２座標値とにより指定され、当該２次元領域内に配置される線の形状を処理する線形状処理装置であって、
当該２次元領域内に配置される線に含まれる点の位置を指定する第１種指示入力と、当該第１種指示入力とは異なる第２種指示入力と、を受け付ける入力受付部、
当該第１種指示入力の受付が続いて行われた場合、当該先の第１種指示入力に指定される開始位置の第１座標値から当該後の第１種指示入力に指定される終了位置の第１座標値までの間に含まれる第１座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第１座標値を有する点の第２座標値を、当該第１座標値に対応付けて記憶する記憶部、
前記記憶部に第１座標値に対応付けられて記憶された第２座標値を、当該第１座標値に対する所定の順序で取得し、当該２次元領域内の当該取得された第２座標値が対応付けられる第１座標値と当該第２座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該２次元領域内に配置される線の形状を表示する表示部
を備えることを特徴とする線形状処理装置。
【請求項２】
請求項１に記載の線形状処理装置であって、
前記記憶部は、当該第２種指示入力の受付に続いて当該第１種指示入力の受付が行われた場合、当該第１種指示入力に指定される点の第２座標値を、当該点の第１座標値に対応付けて記憶する
ことを特徴とする線形状処理装置。
【請求項３】
請求項１または２に記載の線形状処理装置であって、
前記入力受付部は、当該画面の表面に対する押圧操作を、当該押圧操作された位置に対応付けられる当該２次元領域内の位置を指定する第１種指示入力として受け付け、当該画面の表面からの離脱操作を、第２種指示入力として受け付ける
ことを特徴とする線形状処理装置。
【請求項４】
請求項１から３のいずれか１項に記載の線形状処理装置であって、
当該第１種指示入力の受付が続いて所定の回数行われた場合、当該続いて行われた第１種指示入力の互いに隣り合う第１種指示入力の対のすべてにおいて、当該対の先の第１種指示入力に指定される位置から当該対の後の第１種指示入力に指定される位置へのベクトルと、当該２次元領域において当該第１座標値のみを当該所定の順序で変化させる方向のベクトルと、のなす角が所定の鈍角以上である場合、当該続いて行われた第１種指示入力のそれぞれに指定される第１座標値の最小値から最大値までの範囲に含まれる第１座標値に対応付けられて前記記憶部に記憶される第２座標値の値を、前記記憶部から削除する削除部
をさらに備えることを特徴とする線形状処理装置。
【請求項５】
請求項１から４のいずれか１項に記載の線形状処理装置であって、当該第１座標値は整数により表現され、
前記表示部は、当該描画される点の第１座標値と、その直前に描画された点の第１座標値と、が隣り合う場合、当該描画される点と、その直前に描画された点と、を結ぶ線分をさらに描画する
ことを特徴とする線形状処理装置。
【請求項６】
請求項５に記載の線形状処理装置であって、
前記記憶部は、当該第１座標値をインデックスとする配列の要素として当該第２座標値、もしくは、当該第１座標値に対応付けられるべき第２座標値は削除されている旨を示す値を記憶し、
前記表示部は、当該配列のインデックスが当該所定の順序に変化するように当該配列の要素を走査して、当該第１座標値に対応付けられる当該第２座標値を取得する
ことを特徴とする線形状処理装置。
【請求項７】
請求項１から６のいずれか１項に記載の線形状処理装置であって、
当該２次元領域には、水平方向の座標軸と垂直方向の座標軸とが設定され、当該第１座標値は当該水平方向の座標軸に対する座標値であり、当該第２座標値は当該垂直方向の座標軸に対する座標値である
ことを特徴とする線形状処理装置。
【請求項８】
請求項４から６のいずれか１項に記載の線形状処理装置であって、
当該２次元領域には、水平方向の座標軸と垂直方向の座標軸とが設定され、当該第１座標値は当該水平方向の座標軸に対する座標値であり、当該第２座標値は当該垂直方向の座標軸に対する座標値であり、
当該第１座標値のみを当該所定の順序で変化させる方向は、水平方向左から右である
ことを特徴とする線形状処理装置。
【請求項９】
請求項１から６のいずれか１項に記載の線形状処理装置であって、
当該２次元領域には、極座標の座標系が設定され、当該第１座標値は当該極座標の角度に対する座標値であり、当該第２座標値は当該極座標の半径に対する座標値である
ことを特徴とする線形状処理装置。
【請求項１０】
２次元領域内のそれぞれの位置が第１座標値と第２座標値とにより指定され、当該２次元領域内に配置される線の形状を処理する線形状処理方法であって、入力受付部、記憶部、表示部を備える線形状処理装置にて実行され、
前記入力受付部が、当該２次元領域内に配置される線に含まれる点の位置を指定する第１種指示入力と、当該第１種指示入力とは異なる第２種指示入力と、を受け付ける入力受付工程、
前記記憶部が、当該第１種指示入力の受付が続いて行われた場合、当該先の第１種指示入力に指定される開始位置の第１座標値から当該後の第１種指示入力に指定される終了位置の第１座標値までの間に含まれる第１座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第１座標値を有する点の第２座標値を、当該第１座標値に対応付けて記憶する記憶工程、
前記表示部が、前記記憶部に第１座標値に対応付けられて記憶された第２座標値を、当該第１座標値に対する所定の順序で取得し、当該２次元領域内の当該取得された第２座標値が対応付けられる第１座標値と当該第２座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該２次元領域内に配置される線の形状を表示する表示工程
を備えることを特徴とする線形状処理方法。
【請求項１１】
コンピュータに２次元領域内のそれぞれの位置が第１座標値と第２座標値とにより指定され、当該２次元領域内に配置される線の形状を処理させるプログラムであって、当該プログラムは、当該コンピュータを、
当該２次元領域内に配置される線に含まれる点の位置を指定する第１種指示入力と、当該第１種指示入力とは異なる第２種指示入力と、を受け付ける入力受付部、
当該第１種指示入力の受付が続いて行われた場合、当該先の第１種指示入力に指定される開始位置の第１座標値から当該後の第１種指示入力に指定される終了位置の第１座標値までの間に含まれる第１座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第１座標値を有する点の第２座標値を、当該第１座標値に対応付けて記憶する記憶部、
前記記憶部に第１座標値に対応付けられて記憶された第２座標値を、当該第１座標値に対する所定の順序で取得し、当該２次元領域内の当該取得された第２座標値が対応付けられる第１座標値と当該第２座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該２次元領域内に配置される線の形状を表示する表示部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マウスやタッチパネル等により線の形状の入力を受け付け、当該線の形状を処理するのに好適な、線形状処理装置、線形状処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、タッチパネルやマウス等、所定の２次元領域内の点の位置を２つの座標値（典型的には、ｘ座標とｙ座標の値。）で指定する指示入力を受け付けて、この座標値を処理する技術が提案されている。このような技術については、たとえば、以下の文献に開示されている。
【特許文献１】特開２００３−１１４７６０号公報
【０００３】
[特許文献１]には、マウスポインタの位置を移動させる際に、単位操作量あたりのポインタの移動距離より小さい単位操作量あたりの移動距離でポインタを移動制御することによって、ポインタの精密な位置移動を行う技術が開示されている。
【０００４】
一方で、このようなタッチパネルやマウスを用いた座標値の入力によって、各種の曲線を画面に描く技術も広く用いられている。
【０００５】
また、時間の経過にともなう株価や体重の変化などを、時間を横軸（ｘ座標）、その時点での値を縦軸（ｙ座標）とするグラフで描くことも、広く行われている。このグラフを表す線の形状は、線に含まれる点の位置が第１座標値と第２座標値（本例では、それぞれｘ座標値とｙ座標値に対応する。）によって指定され、y = f(x)のような陽関数の形式で、第１座標値xに対して第２座標値yが唯一つに決まる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、このような制約条件を持つような線の形状の入力を受け付けて種々の処理を行う際に、ユーザによる入力や修正が容易にできる技術が強く求められている。
【０００７】
本発明は、上記の課題を解決することを課題とするものであって、マウスやタッチパネル等により線の形状の入力を受け付け、当該線の形状を処理するのに好適な、線形状処理装置、線形状処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００９】
本発明の第１の観点に係る線形状処理装置は、２次元領域内のそれぞれの位置が第１座標値と第２座標値とにより指定され、当該２次元領域内に配置される線の形状を処理し、入力受付部、記憶部、表示部を備え、以下のように構成する。
【００１０】
まず、当該２次元領域内に配置される線に含まれる点の位置を指定する第１種指示入力と、当該第１種指示入力とは異なる第２種指示入力と、を受け付ける。
【００１１】
横方向に時間軸をとったグラフのような線図の座標値を処理する場合には、座標系として直交座標系を用い、第１座標値としてｘ座標の値、第２座標値としてｙ座標の値をそれぞれ用いるのが典型的である。ただし、用途によって、ｘ座標やｙ座標を交換したり、斜交座標や極座標を採用したりしても良い。たとえば、円グラフを描く場合には、第１座標値として角度、第２座標値として半径を採用することができる。
【００１２】
マウスを移動させることによって画面内でマウスポインタを移動させるような入力機器を採用する場合には、マウスのボタンを押したまま移動させるドラッグ操作の間だけ、当該マウスポインタの画面内における位置を指定する第１種指示入力が順次入力されることとするのが典型的である。
【００１３】
この場合、それ以外の操作、たとえば、マウスのボタンを離したり、マウスのボタンを離したままマウスを移動させたりする操作の間は、第２種指示入力が順次入力されることとなる。
【００１４】
一方、タッチパネルのような入力機器を採用する場合には、タッチパネルに触れた（押圧操作した）ままタッチペンを移動させた間の軌跡に含まれる点の位置を指定する第１種指示入力が順次入力されることとするのが典型的である。
【００１５】
この場合、それ以外の操作、たとえば、タッチペンをタッチパネルから離す操作等が、第２種指示入力に対応付けられることとなる。
【００１６】
一方、記憶部は、当該第１種指示入力の受付が続いて行われた場合、当該先の第１種指示入力に指定される開始位置の第１座標値から当該後の第１種指示入力に指定される終了位置の第１座標値までの間に含まれる第１座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第１座標値を有する点の第２座標値を、当該第１座標値に対応付けて記憶する。
【００１７】
記憶部は、典型的にはＲＡＭ（Random Access Memory）内に用意される。第１座標値と第２座標値との対をそのまま記憶することとしても良いし、第１座標値が整数で表現される場合には、第１座標値をインデックスとする配列に第２座標値を記憶することにより、当該第１座標値に対して最後に入力された第２座標値のみを記憶することとしても良い。
【００１８】
先の第１種指示入力に指定される座標を(x1,y1)、後の第１種指示入力に指定される座標を(x2,y2)としたとき、x1とx2が隣り合う（x1とx2との相違が１）とは限らないため、(x1,y1)と(x2,y2)とを結ぶ線分を想定する。この線分内に含まれる点の位置(x,y)は、以下のように表現される。
(x，(x2-x)・y1/(x2-x1) + (x-x1)・y2/(x2-x1))
ただし、xはx1とx2の間にある。
【００１９】
このようにして得られる(x,y)のxを適切な精度で、たとえば、
（ａ）x1 < x2の場合は、xの初期値をx1としてx2に至るまでxを１ずつ増やす。
（ｂ）x2 < x1の場合は、xの初期値をx1としてx2に至るまでxを１ずつ減らす。
（ｃ）x1 = x2の場合は、(x,y) = (x2,y2)とする。
のように変化させ、得られる(x,y)について、xにyを対応付けて記憶部に記憶させる。このとき、過去に同じ第１座標値xについて何らかの第２座標値が記憶されていたとしても、これは上書きして、常に最新の第２座標値yを記憶させるのである。すなわち、記憶部によって記憶される第２座標値yは、第１座標値xに対して入力された最新の値、ということになる。
【００２０】
さらに、表示部は、第１座標値に対応付けられて記憶された第２座標値を、当該第１座標値に対する所定の順序で取得し、当該２次元領域内の当該取得された第２座標値が対応付けられる第１座標値と当該第２座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該２次元領域内に配置される線の形状を表示する。
【００２１】
第１座標値としてｘ座標値を、第２座標値としてｙ座標値を、それぞれ採用した場合には、ｘ座標値を昇順に取得してそれぞれのｘ座標値に対するｙ座標値を取得しても良いし、ｘ座標値を降順に取得してそれぞれのｘ座標値に対するｙ座標値を取得しても良い。
【００２２】
このようにして得られる(x,y)に点を描画すると、線の形状が点線（破線）で描かれることとなり、その線の形状は、y = f(x)のように陽関数として表示できるようなグラフをなすこととなる。
【００２３】
本発明によれば、線形状処理装置において、陽関数のグラフ形状をなすような線図を構成する点の座標値を、入力させる際に、ユーザが当該グラフ形状を入力する際に誤差があった場合であっても、ユーザの所望の形状に近いと想定される形状のグラフの点の座標値を、容易に得ることができるようになる。
【００２４】
また、本発明の線形状処理装置において、記憶部は、当該第２種指示入力の受付に続いて当該第１種指示入力の受付が行われた場合、当該第１種指示入力に指定される点の第２座標値を、当該点の第１座標値に対応付けて記憶するように構成することができる。
【００２５】
本発明は、過去に描いた線の形状を修正する場合の修正の開始時点での処理を特徴とするものであり、タッチパネルとタッチペンの例で説明すれば、一旦タッチパネルの上でタッチパネルを押圧操作しながら移動してグラフを描いて、タッチペンをタッチパネルから離した後に、タッチパネルの別の位置にタッチペンを押圧操作させたときの処理を表すものである。
【００２６】
このような場合には、新たにタッチペンが置かれた位置の第１座標値に対しては、過去に入力された第２座標値ではなく、新たに置かれた位置の第２座標値が対応付けられて記憶されることになる。
【００２７】
一方、表示部での線形状の表示の処理では、第１座標値を順次変化させて第１座標値と第２座標値で指定される点を結ぶように線形状を描くから、どのような位置にタッチペンを置いたとしても、線の形状は一繋がりになる。
【００２８】
本発明によれば、線の形状を修正したい場合に、過去に入力した線の形状に重なるような位置を指定しなくとも、線の形状が一繋がりになって取得されるため、ユーザは、簡単な処理で容易に線の形状を編集、修正することができるようになる。
【００２９】
また、本発明の線形状処理装置において、入力受付部は、当該画面の表面に対する押圧操作を、当該押圧操作された位置に対応付けられる当該２次元領域内の位置を指定する第１種指示入力として受け付け、当該画面の表面からの離脱操作を、第２種指示入力として受け付けるように構成することができる。
【００３０】
画面の表面にタッチパネルが配置され、画面における点や線図の表示位置と、タッチペンで点や線図を描きたいときの押圧操作の位置とが重なるようにしたものである。
本発明は、上記発明の好適実施形態に係るものであり、本発明によれば、所望の形状の線に含まれる点の位置を、ユーザが容易に指示できるようになる。
【００３１】
また、本発明の線形状処理装置は、削除部をさらに備え、以下のように構成することができる。
【００３２】
すなわち、削除部は、当該第１種指示入力の受付が続いて所定の回数行われた場合、当該続いて行われた第１種指示入力の互いに隣り合う第１種指示入力の対のすべてにおいて、当該対の先の第１種指示入力に指定される位置から当該対の後の第１種指示入力に指定される位置へのベクトルと、当該２次元領域において当該第１座標値のみを当該所定の順序で変化させる方向のベクトルと、のなす角が所定の鈍角以上である場合、当該続いて行われた第１種指示入力のそれぞれに指定される第１座標値の最小値から最大値までの範囲に含まれる第１座標値に対応付けられて記憶部に記憶される第２座標値の値を、記憶部から削除する。
【００３３】
たとえばタッチペンの状態を一定時間間隔で監視してこの状態から指示入力を得る場合には、「第１種指示入力が続いて所定の回数行われる」とは、タッチペンでタッチパネルの表面を一定時間以上なぞり続けた場合に相当する。
【００３４】
また、第１座標値としてｘ座標値を採用し、xが増加する順序に点を描画する場合には、「２次元領域において第１座標値のみを所定の順序で変化させる方向」とは、ｘ軸の正の方向を意味する。
【００３５】
そして、M回続いて行われた第１種指示入力に指定される座標が時間順に
(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軸の正の向きが左から右であるとき、グラフなどの線の形状を描く場合には、ユーザは、できるだけ左から右へタッチペンを移動させるようにこころがければ良い。このとき、操作に少々の誤差があり、少しだけ右から左へタッチペンが逆行したとしても、線の形状はタッチペンの移動の履歴に合わせて決定される。
【００３７】
しかしながら、タッチペンを右から左へ水平に一定時間以上移動させると、その移動の開始位置のｘ座標から終了位置のｘ座標までの間に含まれる線の一部が消去されるのである。
【００３８】
削除の手法としては、ＲＡＭ内に座標値を記憶する際に、ありえない座標値、たとえば、２次元領域の外側に相当する座標値等を記憶させたり、各第２座標値を記憶する際に、当該第２座標値が削除されているか否かを表すフラグ情報を同時に記憶することとしても良い。
【００３９】
本発明によれば、入力されたグラフ等の線の形状の一部を消去して、分断された線の形状を描いたり、不要な区間を削除したりするような線の形状の編集が容易にできるようになる。
【００４０】
また、本発明の線形状処理装置において、当該第１座標値は整数により表現され、表示部は、当該描画される点の第１座標値と、その直前に描画された点の第１座標値と、が隣り合う場合、当該描画される点と、その直前に描画された点と、を結ぶ線分をさらに描画するように構成することができる。
【００４１】
本発明は、上記発明の好適実施形態に係るものであり、上記発明では、y = f(x)に相当するグラフを、そのｘ座標値とｙ座標値を有する点の点列として表示していたが、本実施形態では、描画すべき２つの点のｘ座標が十分に近い場合、たとえば、画面の表示精度（ドット単位）で隣り合う場合に、これら２つの点の間に線分を描画することによって、グラフを線図として描くことができるようにするものである。
【００４２】
なお、ｘ座標が隣り合わない場合は、その間には線分を描画しないから、y = f(x)のｘ座標のうち、一部の区間についてはｙ座標が定義されないような、分断されたグラフを描くこともできる。
【００４３】
本発明によれば、入力された点の位置を適切に結ぶグラフ等の線の形状を描き、各種のグラフ等を表示させることが容易にできるようになる。
【００４４】
また、本発明の線形状処理装置において、記憶部は、当該第１座標値をインデックスとする配列の要素として当該第２座標値、もしくは、当該第１座標値に対応付けられるべき第２座標値は削除されている旨を示す値を記憶し、表示部は、当該配列のインデックスが当該所定の順序に変化するように当該配列の要素を走査して、当該第１座標値に対応付けられる当該第２座標値を取得するように構成することができる。
【００４５】
多くの情報処理装置においては、第１座標値と第２座標値はいずれも整数で入力され、所定の領域として、たとえば、幅３２０×高２４０などの大きさを採用した場合は、第２座標値のとりうる値は０〜２３９の２４０通りで、１バイトで表現でき、第１座標値のとりうる値は０〜３１９の３２０通りであるから、配列全体のサイズは３２０バイトとすれば良い。配列の要素の値（すなわち、第２座標値）として２５５を記憶させた場合には、その要素のインデックスである第１座標値では、グラフは描かれない（点が削除されている）として扱うことが可能である。
【００４６】
本発明によれば、各第１座標値に対して最後に記憶された第２座標値を唯一の値として管理するのに容易なデータ構造を実現して、処理を高速に行うことができる。
【００４７】
また、本発明の線形状処理装置において、当該２次元領域には、水平方向の座標軸と垂直方向の座標軸とが設定され、当該第１座標値は当該水平方向の座標軸に対する座標値であり、当該第２座標値は当該垂直方向の座標軸に対する座標値であるように構成することができる。
【００４８】
本発明は、上記発明のもっとも典型的な実施形態に係るものである。上記で例示した通り、本発明によれば、時間軸が水平方向（横軸）に設定され、たとえば株価が垂直方向（縦軸）に設定された株価変動グラフをユーザが入力したい場合等に、ユーザは、容易に株価変動グラフの形状等を容易に入力したり修正したりすることができるようになる。
【００４９】
また、本発明の線形状処理装置において、当該第１座標値のみを当該所定の順序で変化させる方向は、水平方向左から右であるように構成することができる。
【００５０】
本発明は、上記発明のもっとも典型的な実施形態に係るものである。本発明によれば、概ね左から右方向にタッチペンを押圧移動させれば株価変動グラフ等を入力することができるが、右から左方向略水平にタッチペンを押圧移動させれば、その押圧移動の区間について、株価変動グラフ等の形状を削除することができる。したがって、本発明によれば、株価変動グラフ等の一部をユーザが削除したい場合に、容易に削除を行うことができるようになる。
【００５１】
また、本発明の線形状処理装置において、当該２次元領域には、極座標の座標系が設定され、当該第１座標値は当該極座標の角度に対する座標値であり、当該第２座標値は当該極座標の半径に対する座標値であるように構成することができる。
【００５２】
本発明は上記発明の好適実施形態に係るものである。たとえば、複数のパラメータを表示する際に、星型グラフを利用することがある。星型グラフは、正多角形の各頂点にそれぞれのパラメータの種類が対応付けられ、中心から頂点に向かう線分の長さを当該頂点に対応するパラメータ値にして、線分の先を結んだ多角形により、複数のパラメータを表示するものであり、これは極座標による座標系でグラフを表示することに相当する。
【００５３】
本発明によれば、このような星型グラフをユーザが入力・編集したい場合に、簡単な操作で容易に入力・編集を行うことができるようになる。
【００５４】
本発明のその他の観点に係る線形状処理方法は、２次元領域内のそれぞれの位置が第１座標値と第２座標値とにより指定され、当該２次元領域内に配置される線の形状を処理し、入力受付部、記憶部、表示部を備える線形状処理装置にて実行され、入力受付工程、記憶工程、表示工程を備え、以下のように構成する。
【００５５】
まず、入力受付工程では、入力受付部が、当該２次元領域内に配置される線に含まれる点の位置を指定する第１種指示入力と、当該第１種指示入力とは異なる第２種指示入力と、を受け付ける。
【００５６】
一方、記憶工程では、記憶部が、当該第１種指示入力の受付が続いて行われた場合、当該先の第１種指示入力に指定される開始位置の第１座標値から当該後の第１種指示入力に指定される終了位置の第１座標値までの間に含まれる第１座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第１座標値を有する点の第２座標値を、当該第１座標値に対応付けて記憶する。
【００５７】
さらに、表示工程では、表示部が、記憶部に第１座標値に対応付けられて記憶された第２座標値を、当該第１座標値に対する所定の順序で取得し、当該２次元領域内の当該取得された第２座標値が対応付けられる第１座標値と当該第２座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該２次元領域内に配置される線の形状を表示する。
【００５８】
本発明のその他の観点に係るプログラムは、コンピュータを上記の線形状処理装置として機能させ、コンピュータに上記の線形状処理方法を実行させるように構成する。
【００５９】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００６０】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００６１】
本発明によれば、マウスやタッチパネル等により線の形状の入力を受け付け、当該線の形状を処理するのに好適な、線形状処理装置、線形状処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００６２】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００６３】
図１は、本発明に係る線形状処理装置が実現される一般的な情報処理装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【００６４】
本情報処理装置１０１は、ＣＰＵ（Central Processing Unit）１０２と、ＲＡＭ（Random Access Memory）１０３と、ＲＯＭ（Read Only Memory）１０４と、入力装置１０５と、画像処理部１０６と、液晶ディスプレイ１０７と、音声処理部１０８と、スピーカ１０９と、カセットリーダ１１０と、を備える。
【００６５】
ＣＰＵ  １０２は、本情報処理装置１０１の各部の制御を行う。ＲＡＭ  １０３の記憶域、ＲＯＭ  １０４の記憶域、カセットリーダ１１０に挿入されたＲＯＭカセット１１１の記憶域は、いずれも、ＣＰＵ  １０２が管理する１つのメモリ空間にマップされており、ＣＰＵ  １０２は、それぞれの記憶域がマップされるアドレスを読み出せば、それぞれに記憶されている情報を取得することができる。また、ＲＡＭ  １０３の記憶域には、書き込みも可能である。
【００６６】
このほか、ＣＰＵ  １０２が画像処理部１０６や音声処理部１０８に対して各種の指示を行う際や、これらのほか、入力装置１０５から情報を取得する際の、窓口となるレジスタも、当該メモリ空間にマップされており、所定のアドレスにコマンドを表すデータ書き込みを行えば指示をすることができ、所定のアドレスからデータを読み出せば、情報を取得することができる。
【００６７】
情報処理装置１０１の電源が投入されると、ＣＰＵ  １０２は、カセットリーダ１１０に挿入されたＲＯＭカセット１１１の記憶域がマップされたアドレスから開始されるプログラムを実行する。ＲＡＭ  １０３は、一時的な記憶域として種々の目的に使用される。ＲＯＭ  １０４には、情報処理装置１０１が提供するＢＩＯＳ(Basic Input/Output System)ルーチンが記録されており、ＲＯＭカセット１１１内のプログラムから、適宜呼び出すことができる。
【００６８】
入力装置１０５は、方向を表す指示入力を受け付けるボタン、各種の操作を区別する指示入力を受け付けるボタンからの入力をメモリ空間にマップされたレジスタに反映させるほか、液晶ディスプレイ１０７の表面に貼り付けられたタッチパネルが押圧されているか否か、および押圧されているときのその座標の入力も受け付ける。
【００６９】
液晶ディスプレイ１０７は、画像処理部１０６によって管理される。メモリ空間にマップされたタイルを記憶するための記憶領域や、オブジェクト属性メモリを記憶するための記憶領域が用いられる。ＣＰＵ  １０２が、計算により生成した値を書き込んだり、カセットリーダ１１０に挿入されたＲＯＭカセット１１１から適切に情報を転送すると、液晶ディスプレイ１０７にスプライト画像が表示されることとなる。
【００７０】
このほか、液晶ディスプレイ１０７に表示される画像を画素単位で管理するフレームバッファを利用することもでき、液晶ディスプレイ１０７においてある色をある位置に表示したい場合には、フレームバッファ内のその位置に相当する場所にその色に相当する数値を書き込むと、適切なタイミングで液晶ディスプレイ１０７にビットマップ画像が表示される。
【００７１】
たとえば、１６ビットカラー表示３２０×２００ドットの液晶ディスプレイ１０７の場合、画素１つ分の色は２バイトで表現される。そこで、３２０×２００個の要素（各２バイト）を持つ配列をフレームバッファとしてＲＡＭ  １０２内に用意し、当該配列の要素を１対１に液晶ディスプレイ１０７の画素に対応させる。当該配列の要素に色を表す１６ビットの値を書き込み、適切なタイミングで（たとえば、垂直同期割り込みが発生する周期で）フレームバッファの内容を液晶ディスプレイ１０７に反映させるように、画像処理部１０６にて制御を行う。
【００７２】
液晶ディスプレイ１０７の数は１つまたは複数とするのが一般的であり、複数の場合には、一方の液晶ディスプレイ１０７は表示専用とし、他方の液晶ディスプレイ１０７にはタッチパネルが貼り付けられているように構成しても良い。この場合、タッチペンでタッチパネルを押圧操作することにより、対応する液晶ディスプレイ１０７の位置を表す座標値が、入力される。
【００７３】
なお、本情報処理装置１０１は、典型的な携帯ゲーム装置として利用されるものであるが、本発明の技術は、マウスおよびキーボードとＣＲＴ（Cathode Ray Tube）を用いて入力と出力を行うような汎用コンピュータで動作する各種のアプリケーションに適用することも可能であり、そのような実施形態も本発明の範囲に含まれる。
【００７４】
（基本的な構成）
図２は、本実施形態に係る線形状処理装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【００７５】
本実施形態に係る線形状処理装置２０１は、入力受付部２０２、座標記憶部２０３、履歴記憶部２０４、表示部２０５、削除部２０６、検出部２０７を備える。
【００７６】
入力受付部２０２は、液晶ディスプレイ１０７の表面に貼り付けられたタッチパネルとタッチペンの組み合わせによって実現される。ＣＰＵ  １０２がメモリ空間にマップされた所定のレジスタの値を検査すると、タッチペンでタッチパネルが押圧操作されているか、それとも解放されているか、の情報や、押圧操作されている場合にタッチパネルにおけるその押圧操作されている座標が、直交座標系で得られる。
【００７７】
ここで、本実施形態では、横軸に時間変化、縦軸に株価や体重などの値をとるグラフの線図を入力したい場合を考える。したがって、ｘ座標が第１座標値に、ｙ座標が第２座標値に、それぞれ相当する。上記の例では、ｘ座標としてとりうる値は０〜３１９、ｙ座標としてとりうる値は０〜２３９である。これらの数値は、適用分野および情報処理装置１０１の仕様に応じて、適宜変更が可能である。
【００７８】
一方、座標記憶部２０３は、グラフの線図に含まれる点のｘ座標値とｙ座標値の組合せを記憶するものであり、履歴記憶部２０４は、座標値の入力の履歴を記憶するものであり、ＣＰＵ  １０２の制御の下、典型的にはＲＡＭ  １０３によって実現される。
【００７９】
また、表示部２０５は、グラフの線図を表示するものであり、ＣＰＵ  １０２の制御の下、液晶ディスプレイ１０７によって実現され、削除部２０６は、座標記憶部２０３や履歴記憶部２０４に記憶される情報を適宜管理するもので、ＣＰＵ  １０２がＲＡＭ  １０３と共働して実現される。
【００８０】
さらに、検出部２０７は、座標記憶部２０３に記憶された線の形状が所定の特徴的な形状を有しているか否かを検出するもので、ＣＰＵ  １０２がＲＡＭ  １０３と共働することにより実現される。
【００８１】
なお、履歴記憶部２０４および削除部２０６を用いた処理や、検出部２０７を用いた処理は、適用分野によっては省略することができ、これらを適宜省略した実施形態も、本発明の範囲に含まれる。
【００８２】
図３は、本実施形態の線形状処理装置にて実行される座標値入力表示処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００８３】
まず、ＣＰＵ  １０２は、ＲＡＭ  １０３内に用意された、座標記憶部２０３を初期化し（ステップＳ３０１）、履歴記憶部２０４を初期化する（ステップＳ３０２）。
【００８４】
座標記憶部２０３は、３２０バイトの配列Fによって実現される。以下、配列Fのx番目の要素をF[x]と表記する。本実施形態では、第１座標値xに対する最新の第２座標値yが、配列のx番目の要素F[x]に記憶される。
【００８５】
上記の例では、第２座標値として有効な値は０から２３９であるため、「第１座標値xに対応する第２座標値yは存在せず、第１座標値xの場所でグラフが途切れている」ことを表すために、２５５という値を用いる。
【００８６】
したがって、座標記憶部２０３の初期化は、x = 0，1，…，319について、F[x] ← 255の処理を実行することで行う。ここで、「←」は、いわゆる代入を意味する。
【００８７】
一方、履歴記憶部２０４は、直近に入力されたx座標とy座標の組合せを所定の個数Mだけ、順次記憶するリングバッファとして実現される。
【００８８】
当該リングバッファは、次に値を登録すべき場所を記憶する変数pと、x座標、y座標からなる構造体を要素とする配列Rと、押圧操作されている旨の座標入力が現在までに何個連続してされたか（どれだけの時間連続してされたか、に相当する。）を格納する変数nと、によって実現する。配列Rの要素の数はM個とする。以下では、配列Rのi番目の要素はR[i]のように表記し、当該要素のx座標、y座標は、それぞれ、R[i].x，R[i].yのように表記する。
【００８９】
したがって、履歴記憶部２０４の初期化は、p ←0，n ← 0とし、i ← 0，1，…，M-1について、R[i].x ← -1，R[i].y ← 255のように値を設定することによって実現される。
【００９０】
このようにして、ＲＡＭ  １０３内に確保された各種の変数領域の初期化を行った後、ＣＰＵ  １０２は、メモリ空間内にマップされた所定のレジスタを参照して、液晶ディスプレイ１０７の表面に貼り付けられたタッチパネルが押圧操作されているか否かを調べる（ステップＳ３０３）。
【００９１】
押圧操作されている場合（ステップＳ３０３；Ｙｅｓ）、メモリ空間内にマップされた所定のレジスタを参照して、液晶ディスプレイ１０７の表面に貼り付けられたタッチパネルが押圧操作されている位置のｘ座標値aとｙ座標値bを取得する（ステップＳ３０４）。すなわち、ステップＳ３０３〜ステップＳ３０４により、第１種指示入力を受け付けたことになる。
【００９２】
なお、この際に、ｘ座標値aやｙ座標値bには、符号を反転して定数を加算して向きを逆向きにしたり、適当な定数で乗除を行って座標値の精度を所望の精度に変更するなどの各種の変換処理を行っても良い。また、円グラフの形状を描く場合には、ｘ座標値に相当するものは角度、ｙ座標値に相当するものは中心からの距離とするのが典型的である。
【００９３】
そして、R[p].x ← a，R[p].y ← b，p ← (p + 1) mod Mを実行して、履歴記憶部２０４のリングバッファに取得された座標値を登録する（ステップＳ３０５）。ここで、x mod yは、整数xを正整数yで割った余り（数学的な意味での剰余を意味し、0≦(x mod y)≦y-1である。）を意味する。
【００９４】
なお、マウスを移動させることによって画面内でマウスポインタを移動させるような入力機器を採用する場合には、マウスのボタンを押したまま移動させるドラッグ操作の間だけ、当該マウスポインタの画面内における位置が順次入力されることとするのが好適である。マウスのボタンが押圧されているか否かと、マウスポインタの現在位置と、の情報を用いれば、ステップＳ３０３〜ステップＳ３０４と同等の処理を行うことができる。
【００９５】
さらに、n ← n + 1を実行して（ステップＳ３０６）、押圧操作（第１種指示入力）が現在までに連続してされていることを示す回数をカウントする。ステップＳ３０３以降の処理は、後述するように、一定の時間おきにされるので、nの値は、押圧操作が現在までに連続してされている時間と考えることもできる。
【００９６】
ついで、ＣＰＵ  １０２は、所定の削除条件が満たされているか否かを判定する（ステップＳ３０７）。削除条件が満たされていると、入力された座標値を適宜削除することとなるが、その詳細については後述することとする。また、前述した通り、削除条件を考慮せず、ステップＳ３０６からステップＳ３０８に直ちに移行するような態様を採用しても良い。そこでここでは、削除条件が満たされていない場合（ステップＳ３０７；Ｎｏ）について説明する。
【００９７】
削除条件が満たされていない場合（ステップＳ３０７；Ｎｏ）、ＣＰＵ  １０２は、押圧操作（第１種指示入力）が連続してされているか否か、すなわち、n≧2が成立するか否かを判断する（ステップＳ３０８）。
【００９８】
成立しない場合（ステップＳ３０８；Ｎｏ）、すなわち、第２種指示入力に続いて第１種指示入力が行われた場合、言い換えれば、タッチパネルから離れていたタッチペンがタッチパネルに触れたことが検出された場合、F[a]←bを実行して（ステップＳ３３０）、押圧操作されている座標の情報を登録し、ステップＳ３１９に進む。すなわち、ステップＳ３３０は、過去に入力された線の形状の修正を開始することに相当する。
【００９９】
一方、成立する場合（ステップＳ３０８；Ｙｅｓ）、最新の第１種指示入力により指定される座標は、
(x1,y1) = (R[(p-1) mod M].x，R[(p-1) mod M].y)
であり、その直前の第１種指示入力により指定される座標は、
(x2,y2) = (R[(p-2) mod M].x，R[(p-2) mod M].y)
であるから、これらの座標値を取得する（ステップＳ３０９）。
【０１００】
そして、x1 = x2であるか否かを判定し（ステップＳ３１０）、そうであれば（ステップＳ３１０；Ｙｅｓ）、F[x2] ← y2を実行して（ステップＳ３１１）、所望の形状の線が通過する点として第１座標値x2に対して最新に入力された第２座標値y2を、座標記憶部２０３に登録する。
【０１０１】
一方、x1≠x2である場合（ステップＳ３１０；Ｎｏ）、ＲＡＭ  １０３に用意された変数領域sに対して、s ← sgn(x2-x1)を実行する（ステップＳ３１２）。ここで、sgn(z)は、zが正のときに１、zが負のときに−１を返す関数である。
【０１０２】
そして、ＲＡＭ  １０３に用意された変数領域xの初期値としてx1を設定してから（ステップＳ３１３）、以下の処理を繰り返す（ステップＳ３１４）。すなわち、ＲＡＭ  １０３に用意された変数領域yに対して
y ← (x2-x)・y1/(x2-x1) + (x-x1)・y2/(x2-x1)
を実行し（ステップＳ３１５）、(x1,y1)と(x2,y2)とを結ぶ線分の第１座標値がxであるときの第２座標値yの値を求める。
【０１０３】
そして、F[x] ← yを実行して（ステップＳ３１６）、所望の形状の線が通過する点として第１座標値xに対して最新に入力された第２座標値yを、座標記憶部２０３に登録する。
【０１０４】
ついで、x ← x + sを実行し（ステップＳ３１７）、x≠x2の間、ステップＳ３１４〜ステップＳ３１８の処理を繰り返す（ステップＳ３１８）。
【０１０５】
さて、繰り返しが終わったら、ついで、ＣＰＵ  １０２は、i = 0，1，…，319についてiの値を１ずつ増やしながら、以下の処理を繰り返す（ステップＳ３１９）。
【０１０６】
まず、F[i]が有効なｙ座標値であるか否かを調べる（ステップＳ３２０）。すなわち、本実施形態では、0≦F[i]≦239であるか否かを調べる。そして、F[i]が有効なｙ座標値である場合（ステップＳ３２０；Ｙｅｓ）、液晶ディスプレイ１０７の２次元面の各画素に対応する情報を格納するフレームバッファの、座標(i,F[i])に相当する位置に、点を描画する情報を書き込む（ステップＳ３２１）。一方、そうでなければ（ステップＳ３２０；Ｎｏ）、点の描画はせず、ステップＳ３２２に進む。
【０１０７】
ステップＳ３１９〜ステップＳ３２２を繰り返すことによって（ステップＳ３２２）、タッチペンでなぞった位置のうち、位置が検出された点が画面に表示されることになる。
【０１０８】
さらに、ＣＰＵ  １０２は、i = 0，1，…，318について、iの値を１ずつ増やしながら、以下の処理を繰り返す（ステップＳ３２３）。
【０１０９】
すなわち、F[i]とF[i+1]が両方とも有効なｙ座標値であるか否かを調べる（ステップＳ３２４）。この判定基準は、ステップＳ３１９におけるものと同様である。そして、両方とも有効なｙ座標値である場合（ステップＳ３２４；Ｙｅｓ）、フレームバッファの座標(i,F[i])から座標(i+1,F[i+1])までの線分を描画する情報を書き込む（ステップＳ３２５）。このようなフレームバッファに対する線分描画の処理は、ブレゼンハム線分描画アルゴリズムを採用しても良いし、画像処理部１０７自体がそのような機能を有する場合もある。
【０１１０】
一方、そうでなければ（ステップＳ３２４；Ｎｏ）、線分の描画はせず、ステップＳ３２６に進む。
【０１１１】
ステップＳ３２３〜ステップＳ３２６を繰り返すことによって（ステップＳ３２６）、タッチペンでなぞった位置のうち、位置が検出された点を結ぶ線分も画面に表示されることになる。
【０１１２】
そして、垂直同期割り込みが発生するまで待機する（ステップＳ３２７）。当該待機中には、コルーチン的に他の処理を実行することができる。垂直同期割り込みが発生したら、ＣＰＵ  １０２は、画像処理部１０６に指示を出して、フレームバッファの内容を液晶ディスプレイ１０７に反映させ、タッチペンを用いて入力された座標値に相当する位置に点を表示し、これらの点を結ぶ線分を適切に表示する（ステップＳ３２８）。そして、ステップＳ３０３に戻る。
【０１１３】
一方、タッチペンが押圧操作されておらず、タッチパネルから離れている場合（ステップＳ３０３；Ｎｏ）、n ← 0としてその旨を記憶してから（ステップＳ３２９）、ステップＳ３１９に進む。これは、第２種指示入力を受け付けたことを意味する。
【０１１４】
このような処理によって、タッチペンで入力された点の軌跡から、どのようなグラフの線の形状が描画されることとなるのかについて、説明する。
【０１１５】
図４は、押圧操作されたタッチペンの移動の軌跡と、これに対して表示されるグラフ線の形状の様子を示す説明図である。以下、本図を参照して説明する。
【０１１６】
本図（ａ）には、上下にジグザグに蛇行する線をユーザがタッチペンで描いた場合の軌跡を示す。このようなジグザグ線４０１の形状は、たとえば株価の時間変化において、ペナントやフラッグと呼ばれるような、株価変動が短い周期に頻繁に起きる状況を示すグラフを線の形状としたものである。時間経過は左から右に設定されているので、このジグザグ線４０１の軌跡は、全体として見ると、概ね左から右に移動していたことになる。
【０１１７】
ここで、ユーザがタッチペンを押圧操作しながら移動させるときにジグザグ線４０１を描くと、タッチペンが常に左から右に移動するとは限らず、ときどきは右から左に戻ってしまうような動きになってしまうことがある。急いでタッチペンを操作した場合には特にこのようなことが発生する。このような逆行が生じると、あるｘ座標におけるジグザグ線４０１のｙ座標の値が複数発生することとなる。本図でも、このような重複部分４０２が何か所が生じている。
【０１１８】
本図（ｂ）には、このような重複部分４０２を含むようなジグザグ線４０１がタッチペンで描かれた場合、実際に入力されるグラフの線４０３の形状の様子を示している。
【０１１９】
上記のように、本実施形態では、ある時点（横軸）における値（縦軸）は１つに決められ、ある時点における値が複数存在してしまう場合には、最後に入力された値が採用される。したがって、右から左へ後戻りしてしまう場合であっても、その後に左から右へタッチペンが移動することとなっており、その最新の軌跡がグラフの線４０３として採用されている。
【０１２０】
また、本図（ｃ）は、本図（ａ）で描かれたジグザグ線４０１の一部のジグザグをやめて、平ら（ｘ軸に平行に）にしたいと考えたときの、タッチペンの移動の軌跡を描いてある。本図に示すジグザグ線４０１をタッチペンで描いた後に、平らな線４０４を左から右へタッチペンで描いたものである。
【０１２１】
このような操作を行うと、あるｘ座標に対するｙ座標の値としては、最後に入力されたものが有効となる。本図（ｄ）では、実際に入力されるグラフの線４０５の形状の様子を示しており、平らにしたい部分が反映されている。
【０１２２】
なお、後述する削除条件を採用しない場合は、平らな線４０４に沿ってタッチパネルを押圧するようにタッチペンを右から左へ移動させても、左から右へ移動させても、平らにしたい部分が反映されることになる。
【０１２３】
図５は、タッチペンの移動の軌跡と、画面に表示される線の形状との関係を説明する説明図である。以下、本図を参照して説明する。
【０１２４】
本図（ａ）〜（ｅ）は、タッチペンが移動する様子を時系列順に示すものであり、矢印はタッチペンが移動する方向を表し、実線はタッチペンがタッチパネルを押圧操作しながら移動していることを、破線はタッチペンがタッチパネルから解放されて移動していることを、それぞれ示す。
【０１２５】
一方、本図（Ａ）〜（Ｅ）は、本図（ａ）〜（ｅ）に対応して、時系列中のそれぞれの時点で、画面に表示される線の形状の様子を示すものである。
【０１２６】
本図（ａ）のように、タッチペンを概ね左から右へ押圧移動させると、本図（Ａ）のように、これと同じ形状の線の形状が描画される。本図（ｂ）と本図（Ｂ）についても同様である。
【０１２７】
この後、本図（ｃ）に示すように、タッチペンをタッチパネルから離して、タッチペンを移動する。このとき、タッチペンはタッチパネルから離れているから、第１種指示操作入力はされないので、画面に表示される線の形状は、本図（Ｂ）と本図（Ｃ）とで同じになる。
【０１２８】
たとえば、本図（Ｂ）に表示される線の形状は逆Ｓ字形のカーブをなしているが、その末端をペナント形状にしたくなった場合を考える。本実施形態では、本図（ｄ）に示すように、タッチペンを右から左に移動して、ジグザグ線を描き始めるだけで良い。本図（Ｄ）は、このジグザグ線を描いている途中での表示例であり、グラフの線の形状は、一繋がりの線になっている。
【０１２９】
本図（ｅ）には、このままジグザグ線を描き続けた様子を示す。これに呼応して、本図（Ｅ）に示すように、一繋がりの線の形状が、画面に表示される。
【０１３０】
このように、本実施形態では、おおまかなグラフの形状を描いた（本図（ａ）（ｂ））後に、その一部をジグザグ線に修正したいときには、その区間に単純にジグザグ線を描くだけで（本図（ｄ）（ｅ））、グラフが一繋がりとなって得られる。この際に、ジグザグ線の開始点や終了点を、過去に描いたおおまかな線の上に重ねる必要はないため、ユーザは、修正が容易である。
【０１３１】
さて、本実施形態では、横方向に時間軸をとったグラフのような線図の座標値を処理しているため、座標系として直交座標系を用い、第１座標値としてｘ座標の値、第２座標値としてｙ座標の値をそれぞれ用いているが、用途によって、ｘ座標やｙ座標を交換したり、斜交座標や極座標を採用したりしても良い。たとえば、円グラフを描く場合には、第１座標値として角度、第２座標値として半径を採用することができる。
【０１３２】
このように、斜行座標や極座標におけるグラフの入力においては、座標軸が直交していなかったり曲線であったりするために、ユーザの入力にぶれが生じやすいが、本発明を適用した場合には、このようなぶれを適宜修正して、ユーザの希望に近い形状のグラフの座標値を取得することができるようになる。
【０１３３】
（削除条件）
上記のように、削除条件が常に満たされないものとしても、グラフ線図を描いたり、これを修正する作業を十分に行うことができるが、グラフの一部を削除したいこともありうる。すなわち、途切れた線図を描きたい場合である。また、一旦余計なグラフを消去してから、新たに所望のグラフを書き直したいことも多い。そこで、以下では、簡単な操作でグラフ線図の一部を消去するための技術について説明する。
【０１３４】
上記のように、グラフを描く場合には、タッチペンを押圧操作しながら左から右へ移動させる。そこで、本実施形態では、グラフを消去する場合には、消去したい範囲で、タッチペンを押圧操作しながら右から左へ移動させることとするのである。
【０１３５】
ただし、ジグザグ線を描くような場合には、上述の通り、タッチペンが一瞬だけ右から左へ移動してしまうことがありうる。
【０１３６】
これらを区別するため、タッチペンが一定時間の間、右から左へ、ほぼ水平に移動した場合には、グラフを消去するが、そうでない場合は、タッチペンが右から左へ移動したとしても、通常の座標値の入力として解釈するのである。このための判断基準が削除条件である。
【０１３７】
この「一定時間」に相当するものは、本実施形態では、「M×垂直同期割り込み周期」である。すなわち、「M×垂直同期割り込み周期」の間、タッチペンが右から左へほぼ水平に移動した場合には、線の形状のうち、その右から左への移動の範囲だけを削除する。
【０１３８】
本実施形態では、リングバッファを用いて、削除条件「M×垂直同期割り込み周期の間、タッチペンが右から左へほぼ水平に移動した」か否かを、以下のように検知する。
【０１３９】
図６は、削除条件が成立するか否かを判断するステップＳ３０７と、成立した場合に実行される処理の詳細な制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１４０】
本処理が開始されると、まず、n≧Mであるか否かを判断する（ステップＳ５０１）。n<Mである場合（ステップＳ５０１；Ｎｏ）、本処理を終了し、ステップＳ３０８に進む。
【０１４１】
一方、n≧Mである場合（ステップＳ５０１；Ｙｅｓ）、リングバッファ内に、現在までの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)
のように格納されていることになる。
【０１４２】
また、所定の鈍角θ（典型的には、１７０度〜１８０度程度の範囲の間。）を用いて、ｘ軸の向きと、タッチペンが移動した向きとがこの鈍角θ以上のときに、タッチペンが水平に移動しているものと判断する。
【０１４３】
そこで、i = 1，2，…，M-1について、iを変化させながら、以下の処理を繰り返す（ステップＳ５０２）。
【０１４４】
まず、xi+1<xi かつ |(yi+1-yi)/(xi+1-xi)|≦tanθであるか否か、すなわち、履歴のi番目からi+1番目についてのタッチペンの移動の方向ベクトル
(xi+1-xi,yi+1-yi)
がx軸正の方向と鈍角θ以上をなし、ほぼ水平方向逆向きに移動したか否かを判断する（ステップＳ５０３）。
【０１４５】
この条件が成立していなければ（ステップＳ５０３；Ｎｏ）、本処理を終了して、ステップＳ３０８に進む。一方、この条件が成立していれば（ステップＳ５０３；Ｙｅｓ）、ステップＳ５０２〜ステップＳ５０４の処理を繰り返す。
【０１４６】
i = 1，2，…，M-1のすべてについて上記の条件が成立したときは、削除条件が成立したことになり、ステップＳ５０５に進む。
【０１４７】
削除条件が成立している場合、
xM<xM-1<…<x2<x1
であるから、最近のM個の履歴におけるｘ座標の最大値はx1、ｘ座標の最小値はxMである。
【０１４８】
そこで、i = xM，xM+1，…，x1-1，x1のそれぞれについて、以下の処理を繰り返す（ステップＳ５０５）。
【０１４９】
すなわち、座標記憶部２０３において、
F[i] = 255
を実行する（ステップＳ５０６）ことを、繰り返すのである（ステップＳ５０７）。
【０１５０】
この処理によって、線の形状からｘ座標がxM以上x1以下の区間が除去され、多くの場合、線が分断されることになる。
【０１５１】
繰り返し（ステップＳ５０５〜ステップＳ５０７）が終了したら、本処理を終了して、ステップＳ３１９に進む。
【０１５２】
図７は、タッチペンを右から左に移動する操作をユーザが行った場合に入力される線の形状を示す説明図である。以下、本図を参照して説明する。
【０１５３】
本図（ａ）には、ユーザが行ったタッチペンの移動の経路を示す。図４におけるものと同様のジグザグ線４０１に沿ってタッチペンでタッチパネルを押圧操作しながら移動させた後、タッチペンをタッチパネルから外して、さらにペンを置き、右から左へのほぼ水平な消去指示線６０１に沿ってタッチペンでタッチパネルを押圧操作しながら移動させ、その後にタッチペンを外したときの「押圧操作経路の履歴」が示されている。
【０１５４】
本図（ｂ）は、ジグザグ線４０１に沿ってタッチペンでタッチパネルを押圧操作しながら移動させた直後に、線形状処理装置によって表示されるグラフの線４０３の形状の「画面表示例」を示すものである。図４（ｂ）と同様の形状が表示されている。本図には、タッチペンがタッチパネルをなぞった履歴であるジグザク線４０１に応じたグラフの線４０３の形状が、表示例として示されている。
【０１５５】
本図（ｃ）は、さらにその後に、消去指示線６０１に沿ってタッチペンでタッチパネルを押圧操作しながら移動させた直後に、線形状処理装置によって表示されるグラフの線６０３の線の形状の「画面表示例」を示すものである。本図に示すように、グラフの線６０３の線の形状は、途中で分断されている。
【０１５６】
これは、消去指示線６０１に沿って水平にある程度の時間連続してタッチペンでタッチパネルを押圧操作しながら移動させると、グラフの線４０３の形状のうち、当該移動区間の水平範囲が削除されるからである。
【０１５７】
このように、本実施形態によれば、簡単な操作で、線の形状から一部の区間を削除することができ、ユーザは容易に線の形状を修正、編集することができるようになる。
【０１５８】
（座標値に対する種々の処理）
以下では、特に株の価格変動を示す場合に用いられる線の形状を検出する技術について説明する。本技術は、上記のような技術によって入力された線の形状が、株の価格の時間経過をあらわすグラフだと考えたときに、株の価格変化の特徴を検出することに適用することができる。
【０１５９】
このような株の価格変化に特徴的な形状には、ペナントとフラッグと呼ばれるものがある。図８は、ペナントとフラッグの形状を表す説明図である。以下、本図を参照して説明する。
【０１６０】
本図（ａ）（ｂ）（ｃ）は、ペナントと呼ばれる形状であり、当初は値動きが激しいが、時間が経過するにつれて値が次第に収束するような形状である。すなわち、価格が振動しながら（ジグザグになりながら）、その振動幅が次第に狭まっていく形状である。さらに、平均的な値がほぼ一定のときは単に「ペナント」もしくは「水平ペナント」（本図（ａ））、上昇しているときは「上昇ペナント」（本図（ｂ））、下降しているときは「下降ペナント」（本図（ｃ））のように呼ぶ。
【０１６１】
一方、本図（ｄ）（ｅ）（ｆ）は、フラッグと呼ばれる形状であり、ほぼ同じ値動きの変動幅が維持される形状である。すなわち、ほぼ一定の振動幅で振動する（ジグザグになる）形状である。さらに、平均的な値がほぼ一定のときは単に「フラッグ」もしくは「水平フラッグ」（本図（ｄ））、上昇しているときは「上昇フラッグ」（本図（ｅ））、下降しているときは「下降フラッグ」（本図（ｆ））のように呼ぶ。
【０１６２】
ペナントやフラッグは、株価の変動においては、もっとも直近（最近）に生じたものが重要である。したがって、ペナントやフラッグを検出する際には、これらがグラフの終端近傍に存在するか否か（上記実施形態でいえば、ｘ座標が一番大きいところで当該形状を呈するか否か）、を検出する必要がある。
【０１６３】
さて、上記実施形態においては、線の形状が座標記憶部２０３の配列Fに記憶されている。したがって、この配列Fの内容を吟味することで、ペナントやフラッグを検出することができる。以下、この検出を行う処理の詳細について説明する。
【０１６４】
本実施形態では、線の形状の極大点、極小点、および、その時のｘ座標の広がりから、ペナントもしくはフラッグの確認を行う。図９は、線の形状にペナントやフラッグの形状があるか否かを検出するための検出処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【０１６５】
本処理においては、以下のような定数および一時変数を用いる。
定数W。極大点を2W個、極小点を2W個抽出するために用いる。
極大点のｘ座標値およびｙ座標値の部分和および平均を、前半と後半に分けて記憶するための配列AX，AY。いずれも要素は２つである。
極小点のｘ座標値およびｙ座標値の部分和および平均を、前半と後半に分けて記憶するための配列IX，IY。いずれも要素は２つである。
2W個の極大点および極小点のｘ座標の広がりが、ペナントもしくはフラッグに相当すると考えられるための閾値定数Z。ｘ座標の広がりがZ以下であれば、激しく値が上下していることになり、ペナントもしくはフラッグであると考えるが、そうでなければ、ゆるやかに値が上下していることになり、ペナントでもフラッグでもないことになる。
【０１６６】
本処理が開始されると、ＣＰＵ  １０２は、ＲＡＭ  １０３にアクセスして、配列AX，AY，IX，IYを初期化する（ステップＳ８０１）。具体的には、i = 0，1のそれぞれについて、AX[i] ← 0，AY[i] ← 0，IX[i] ← 0，IY[i] ← 0を実行する。
【０１６７】
次に、現在までに検出された極大点および極小点の数をカウントするための変数mを初期化する（ステップＳ８０２）。具体的には、m ← 0を実行する。
【０１６８】
さらに、i = 318，317，…，2，1について、iの値を１ずつ減らしながら、以下の処理を繰り返す（ステップＳ８０３）。
【０１６９】
まず、F[i-1] < F[i]かつF[i] > F[i+1]であるか否か、すなわち、極大点か否かを判定する（ステップＳ８０４）。そうであれば（ステップＳ８０４；Ｙｅｓ）、AX[m/(4W)] ← AX[m/(4w)]+i，AY[m/(4W)] ← AY[m/(4w)]+F[i]を実行して（ステップＳ８０５）、極大点のｘ座標値とｙ座標値を積算する。なお、「a/b」は、aをbで割った整数除算（余りを切り捨てる割り算）を意味する。
【０１７０】
そして、m ← m+1を実行して（ステップＳ８０６）、m ≧ 4Wであれば（ステップＳ８０７；Ｙｅｓ）、繰返しを抜けてステップＳ８２０に進み、そうでなければ（ステップＳ８０７；Ｎｏ）、次の繰返しに移る（ステップＳ８０８）。
【０１７１】
一方、極大点でなければ（ステップＳ８０４；Ｎｏ）、F[i-1] > F[i]かつF[i] < F[i+1]であるか否か、すなわち、極小点であるか否かを判定する（ステップＳ８０９）。そうであれば（ステップＳ８０９；Ｙｅｓ）、IX[m/(4W)] ← IX[m/(4w)]+i，IY[m/(4W)] ← IY[m/(4w)]+F[i]を実行して（ステップＳ８１０）、極小点のｘ座標値とｙ座標値を積算する。そして、ステップＳ８０６に進む。
【０１７２】
さて、繰返し（ステップＳ８０３〜ステップＳ８０８）が単純に終了したときは、検出された極大点および極小点の総数が少なかったことになるため、線の形状はペナントでもフラッグでもない旨を出力して（ステップＳ８１１）、本処理を終了する。当該出力先は、ＲＡＭ  １０３内の情報格納場所として他の機能単位に処理させることとしても良いし、ユーザに提示することとしても良い。
【０１７３】
一方、繰返しの途中で抜けた場合には（ステップＳ８０７；Ｙｅｓ）、i = 0，1のそれぞれについて、以下の処理を繰り返す（ステップＳ８２０）。すなわち、AX[i] ← AX[i]/W，AY[i] ← AY[i]/W，IX[i] ← IX[i]/W，IY[i] ← IY[i]/Wを実行して（ステップＳ８２１）、繰り返しを行う（ステップＳ８２２）。
【０１７４】
なお、ステップＳ８０３〜ステップＳ８０８の繰返しでは、iの値を１ずつ減らされていく一方で、mの値は１ずつ増えていく。AX，AY，IX，IYの添字が小さい要素には、グラフにおいてiの値が大きい側（右側、すなわち直近の側）の情報が蓄積されており、AX，AY，IX，IYの添字が大きい要素には、グラフにおいてiの値が小さい側（右側、すなわち過去の側）の情報が蓄積されている。したがって、ステップＳ８２２の後は、
(AX[0],AY[0])  …  直近の極大点の平均（重心）
(AX[1],AY[1])  …  以前の極大点の平均（重心）
(IX[0],IY[0])  …  直近の極小点の平均（重心）
(IX[1],IY[1])  …  以前の極小点の平均（重心）
となる。
【０１７５】
図１０は、極大点、極小点および各重心の位置の関係を示す説明図である。本図では、W = 2の場合について図示している。以下、本図を参照して説明する。
【０１７６】
本図に示すように直近から過去に向けて極大点９３１、９２１、９１１、９０１および極小点９３６、９２６、９１６、９０６が検出されている。
【０１７７】
時系列に沿ってグラフを描く場合、左から右に時間が進むように描くことが一般に行われているため、画面右側の方が「直近」であり、画面左側の方が「過去」に相当する。
【０１７８】
そして、過去の極大点の重心９６１は、極大点９０１、９１１の中点にあり、直近の極大点の重心９７１は、極大点９２１、９３１の中点にあり、過去の極小点の重心９６６は、極大点９０６、９１６の中点にあり、直近の極小点の重心９７６は、極大点９２６、９３６の中点にある。
【０１７９】
これらの重心９６１、９６６、９７１、９７６の位置関係によって、ペナントか、フラッグか、上昇か下降か水平か、などを判断するのである。
【０１８０】
まず、AX[0]-AX[1]<ZかつIX[0]-IX[1]<Zであるか否かを調べる（ステップＳ８２３）。そうでなければ（ステップＳ８２３；Ｎｏ）、値動きの時間変化が激しくないことになるので、ステップＳ８１１に進む。
【０１８１】
一方、そうであれば（ステップＳ８２３；Ｙｅｓ）、AY[0]-IY[0]とAY[1]-IY[1]を比較する（ステップＳ８２４）。前者が後者より小さければ（ステップＳ８２４；＜）、「ペナント」である旨を出力し（ステップＳ８２５）、前者が後者と（ほぼ）等しければ（ステップＳ８２４；＝）、「フラッグ」である旨を出力し（ステップＳ８２６）、前者が後者より大きければ（ステップＳ８２４；＞）、「ノーマル」である旨を出力する（ステップＳ８３１）。ここで「ノーマル」とは、「ペナント」でも「フラッグ」でもないことを意味する。
【０１８２】
さらに、AY[0]+IY[0]とAY[1]+IY[1]を比較する（ステップＳ８２７）。前者が後者より大きければ（ステップＳ８２７；＞）、「上昇」である旨を出力し（ステップＳ８２８）、前者が後者より小さければ（ステップＳ８２７；＜）、「下降」である旨を出力し（ステップＳ８２９）、前者が後者と（ほぼ）等しければ（ステップＳ８２７；＝）、「水平」である旨を出力して（ステップＳ８３０）、本処理を終了する。
【０１８３】
なお、ステップＳ８２４およびＳ８２７における比較においては、いずれも、所定の誤差を考慮して、２つの値が当該誤差範囲内に納まれば、「（ほぼ）等しい」と判断することとするのが典型的である。
【０１８４】
また、本実施形態では、ステップＳ８３１において「ノーマル」と出力した後にステップＳ８２７に進むこととしているが、そのかわりにステップＳ８３１からステップＳ８１１に進むこととして、「ノーマル」の場合には「上昇」「下降」「水平」の判断は行わないこととしても良い。
【０１８５】
本処理によれば、特に株の価格変動を示す場合に用いられる線の形状を検出することができるようになる。
【０１８６】
（線の形状の類似度）
上記実施形態では、極大点や極小点の平均位置（重心）を用いて、線の形状の特徴を抽出していたが、複数の線同士の類似度を求めたい場合も多い。たとえば、時間経過に伴う株価の変化をユーザがタッチペンを用いて入力し、その変化に類似する株式を検索する、などの応用を考える場合には、上記のように抽出された特徴を適切に利用して、線の形状の類似度を求める必要がある。以下では、このような線の形状の類似度を求める技術について説明する。
【０１８７】
２つの線の形状を比較するためには、まず、その２つの線に対して適切な正規化を行う必要がある。以下、上記の実施形態に沿って、水平方向の右から左にｘ軸が設定され、垂直方向の下から上にｙ軸が設定され、このｘ−ｙ平面内に、対比される線が配置されている場合を考える。
【０１８８】
まず、２つの線の横幅（ｘ軸方向の幅）が異なる場合には、一方を横方向（ｘ軸方向）に拡大もしくは縮小して、２つの線の横幅を等しくするように、変換を加える。このとき、両者の長さの比がある定数（たとえば２や３や５。）よりも大きかったり、別の定数（たとえば０.５や０.３３３や０.２。）よりも小さかったりした場合には、２つの線は大きさが違い過ぎるため、「類似判定不能」あるいは「類似していない」と判断することが望ましい。
【０１８９】
また、線が途中で途切れている場合には、途切れている間を適当に補間（単に線分で結んだり、スプライン補間する等の手法を採用することができる。）しても良いし、複数の線のうち直近のもの（最も右側にあるもの）を選択しても良い。
【０１９０】
また、横方向への拡大もしくは縮小は、両方の線に対して行うこととしても良く、両方の線を縮小するのが典型的である。
【０１９１】
たとえば、上記の実施形態では、i = 0,…,319について値F[i]が座標記憶部２０３に記憶されているが、これを幅Wに縮小し、k = 0，1,…，W-1について値f[k]が定められるようにするには、
f[k] = Σi=0W/320 F[kW/320 + i](W/320)
のように計算して、kに対する値f[k]が、区間i = kW/320，kW/320+1，…，(k+1)W/320 - 1に対する値F[i]の平均値となるような変形を行えばよい。
【０１９２】
以下、理解を容易にするため、いずれの線の形状についても、適切な選択や変換を行って、線は途中で途切れず、幅はWに正規化されているものとする。
【０１９３】
そして、２つの線について、それぞれ正規化された結果が、ＲＡＭ  １０３内の要素数Wの配列f，gに格納されているものとする。また、当該配列名f，gによって、線そのものを意味するものとする。
【０１９４】
次に、２つの線f，gのｙ軸方向の高さを揃えるため、それぞれの重心を求める。上記実施形態では、ｘ座標値iでのｙ座標値がそれぞれf[i]，g[i]であるから、それぞれの重心のｙ軸方向の高さp，qは、
p = Σi=0W-1  F[i]/W
q = Σi=0W-1  G[i]/W
により求めることができる。
【０１９５】
すると、高さを揃えたときに、同じx座標値[ｉ]における２つの線f，gの高さの差Δ[i]は、
Δ[i] = (F[i]-p) - (G[i]-q)
により計算できる。
【０１９６】
さて、２つの線f，gの類似度L(f,g)については、自乗和を利用した以下のような計算式を用いる手法が考えられる。
L(f,g) = Σi=0W-1 Δ[i]2
すなわち、L(f,g)が小さければ小さいほど、２つの線f，gは類似している、と考えるのである。
【０１９７】
しかしながら、株価の変動のように、フラッグであるかペナントであるか、や、直近の価格の変動が重要視される。一方で、上記のように、幅３２０の情報を幅Wに圧縮することは、いわゆる高周波成分を除去することに相当し、高周波成分そのものであるフラッグやペナントの情報そのものが落ちてしまう。
【０１９８】
そこで、２つの線f，gの圧縮前の線F，Gのそれぞれが、上記の実施形態の技術により「フラッグ」「ペナント」「非フラッグ・非ペナント（以下「ノーマル」という。）」のいずれであるかをあらかじめ判定しておき、その情報を用いて、類似度を計算することが望ましい。
【０１９９】
そのために、以下のようなW個の正の値の重みパラメータを用いる。
w[0]，w[1]，…，w[W-1]
この重みパラメータは、２つの線f，gの変換前の元の線F，Gの形状が、「フラッグ」「ペナント」「ノーマル」か否かによって、定数N (0<N<W)を用いて、以下のような関係を持つ値とする。ここで、W-Nに相当する縮小前の幅は、上記実施形態におけるZに相当するものとすることが望ましい。
（１）両者が「ノーマル」である場合は、
w[0] = w[1] = … w[N-1] = 1 = w[N] = W[N+1] = … = W[W-1] = 1
（２）両者が「フラッグ」である場合、もしくは、両者が「ペナント」である場合は、
w[0] = w[1] = … w[N-1] = 1 > w[N] = W[N+1] = … = W[W-1] = ffpp = 0.5
（３）一方が「ノーマル」、他方が「フラッグ」もしくは「ペナント」である場合は、定数N (0<N<W)により、
w[0] = w[1] = … w[N-1] = 1 < w[N] = W[N+1] = … = W[W-1] = nfp = 2
（４）一方が「フラッグ」、他方が「ペナント」である場合は、定数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=0W-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]が、１からffpp，fp，nfpに向かって単調に変化していくようなパラメータ設定を採用しても良い。
【０２０３】
このように、２つの線F，Gの形状について、その高周波成分を除去した配列f，gを考え、F，Gのそれぞれについて検出された「フラッグ」「ペナント」「ノーマル」の形状特性に基づいて重みwを定め、これらの情報に基づいて類似度L(f,g)を計算することにより、両者がどれだけ似ているかを判定することができる。
【０２０４】
したがって、あらかじめ複数の線G1，…，GDの形状データが存在する場合にも、そのそれぞれについてユーザが入力した線の形状Fとの類似度を計算し、類似度の小さい順にソートすることによって、G1，…，GDの中から、Fに形状が類似しているものをユーザに適切に提示し、場合によっては選択させることができるようになる。
【０２０５】
図１１は、このような態様を実現する線形状処理装置の概要構成を示す模式図である。以下本図を参照して説明する。なお、本図における各要素のうち、図２に示すものと同様の機能を果たすものについては、同じ符号を付すこととしており、理解を容易にするため、異なる機能を有する要素について説明を加えるものとする。
【０２０６】
線形状処理装置２０１は、上記実施形態に加えて、候補記憶部９９１、類似抽出部９９２、提示部９９３を備える。
【０２０７】
候補記憶部９９１は、複数の線G1，…，GDの形状のデータをあらかじめ記憶するもので、株価変動のデータベースに相当するものである。なお、これらのデータは時間とともに更新されるものとしても良いが、計算機シミュレーションなどの用途のために固定値を採用するときには、それぞれの形状について、あらかじめ、「フラッグ」か「ペナント」か「ノーマル」かを判定しておくとともに、所定の幅Wに変換した後の配列g1，…，gDもあらかじめ用意しておくと、類似度計算を容易に行うことができる。
【０２０８】
一方、類似抽出部９９２は、ユーザが入力した線Fの形状に対して検出部２０７が行った「フラッグ」「ペナント」「ノーマル」の検出結果を用いるとともに、上記のような重み付けをおこなった類似度計算処理に基づいて、座標記憶部２０３に記憶されている線Fの形状、を対比して、複数の線G1，…，GDをソートする、あるいは、順次類似度を計算し、これまでに計算された類似度と対比して、値が小さいものを所定の個数まで残すようにして、複数の線G1，…，GDから、線Fに類似するものを所定の個数抽出する。
【０２０９】
さらに、提示部９９３は、線Fに類似するとして抽出された上位の所定の順位までの線の情報をユーザに提示して、後の処理に備える。たとえば、当該抽出された線とともに当該線に対応付けられる株の銘柄の概要情報を表示する。そして、これらの抽出されたものの中からいずれかをユーザが選択した場合には、選択された線に対応付けられる株の銘柄の詳細情報を提示する、等である。
【０２１０】
本実施形態によれば、株価の変動などをグラフで表現するときに、注目すべき事項に基づいてグラフの類似度を計算することができ、株価の変動に基づいて、ユーザが所望の銘柄を検索しやすくすることができる。
【産業上の利用可能性】
【０２１１】
以上説明したように、本発明によれば、マウスやタッチパネル等により線の形状の入力を受け付け、当該線の形状を処理するのに好適な、線形状処理装置、線形状処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【０２１２】
【図１】本発明に係る線形状処理装置が実現される一般的な情報処理装置の概要構成を示す説明図である。
【図２】本実施形態に係る線形状処理装置の概要構成を示す説明図である。
【図３】本実施形態の線形状処理装置にて実行される座標値入力表示処理の制御の流れを示すフローチャートである。
【図４】押圧操作されたタッチペンの移動の軌跡と、これに対して表示されるグラフ線の形状の様子を示す説明図である。
【図５】タッチペンの移動の軌跡と、画面に表示される線の形状との関係を説明する説明図である。
【図６】削除条件が成立するか否かを判断し、成立した場合に実行される処理の詳細な制御の流れを示すフローチャートである。
【図７】タッチペンを右から左に移動する操作をユーザが行った場合に入力される線の形状を示す説明図である。
【図８】ペナントとフラッグの形状を表す説明図である。
【図９】線の形状にペナントやフラッグの形状があるか否かを検出するための検出処理の制御の流れを示すフローチャートである。
【図１０】極大点、極小点および各重心の位置の関係を示す説明図である。
【図１１】本実施形態に係る線形状処理装置の概要構成を示す説明図である。
【符号の説明】
【０２１３】
１０１  情報処理装置
１０２  ＣＰＵ
１０３  ＲＡＭ
１０４  ＲＯＭ
１０５  入力装置
１０６  画像処理部
１０７  液晶ディスプレイ
１０８  音声処理部
１０９  スピーカ
１１０  カセットリーダ
１１１  ＲＯＭカセット
２０１  線形状処理装置
２０２  入力受付部
２０３  座標記憶部
２０４  履歴記憶部
２０５  表示部
２０６  削除部
２０７  検出部
４０１  ジグザグ線
４０２  重複部分
４０３  グラフの線
４０４  平らな線
４０５  グラフの線
６０１  消去指示線
６０３  グラフの線
９０１  極大点
９０６  極小点
９１１  極大点
９１６  極小点
９２１  極大点
９２６  極小点
９３１  極大点
９３６  極小点
９６１  過去の極大点の重心
９６６  過去の極小点の重心
９７１  直近の極大点の重心
９７６  直近の極小点の重心
９９１  候補記憶部
９９２  類似抽出部
９９３  提示部
【図１】
2008003823.tif 000003
【図２】
2008003823.tif 000004
【図３】
2008003823.tif 000005
【図４】
2008003823.tif 000006
【図５】
2008003823.tif 000007
【図６】
2008003823.tif 000008
【図７】
2008003823.tif 000009
【図８】
2008003823.tif 000010
【図９】
2008003823.tif 000011
【図１０】
2008003823.tif 000012
【図１１】
2008003823.tif 000013
【手続補正書】
【提出日】平成19年10月26日(2007.10.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
２次元領域内のそれぞれの位置が第１座標値と第２座標値とにより指定され、当該２次元領域内に配置される線の形状を処理する線形状処理装置であって、当該２次元領域内の第１座標値と、第２座標値と、のそれぞれには下限および上限があり、
当該２次元領域内に配置される線に含まれる点の位置を指定する第１種指示入力と、当該第１種指示入力とは異なる第２種指示入力と、を受け付ける入力受付部、
当該第１種指示入力の受付が続いて行われた場合、当該先の第１種指示入力に指定される開始位置の第１座標値から当該後の第１種指示入力に指定される終了位置の第１座標値までの間に含まれる第１座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第１座標値を有する点の第２座標値を、当該第１座標値に対応付けて記憶する記憶部、
当該第１座標値の下限から上限へ昇順に、もしくは、上限から下限へ降順に、第１座標値を選択し、当該選択された第１座標値に対応付けられて前記記憶部に記憶された第２座標値を取得し、当該２次元領域内の当該取得された第２座標値が対応付けられる第１座標値と当該第２座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該２次元領域内に配置される線の形状を表示する表示部、
当該第１種指示入力の受付が続いて所定の回数行われ、かつ、当該続いて行われた第１種指示入力の互いに隣り合う第１種指示入力の対のすべてにおいて、当該対の先の第１種指示入力に指定される位置から当該対の後の第１種指示入力に指定される位置へのベクトルと、前記表示部において当該第１座標値が選択される順に当該第１座標値のみを変化させる方向のベクトルと、のなす角が所定の鈍角以上である場合、当該なす角が当該所定の鈍角以上である間続いて行われた第１種指示入力のそれぞれに指定される複数の第１座標値のうちの最小値と最大値を求め、当該最小値から当該最大値までの範囲に含まれる第１座標値に対応付けられて前記記憶部に記憶される第２座標値の値を、前記記憶部から削除する削除部
を備えることを特徴とする線形状処理装置。
【請求項２】
請求項１に記載の線形状処理装置であって、
前記記憶部は、当該第２種指示入力の受付に続いて当該第１種指示入力の受付が行われた場合、当該第１種指示入力に指定される点の第２座標値を、当該点の第１座標値に対応付けて記憶する
ことを特徴とする線形状処理装置。
【請求項３】
請求項１または２に記載の線形状処理装置であって、
前記入力受付部は、当該画面の表面に対する押圧操作を、当該押圧操作された位置に対応付けられる当該２次元領域内の位置を指定する第１種指示入力として受け付け、当該画面の表面からの離脱操作を、第２種指示入力として受け付ける
ことを特徴とする線形状処理装置。
【請求項４】
請求項１から３のいずれか１項に記載の線形状処理装置であって、当該第１座標値は整数により表現され、
前記表示部は、当該描画される点の第１座標値と、その直前に描画された点の第１座標値と、が隣り合う場合、当該描画される点と、その直前に描画された点と、を結ぶ線分をさらに描画する
ことを特徴とする線形状処理装置。
【請求項５】
請求項４に記載の線形状処理装置であって、
前記記憶部は、当該第１座標値をインデックスとする配列の要素として当該第２座標値、もしくは、当該第１座標値に対応付けられるべき第２座標値は削除されている旨を示す値を記憶し、
前記表示部は、当該配列のインデックスが当該下限から当該上限まで昇順に、もしくは、当該上限から当該下限まで降順に、変化するように当該配列の要素を走査して、当該第１座標値に対応付けられる当該第２座標値を取得する
ことを特徴とする線形状処理装置。
【請求項６】
請求項１から５のいずれか１項に記載の線形状処理装置であって、
当該２次元領域には、水平方向の座標軸と垂直方向の座標軸とが設定され、当該第１座標値は当該水平方向の座標軸に対する座標値であり、当該第２座標値は当該垂直方向の座標軸に対する座標値である
ことを特徴とする線形状処理装置。
【請求項７】
請求項１から５のいずれか１項に記載の線形状処理装置であって、
当該２次元領域には、水平方向の座標軸と垂直方向の座標軸とが設定され、当該第１座標値は当該水平方向の座標軸に対する座標値であり、当該第２座標値は当該垂直方向の座標軸に対する座標値であり、
前記表示部にて当該第１座標値が選択される順に沿って当該第１座標値のみを変化させる方向は、水平方向左から右である
ことを特徴とする線形状処理装置。
【請求項８】
請求項１から５のいずれか１項に記載の線形状処理装置であって、
当該２次元領域には、極座標の座標系が設定され、当該第１座標値は当該極座標の角度に対する座標値であり、当該第２座標値は当該極座標の半径に対する座標値である
ことを特徴とする線形状処理装置。
【請求項９】
２次元領域内のそれぞれの位置が第１座標値と第２座標値とにより指定され、当該２次元領域内に配置される線の形状を処理する線形状処理方法であって、入力受付部、記憶部、表示部、削除部を有する線形状処理装置が実行し、当該２次元領域内の第１座標値と、第２座標値と、のそれぞれには下限および上限があり、
前記入力受付部が、当該２次元領域内に配置される線に含まれる点の位置を指定する第１種指示入力と、当該第１種指示入力とは異なる第２種指示入力と、を受け付ける入力受付工程、
当該第１種指示入力の受付が続いて行われた場合、前記記憶部に、当該先の第１種指示入力に指定される開始位置の第１座標値から当該後の第１種指示入力に指定される終了位置の第１座標値までの間に含まれる第１座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第１座標値を有する点の第２座標値を、当該第１座標値に対応付けて記憶させる記憶工程、
前記表示部が、当該第１座標値の下限から上限へ昇順に、もしくは、上限から下限へ降順に、第１座標値を選択し、当該選択された第１座標値に対応付けられて前記記憶部に記憶された第２座標値を取得し、当該２次元領域内の当該取得された第２座標値が対応付けられる第１座標値と当該第２座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該２次元領域内に配置される線の形状を表示する表示工程、
前記削除部が、当該第１種指示入力の受付が続いて所定の回数行われ、かつ、当該続いて行われた第１種指示入力の互いに隣り合う第１種指示入力の対のすべてにおいて、当該対の先の第１種指示入力に指定される位置から当該対の後の第１種指示入力に指定される位置へのベクトルと、前記表示工程において当該第１座標値が選択される順に当該第１座標値のみを変化させる方向のベクトルと、のなす角が所定の鈍角以上である場合、当該なす角が当該所定の鈍角以上である間続いて行われた第１種指示入力のそれぞれに指定される複数の第１座標値のうちの最小値と最大値を求め、当該最小値から当該最大値までの範囲に含まれる第１座標値に対応付けられて前記記憶部に記憶される第２座標値の値を、前記記憶部から削除する削除工程
を備えることを特徴とする線形状処理方法。
【請求項１０】
コンピュータに、２次元領域内のそれぞれの位置が第１座標値と第２座標値とにより指定され、当該２次元領域内に配置される線の形状を処理させるプログラムであって、
当該２次元領域内の第１座標値と、第２座標値と、のそれぞれには下限および上限があり、
当該プログラムは、当該コンピュータを、
当該２次元領域内に配置される線に含まれる点の位置を指定する第１種指示入力と、当該第１種指示入力とは異なる第２種指示入力と、を受け付ける入力受付部、
当該第１種指示入力の受付が続いて行われた場合、当該先の第１種指示入力に指定される開始位置の第１座標値から当該後の第１種指示入力に指定される終了位置の第１座標値までの間に含まれる第１座標値のそれぞれについて、当該開始位置と当該終了位置とを結ぶ線分に含まれ当該第１座標値を有する点の第２座標値を、当該第１座標値に対応付けて記憶する記憶部、
当該第１座標値の下限から上限へ昇順に、もしくは、上限から下限へ降順に、第１座標値を選択し、当該選択された第１座標値に対応付けられて前記記憶部に記憶された第２座標値を取得し、当該２次元領域内の当該取得された第２座標値が対応付けられる第１座標値と当該第２座標値とにより指定される位置に対応付けられる画面内の位置に点を描画することにより、当該２次元領域内に配置される線の形状を表示する表示部、
当該第１種指示入力の受付が続いて所定の回数行われ、かつ、当該続いて行われた第１種指示入力の互いに隣り合う第１種指示入力の対のすべてにおいて、当該対の先の第１種指示入力に指定される位置から当該対の後の第１種指示入力に指定される位置へのベクトルと、前記表示部において当該第１座標値が選択される順に当該第１座標値のみを変化させる方向のベクトルと、のなす角が所定の鈍角以上である場合、当該なす角が当該所定の鈍角以上である間続いて行われた第１種指示入力のそれぞれに指定される複数の第１座標値のうちの最小値と最大値を求め、当該最小値から当該最大値までの範囲に含まれる第１座標値に対応付けられて前記記憶部に記憶される第２座標値の値を、前記記憶部から削除する削除部
として機能させることを特徴とするプログラム。