(57)【要約】【課題】不連続点があるグラフであっても正確に描画することができるグラフ描画システムを提供する。【解決手段】グラフ描画システム１は、ユーザ端末１０と演算サーバ２０とを備える。ユーザ端末１０は、入力された関数の情報を含む計算問合せデータを演算サーバ２０宛に送信し、描画点情報を演算サーバ２０から取得し、描画点情報に基づいて、関数に対応するグラフを描画する。演算サーバ２０は、ユーザ端末１０から計算問合せデータを取得し、計算問合せデータに基づいて、関数が表す複数の描画点の座標と互いに隣り合う２つの前記描画点を結線するか否かを指定する連続可否情報とを含む前記描画点情報を算出し、ユーザ端末１０に送信する。【選択図】図１
2019061344.tif 000002
【特許請求の範囲】
【請求項１】
入力装置と表示装置とを有し、関数の情報が入力されるユーザ端末と、
ネットワークを介して前記ユーザ端末に接続されている演算サーバと
を備え、
前記ユーザ端末は、
入力された前記関数の情報を含む計算問合せデータを前記演算サーバ宛に送信する計算問合せデータ送信部と、
前記関数に対応するグラフを描画するための描画点情報を前記演算サーバから取得する描画点情報受信部と、
前記描画点情報に基づいて、前記関数に対応するグラフを描画して前記表示装置に示すグラフ描画部と
を有し、
前記演算サーバは、
前記ユーザ端末から前記計算問合せデータを取得する計算問合せデータ受信部と、
前記計算問合せデータに基づいて、前記表示装置のグラフ描画エリアにおける前記関数が表す複数の描画点の座標と、互いに隣り合う２つの前記描画点を結線するか否かを指定する連続可否情報とを含む前記描画点情報を算出する演算部と、
算出した前記描画点情報を前記ユーザ端末に送信する描画点情報送信部と
を有する、
グラフ描画システム。
【請求項２】
前記連続可否情報は、前記複数の描画点のうち、互いに結線する前記描画点をグループ化する情報を含む、請求項１に記載のグラフ描画システム。
【請求項３】
前記描画点情報は、
前記描画点の座標を示す第３次元の情報と、
前記描画点の座標のうち、互いに結線する前記描画点を順に示す第２次元の情報と、
前記第２次元の情報を列挙した第１次元の情報と
を含む多次元配列構造を有する、請求項１に記載のグラフ描画システム。
【請求項４】
前記計算問合せデータは、前記関数に係る情報と前記関数の変数の刻み幅に係る情報とを含み、
前記演算部は、前記変数を前記刻み幅毎に変更しながら前記関数に代入することで前記複数の描画点の座標を算出し、前記複数の描画点の各々に対する不連続点判定を行って前記連続可否情報を決定し、前記描画点情報を算出する、
請求項１乃至３のうち何れか１項に記載のグラフ描画システム。
【請求項５】
前記ユーザ端末は、前記表示装置に描画された前記グラフを移動、拡大又は縮小させるためのグラフ操作を取得する操作取得部と、
前記グラフ操作に応じた前記グラフを再描画するにあたって、新たな前記描画点情報が必要であるために前記計算問合せデータを前記演算サーバに再送信するか否かを判定する再送信判定部と、
をさらに備え、
前記再送信判定部で前記再送信が必要であると判定したとき、前記計算問合せデータ送信部は、前記計算問合せデータを前記演算サーバ宛に再送信し、
前記再送信判定部で前記再送信が必要でないと判定したとき、前記グラフ描画部は、既に有している前記描画点情報に基づいて、前記グラフ操作に応じた前記グラフを再描画する、
請求項１乃至４のうち何れか１項に記載のグラフ描画システム。
【請求項６】
前記演算サーバは、ストレージをさらに備え、
前記演算部は、前記計算問合せデータと前記描画点情報との組み合わせを前記ストレージに蓄積させ、前記ユーザ端末から取得した前記計算問合せデータと前記ストレージに蓄積されている情報とを比較して、前記描画点情報を再び算出する必要があるか否かを判定し、
前記演算部が再び算出する必要があると判定したとき、前記演算部は前記ユーザ端末から取得した前記計算問合せデータに基づいて前記描画点情報を再び算出し、前記描画点情報送信部は算出した前記描画点情報を前記ユーザ端末に送信し、
前記演算部が再び算出する必要がないと判定したとき、前記描画点情報送信部は前記ストレージに蓄積されている前記描画点情報を前記ユーザ端末に送信する、
請求項１乃至５のうち何れか１項に記載のグラフ描画システム。
【請求項７】
入力装置と表示装置とを有するユーザ端末において関数の情報が入力された場合に、前記ユーザ端末から、ネットワークを介して、前記関数の情報を含む計算問合せデータを取得する計算問合せデータ受信部と、
前記計算問合せデータに基づいて、前記表示装置のグラフ描画エリアにおける前記関数が表す複数の描画点の座標と、互いに隣り合う２つの前記描画点を結線するか否かを指定する連続可否情報とを含む描画点情報を算出する演算部と、
前記算出した前記描画点情報を前記ユーザ端末に送信する描画点情報送信部と
を備える演算サーバ。
【請求項８】
入力装置と表示装置とを有し、関数の情報が入力されるユーザ端末と、
ネットワークを介して前記ユーザ端末に接続されている演算サーバと
を備えるグラフ描画システムの制御方法であって、
前記ユーザ端末に、
入力された前記関数の情報を含む計算問合せデータを前記演算サーバ宛に送信させることと、
前記関数に対応するグラフを描画するための描画点情報を前記演算サーバから取得させることと、
前記描画点情報に基づいて、前記関数に対応するグラフを描画して前記表示装置に表示させることと、
前記演算サーバに、
前記ユーザ端末から前記計算問合せデータを取得させることと、
前記計算問合せデータに基づいて、前記表示装置のグラフ描画エリアにおける前記関数が表す複数の描画点の座標と、互いに隣り合う２つの前記描画点を結線するか否かを指定する連続可否情報とを含む前記描画点情報を算出させることと、
算出した前記描画点情報を前記ユーザ端末に送信させることと
を行わせるグラフ描画システムの制御方法。
【請求項９】
入力装置と表示装置とを有するユーザ端末において関数の情報が入力された場合に、前記ユーザ端末から、ネットワークを介して、前記関数の情報を含む計算問合せデータを取得することと、
前記計算問合せデータに基づいて、前記表示装置のグラフ描画エリアにおける前記関数が表す複数の描画点の座標と、互いに隣り合う２つの前記描画点を結線するか否かを指定する連続可否情報とを含む描画点情報を算出することと、
前記算出した前記描画点情報を前記ユーザ端末に送信することと
を演算サーバに行わせるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフ描画システム、演算サーバ、グラフ描画システムの制御方法、及び演算サーバのためのプログラムに関する。
【背景技術】
【０００２】
ユーザが入力した数式に対応するグラフを表示画面に描画する機能であるグラフ描画機能を有する関数電卓が知られている。例えば特許文献１には、異なる種類のグラフを表示画面上で重ね合わせられる関数電卓について開示されている。
【０００３】
また、インターネット環境には、上述のようなグラフ描画機能を実現するためのＷｅｂサイトが存在している。インターネット環境下にある例えばパーソナルコンピュータ（ＰＣ）、タブレット型の情報端末等といった端末は、このようなＷｅｂサイトにアクセスして、次のような動作を行う。すなわち、端末は、表示画面に数式入力画面を表示する。ユーザがこの数式入力画面に関数を入力してグラフ描画を実行させるボタンを押したとき、端末は、表示画面に入力した関数に対応するグラフを描画する。
【０００４】
このようなグラフの描画方法の１つとして、所定の刻み幅で順に変更した値を、対象とする関数に代入することで、プロット点の座標を求め、これらの点を線で結ぶ方法が考えられる。しかしながら、このような方法では、本来不連続であるべき点と点との間が線で結ばれることがある。すなわち、不連続点を含むグラフを正確に描画できないことがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６３−１０３３５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、不連続点があるグラフをも正確に描画することができる、グラフ描画システム、演算サーバ、グラフ描画システムの制御方法、及び演算サーバのためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、グラフ描画システムは、入力装置と表示装置とを有し、関数の情報が入力されるユーザ端末と、ネットワークを介して前記ユーザ端末に接続されている演算サーバとを備え、前記ユーザ端末は、入力された前記関数の情報を含む計算問合せデータを前記演算サーバ宛に送信する計算問合せデータ送信部と、前記関数に対応するグラフを描画するための描画点情報を前記演算サーバから取得する描画点情報受信部と、前記描画点情報に基づいて、前記関数に対応するグラフを描画して前記表示装置に示すグラフ描画部とを有し、前記演算サーバは、前記ユーザ端末から前記計算問合せデータを取得する計算問合せデータ受信部と、前記計算問合せデータに基づいて、前記表示装置のグラフ描画エリアにおける前記関数が表す複数の描画点の座標と、互いに隣り合う２つの前記描画点を結線するか否かを指定する連続可否情報とを含む前記描画点情報を算出する演算部と、算出した前記描画点情報を前記ユーザ端末に送信する描画点情報送信部とを有する。
【発明の効果】
【０００８】
本発明によれば、不連続点があるグラフをも正確に描画することができる、グラフ描画システム、演算サーバ、グラフ描画システムの制御方法、及び演算サーバのためのプログラムを提供できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、一実施形態に係るグラフ描画システムの構成例の概略を示すブロック図である。
【図２】図２は、一実施形態のグラフ描画機能に係るユーザ端末による処理の一例の概略を示すフローチャートである。
【図３】図３は、第１の実施形態のグラフ描画機能に係る演算サーバによる処理の一例の概略を示すフローチャートである。
【図４】図４は、関数グラフ描画機能に係る表示画面の一例の概略を示す図である。
【図５】図５は、比較例に係るグラフの一例を示す図である。
【図６】図６は、第２の実施形態に係るユーザ端末によるグラフ操作処理の一例の概略を示すフローチャートである。
【図７】図７は、拡大操作が行われたときについて説明するための図である。
【図８】図８は、縮小操作が行われたときについて説明するための図である。
【図９】図９は、第３の実施形態に係る演算サーバによる処理の一例の概略を示すフローチャートである。
【発明を実施するための形態】
【００１０】
［第１の実施形態］
〈グラフ描画システム構成〉
本発明の第１の実施形態について図面を参照して説明する。図１は、本実施形態に係るグラフ描画システム１の構成例の概略を示す図である。本実施形態に係るグラフ描画システム１は、ユーザ端末１０と、演算サーバ２０とＷｅｂサーバ３２とを含む。ユーザ端末１０とＷｅｂサーバ３２とは、例えばインターネット３０といったネットワークを介して接続されている。Ｗｅｂサーバ３２と演算サーバ２０とは接続されている。なお、このグラフ描画システム１には、何台のユーザ端末１０が接続されてもよい。
【００１１】
Ｗｅｂサーバ３２上には、関数電卓Ｗｅｂアプリケーションのバッグエンドサーバが存在し、関数電卓Ｗｅｂアプリケーションの実現に必要な処理を担っている。Ｗｅｂサーバ３２のさらに背後には、関数電卓の演算サーバ２０が存在している。演算サーバ２０の演算エンジンには、Ｗｅｂサーバ３２のバッグエンドサーバからのみアクセスでき、外部からは直接アクセスできないようになっており、演算エンジンは秘匿されている。
【００１２】
ユーザ端末１０は、例えばパーソナルコンピュータ（ＰＣ）、タブレット型の情報端末、スマートフォン等といった装置である。ユーザ端末１０では、ウェブブラウザが動作する。ユーザ端末１０は、ウェブブラウザを用いて、Ｗｅｂサーバ３２を介して演算サーバ２０にアクセスする。Ｗｅｂサーバ３２にアクセスしたウェブブラウザは、関連データをダウンロードし，関数電卓Ｗｅｂアプリケーションを実行し、各種表示を行う。関数電卓Ｗｅｂアプリケーションの機能の一つとして、関数グラフ描画機能が存在する。関数グラフ描画機能の実行においては、ユーザは、グラフを描画したい数式を、ユーザ端末１０のウェブブラウザ上に入力する。ユーザ端末１０は、入力された数式を演算サーバ２０に送信する。演算サーバ２０は、受け取った数式に対応するグラフを描画するためのデータを描画点情報として作成し、当該データをユーザ端末１０に送信する。このように、関数電卓Ｗｅｂアプリケーションにおいて、グラフ描画点の計算を含む各種演算処理は、演算サーバ２０にて実施される。データを受け取ったユーザ端末１０は、当該データに基づいて、ウェブブラウザ上でグラフを描画し、グラフの提示を行う。
【００１３】
ユーザ端末１０は、図１に示すように、バスライン１９を介して互いに接続されたcentral processing unit（ＣＰＵ）１１と、read only memory（ＲＯＭ）１２と、random access memory（ＲＡＭ）１３と、ストレージ１４と、入力装置１５と、表示装置１６と、通信装置１７とを備える。ＣＰＵ１１は、各種信号処理等を行う。ＲＯＭ１２は、ＢＩＯＳ等を記録している。ＲＡＭ１３は、ＣＰＵ１１の主記憶装置として機能する。ＲＡＭ１３には、例えば、dynamic ＲＡＭ（ＤＲＡＭ）、static ＲＡＭ（ＳＲＡＭ）等が用いられ得る。ストレージ１４には、例えば、hard disk drive（ＨＤＤ）、solid state drive（ＳＳＤ）等が用いられる。ストレージ１４には、ＣＰＵ１１で用いられるプログラム、パラメータ等各種情報が記録されている。ＲＡＭ１３及びストレージ１４は、これに限らず各種記憶装置に置換され得る。入力装置１５は、例えばキーボード、マウス、タッチパネル等である。表示装置１６は、例えば液晶ディスプレ等である。通信装置１７は、ユーザ端末１０の外部の機器と通信を行う際に用いられる。通信装置１７は、例えばインターネットに接続する。
【００１４】
演算サーバ２０は、図１に示すように、バスライン２９を介して互いに接続されたＣＰＵ２１と、ＲＯＭ２２と、ＲＡＭ２３と、ストレージ２４と、通信装置２５とを備える。ＣＰＵ１１は、各種信号処理等を行う。ＲＯＭ１２は、ＣＰＵ１１の動作に用いられる情報を記録している。ＲＡＭ１３は、ＣＰＵ１１の主記憶装置として機能する。ストレージ１４には、ＣＰＵ１１で用いられるプログラム、パラメータ等各種情報が記録されている。また、ストレージ１４には、各種演算結果等も記録される。通信装置２５は、Ｗｅｂサーバ３２との通信に用いられる。
【００１５】
〈グラフ描画システムの動作〉
本実施形態に係るグラフ描画システム１の動作について図面を参照して説明する。図２は、関数電卓Ｗｅｂアプリケーションの関数グラフ描画機能に係るユーザ端末１０の動作の一例の概略を示す。図３は、関数電卓Ｗｅｂアプリケーションの関数グラフ描画機能に係る演算サーバ２０の動作の一例の概略を示す。図２及び図３を参照して、関数グラフ描画機能に係るユーザ端末１０及び演算サーバ２０の動作について説明する。
【００１６】
図２は、ウェブブラウザで本実施形態に係る関数電卓Ｗｅｂアプリケーションのウェブサイトにアクセスし、関数グラフ描画機能に係るウェブページを選択し、当該ウェブページを表示したときに行われる処理である。
【００１７】
ステップＳ１０１において、ユーザ端末１０は、入力装置１５への入力を取得し、ブラウザ上の入力フォームへの入力を特定する。ユーザ端末１０は、入力データをメモリ記憶させながら、表示装置１６上の入力フォームの表示を更新する。
【００１８】
本実施形態に係る関数グラフ描画機能に係る表示画面の一例を図４に示す。関数グラフ描画機能に係る表示画面１００は、入力フォーム１１０と、操作ボタン１２０と、グラフ描画エリア１３０とを含む。関数グラフ描画機能の開始時には、入力フォーム１１０は空欄であり、グラフ描画エリア１３０にグラフは描画されていない。
【００１９】
入力フォーム１１０は、グラフを描画したい関数が入力される関数フォーム１１２と、グラフの表示範囲の最小値が入力される最小値フォーム１１４と、グラフの表示範囲の最大値が入力される最大値フォーム１１５と、グラフをプロットするときの点数が入力される分割数フォーム１１８とを含む。この点数が大きい程、グラフの表示範囲に対するプロット点の刻み幅は小さくなる。ステップＳ１０１の処理では、入力フォーム１１０への入力が取得される。
【００２０】
操作ボタン１２０は、クリアボタン１２１と、グラフボタン１２２とを含む。クリアボタン１２１は、入力フォーム１１０への入力をクリアするボタンである。グラフボタン１２２は、入力フォーム１１０に入力した関数及び値等を計算問合せデータとして演算サーバ２０宛に送信し、グラフを描画するためのデータである描画点情報を演算サーバ２０に要求する際に選択されるボタンである。
【００２１】
グラフボタン１２２を押して演算サーバ２０からグラフを描画するためのデータである描画点情報を受信すると、ユーザ端末１０のウェブブラウザは、描画点情報に基づいてグラフ描画エリア１３０にグラフを描画する。
【００２２】
ステップＳ１０２において、ユーザ端末１０は、入力が完了したか否か、すなわち、グラフボタン１２２が押されたか否かを判定する。グラフボタン１２２が押されていないとき、処理はステップＳ１０１に戻り、入力フォーム１１０への入力の取得を繰り返す。一方、入力フォームへの入力が完了してグラフボタン１２２が押されたとき、処理はステップＳ１０３に進む。
【００２３】
ステップＳ１０３において、ユーザ端末１０は、グラフを描画するための描画点情報を要求するための計算問合せデータを、演算サーバ２０宛に送信する。計算問合せデータは、入力フォーム１１０に入力された関数及び値の情報を含む。
【００２４】
計算問合せデータに含まれる情報の一例を次に示す。この例は、図４に示すように、関数がf(x)=1/xであり、描画範囲が-5≦x≦5、-5≦y≦5であり、-5≦x≦5の範囲を200点に分割、すなわち、ｘ軸方向に0.05刻みでグラフを描く場合の例である。
【００２５】
−−−−−
{
"type":"plot",
"expression":"1/x",
"graphType":"y=",
"xmin":-5,
"xmax":5,
"xstep":0.05,
"ymin":-5,
"ymax":5,
"ystep":null
}
−−−−−
【００２６】
ここで、各パラメータは以下の内容を示す。
type：計算ＡＰＩの中でどのようなデータを取得したいかを指定
expression：グラフ関数式（文字列）
graphType：数式が不等式かを判別する種別 (y=, y>, y>=, y<, y<=)
xmin：グラフ領域のｘ座標の最小値
xmax：グラフ領域のｘ座標の最大値
xstep：ｘｙ座標のｘ方向の計算ステップ値
ymin：グラフ領域のｙ座標の最小値
ymax：グラフ領域のｙ座標の最大値
ystep：ｘｙ座標のｙ方向の計算ステップ値
【００２７】
以上のような情報を含む計算問合せデータを受信した演算サーバ２０は、図３にその概略を示す動作を実行する。すなわち、ステップＳ２０１において、演算サーバ２０は、計算問合せデータを受け取る。ステップＳ２０２において、演算サーバ２０は、受信した計算問合せデータに含まれる、入力フォーム１１０に入力された関数、グラフの表示範囲、計算の刻み幅等に基づいて、グラフを描画するための点である描画点の座標を求める計算を行う。例えば、演算サーバ２０はｘの値を変数として、ｘの値を刻み幅毎に変更しながら関数に代入し、複数の描画点の座標を算出する。
【００２８】
ステップＳ２０３において、演算サーバ２０は、グラフを描画するための複数の描画点のうち各隣り合う点について、線で結んでよい点である連続点であるか、線で結んではいけない点である不連続点であるかを判定する不連続点判定を行う。不連続点判定は、例えば微分計算を含む方法など種々の方法で行われ得る。演算サーバ２０が不連続点を含み得る基本関数の情報を予め有しており、不連続点の判定はその情報を参照して行われてもよい。例えば、演算サーバ２０は、y=1/x、y=tan(x)等といった関数は、不連続点を含み得るという情報を予め有していてもよい。不連続点判定の判定結果は、連続可否情報として取り扱われる。ステップＳ２０４において、演算サーバ２０は、複数の描画点と連続可否情報とを含み、それに基づいてユーザ端末１０でグラフを描画することができるような描画点情報を作成する。ステップＳ２０５において、演算サーバ２０は、作成した描画点情報をユーザ端末１０に返信する。
【００２９】
描画点情報の一例を次に示す。この例は、上述の計算問合せデータに対する描画点情報の例である。
【００３０】
−−−−−
{
"d":{
"plot":[
[
[-5.00,-0.20000]
[-4.95,-0.20202]
[-4.90,-0.20408]
[-4.85,-0.20619]
[-4.80,-0.20833]
…
[-0.25,-4.00000]
[-0.20,-5.00000]
[-0.15,-6.66667]
[-0.10,-10.00000]
[-0.05,-20.00000]
],
[
[0.05,20.00000]
[0.10,10.00000]
[0.15,6.66667]
[0.20,5.00000]
[0.25,4.00000]
…
[4.80,0.20833]
[4.85,0.20619]
[4.90,0.20408]
[4.95,0.20202]
[5.00,0.20000]
]
]
}
}
−−−−−
【００３１】
ここで、「"plot":[]」は、三次元配列によって表現された、関数に係るグラフを表すデータである。第１次元は、グラフにおいて連続する線を要素として順に示す配列である。例えばf(x)=1/xのように、不連続点を含むグラフでは要素数が複数となる。第２次元は、グラフにおいて連続する線に係る描画点の座標を要素として順に示す配列である。第３次元は、第１要素をｘ座標とし、第２要素をｙ座標とする配列である。このように、第３次元の情報は、描画点の座標を示す。第２次元の情報は、描画点の座標のうち、互いに結線する描画点を順に示す。第１次元の情報は、第２次元の情報を列挙したものである。このように描画点情報は、多次元配列構造を含む。このように、描画点情報では、複数の描画点のうち互いに結線する描画点がグループ化されている。このような多次元配列構造によれば、データは、簡易な形式で描画点の座標の情報と連続可否情報とを含むことができる。
【００３２】
例えば、
"plot":[
[
[x1, y1]
[x2, y2]
]
[
[x3, y3]
[x4, y4]
]
]
というデータを演算サーバ２０から受信したとき、ユーザ端末１０の関数電卓Ｗｅｂアプリケーションは、以下のグラフを描画する。すなわち、ユーザ端末１０は、座標(x1, y1)を描画点P1とし、座標(x2, y2)を描画点P2とし、座標(x3, y3)を描画点P3とし、座標(x4, y4)を描画点P4とする。ユーザ端末１０は、描画点P1と描画点P2とを結線し、描画点P3と描画点P4とを結線し、描画点P2と描画点P3とを結線しないようにしてグラフを描画する。
【００３３】
上述のデータ形式の例は、ＪＳＯＮ（JavaScript Object Notation）（JavaScriptは登録商標）を用いた例であるが、データ形式はこれに限らない。描画点情報は、グラフの描画点の座標と、描画点同士を結線するか否かを指定する連続可否情報とを含む形式であれば、どのような形式のデータが用いられてもよい。
【００３４】
以上のような描画点情報を受け取るユーザ端末は、以下の動作を行う。すなわち、ステップＳ１０４において、ユーザ端末１０は、演算サーバ２０による演算結果である描画点情報が演算サーバ２０から届いたか否かを判定する。データが届いていないとき、ステップＳ１０４の処理を繰り返して、演算サーバから描画点情報が届くまで待機する。描画点情報を受信したとき、処理はステップＳ１０５に進む。ステップＳ１０５において、ユーザ端末１０は、描画点情報を受信する。ステップＳ１０６において、ユーザ端末１０は、受信した描画点情報に基づいて、ウェブブラウザ上にグラフを描画する。その結果、例えば図４のグラフ描画エリア１３０のように、リクエストした関数のグラフが描画される。
【００３５】
本実施形態に係る演算サーバ２０は、不連続点判定を行い、不連続点が存在する場合には、それを考慮した描画点情報を作成する。その結果、図４に示すように正しいグラフが描画される。
【００３６】
以上のように、ユーザ端末１０のＣＰＵ１１、通信装置１７等は、入力された関数の情報を含む計算問合せデータを演算サーバ２０宛に送信する計算問合せデータ送信部、関数に対応するグラフを描画するための描画点情報を演算サーバ２０から取得する描画点情報受信部、及び、描画点情報に基づいて関数に対応するグラフを描画して表示装置１６に示すグラフ描画部として機能する。また、演算サーバ２０のＣＰＵ２１、通信装置２５等は、ユーザ端末１０から計算問合せデータを取得する計算問合せデータ受信部、計算問合せデータに基づいて表示装置１６のグラフ描画エリア１３０における関数が表す複数の描画点の座標と互いに隣り合う２つの描画点を結線するか否かを指定する連続可否情報とを含む描画点情報を算出する演算部、及び、算出した描画点情報をユーザ端末１０に送信する描画点情報送信部として機能する。
【００３７】
例えば、不連続点判定が行われずに、描画点情報にプロットすべき点の座標情報が列挙される場合を考える。すなわち、例えば下記のような連続可否情報が含まれない描画点情報を考える。
【００３８】
−−−−−
{
"d":{
"plot":[
[
[-5.00,-0.20000]
[-4.95,-0.20202]
[-4.90,-0.20408]
[-4.85,-0.20619]
[-4.80,-0.20833]
…
[4.80,0.20833]
[4.85,0.20619]
[4.90,0.20408]
[4.95,0.20202]
[5.00,0.20000]
]
]
}
}
−−−−−
【００３９】
このような描画点情報に基づいてグラフ描画エリア１３０に描画されるグラフは、図５に示すようになる。すなわち、数学的に正しいグラフが描画されない。描画点情報を受け取り、グラフを描画するユーザ端末側では、描画点情報に基づく描画が正しいのか否かを判定することは困難である。
【００４０】
本実施形態に係る演算サーバ２０は、特に例えばy=1/x、y=tan(x)等といった不連続点を含むグラフの描画において、正しいグラフを描画するための描画点情報を作成できる。特に、不連続点で±∞に発散するような関数のグラフの描画において、数学的に正しいグラフを描画するための描画点情報を作成できる。その結果、ユーザ端末は数学的に正しいグラフを描画することができる。
【００４１】
本実施形態に係るグラフ描画システム１では、演算サーバ２０がインターネット３０に対してＷｅｂサーバ３２の背後に存在しているので、演算サーバ２０で行う演算アルゴリズムをユーザ端末１０に対して秘匿可能である。すなわち、関数電卓Ｗｅｂアプリケーションの提供者は、開発した高度な演算アルゴリズムを他者に対して秘密にすることができる。
【００４２】
また、ユーザ端末１０は、演算を行わずに演算結果のデータに基づいてグラフの描画のみを行うため、ユーザ端末１０の処理の負荷は比較的軽い。一方で、処理能力が高い演算サーバ２０を用いることで、ユーザ端末１０は、複雑な演算の結果を示すことができる。
【００４３】
［第２の実施形態］
第２の実施形態について説明する。ここでは、第１の実施形態との相違点について説明し、同一の部分については、同一の符号を付してその説明を省略する。本実施形態では、ユーザは、グラフ描画エリア１３０を操作することで、グラフ描画エリア１３０にグラフとして表示する範囲を変更することができる。このとき、ユーザ端末１０は、演算サーバ２０に再計算を行わせて再び描画点情報を受け取る必要があるか否かを判定し、必要な場合のみ計算問合せデータを再送信する。
【００４４】
本実施形態に係るユーザ端末１０において、グラフ描画エリア１３０を操作することでグラフとして表示する範囲を変更するグラフ操作が行われたときの動作を、図６に示すフローチャートを参照して説明する。
【００４５】
ステップＳ３０１において、ユーザ端末１０は、グラフ描画エリア１３０に対して行われた操作を取得する。グラフ描画エリア１３０に対する操作は、例えば次のようにして行われる。すなわち、一例として、ユーザ端末１０が入力装置１５として表示装置１６に設けられたタッチパネルを備えているときを考える。グラフ描画エリア１３０において、ピンチアウト又はピンチインの操作がされたとき、グラフ描画エリア１３０の実寸法をそのままに、座標の表示範囲を狭くして表示を拡大したり、座標の表示範囲を広くして表示を縮小したりといった動作が行われる。例えば、図４に示す状態で、グラフ描画エリア１３０に対してピンチアウト操作が行われたとき、グラフ描画エリア１３０の表示は図７に示すような拡大された表示になるものとする。また、タッチパネル上でドラッグ操作が行われたとき、表示範囲を縦軸、横軸又はその両方（斜め）の方向に、プラス方向又はマイナス方向に移動させる動作が行われる。
【００４６】
このような操作は、タッチパネルによって行われなくてもよい。例えば、マウスを用いても同様の操作が行われ得る。また、表示画面１００に拡大ボタン、縮小ボタン、上下左右への移動ボタン等が設けられ、これらボタンが選択されたとき、拡大、縮小、上下左右への移動が行われてもよい。
【００４７】
ステップＳ３０２において、ユーザ端末１０は、ステップＳ３０１で取得した操作に対する表示変更を行うにあたってデータが不足しているか否かを判定する。
【００４８】
例えば図４に示す状態で拡大操作が行われ、図７に示すような表示を行うとき、図４に示すグラフを描画したときのデータを用いて図７に示す表示を行うことができる。このような場合には、データは不足していないと判定される。ただし、拡大率が大きくなり過ぎたとき、滑らかなグラフを描画することができなくなる。滑らかなグラフを描画できない場合には、データが不足であると判定される。
【００４９】
また、縮小操作が行われたとき、データを補充しないと図８に示すようなグラフになってしまうので、データが不足であると判定される。また、例えば現在描画されているグラフを延長する方向に表示領域を移動させるとき、データが不足であると判定される。
【００５０】
データが不足していないと判定されたとき、処理はステップＳ３０６に進む。一方、データが不足していると判定されたとき、処理はステップＳ３０３に進む。
【００５１】
ステップＳ３０３において、ユーザ端末１０は、ステップＳ１０３と同様に、計算問合せデータを演算サーバ２０宛に再送信し、グラフを描画するためのデータを要求する。この際、指定する関数に変更はないが、描画範囲がユーザのグラフ操作に応じて変更される。ユーザ端末１０の計算問合せデータ送信に応じて、演算サーバ２０は、グラフを描画するための演算を行って描画点情報を作成し、ユーザ端末１０に描画点情報を返信する。
【００５２】
ステップＳ３０４において、ユーザ端末１０は、演算サーバ２０の演算結果である描画点情報を受信したか否かを判定し、受信するまで待機する。描画点情報を受信したとき、処理はステップＳ３０５に進む。ステップＳ３０５において、ユーザ端末１０は、描画点情報を受信する。その後、処理はステップＳ３０６に進む。
【００５３】
ステップＳ３０６において、ユーザ端末１０は、ウェブブラウザ上にグラフを再描画する。その際、ステップＳ３０２でデータが不足していないと判定されたときには、ユーザ端末１０が既に有しているデータを用いてグラフの再描画が行われる。ステップＳ３０２でデータが不足していると判定されたときには、ステップＳ３０５で受信した再計算で得られた描画点情報を用いてグラフの再描画が行われる。
【００５４】
このように、ＣＰＵ１１、通信装置１７等は、表示装置１６に描画されたグラフを平行移動、拡大又は縮小させるためのグラフ操作を取得する操作取得部、及び、グラフ操作に応じたグラフを再描画するにあたって、新たな描画点情報が必要であるために計算問合せデータを演算サーバ２０に再送信するか否かを判定する再送信判定部として機能する。
【００５５】
本実施形態によれば、ユーザのグラフ操作に応じてグラフの再描画が行われる際に、グラフ描画のためのデータが不足しているか否かの判定がまず行われ、データが不足しているときのみ演算サーバ２０に再計算がリクエストされる。データが不足していないと判定されたときには再計算が求められないので、ユーザ端末１０と演算サーバ２０との通信量が低減される。また、このとき演算サーバ２０の演算量が低減される。
【００５６】
［第３の実施形態］
第３の実施形態について説明する。ここでは、第１の実施形態との相違点について説明し、同一の部分については、同一の符号を付してその説明を省略する。本実施形態では、演算サーバ２０は、ユーザ端末１０からの計算問合せデータごとに演算結果である描画点情報をストレージ２４に蓄積する。すなわち、ストレージ２４には、計算問合せデータと描画点情報との組み合わせが蓄積される。演算サーバ２０は、ユーザ端末１０から同一の計算問合せデータを受信したとき、ストレージ２４に保存された描画点情報を読み出し、ユーザ端末１０に送信する。このとき、演算サーバ２０は、再計算を行わない。
【００５７】
本実施形態に係る演算サーバ２０の動作について、図９に示すフローチャートを参照して説明する。
【００５８】
ステップＳ４０１において、演算サーバ２０は、計算問合せデータを受け取る。ステップＳ４０２において、演算サーバ２０は、過去に計算してストレージ２４に蓄積されている描画点情報を検索し、今回求められたデータについて、利用可能なデータがあるか否かを判定する。利用可能なデータがあるとき、処理はステップＳ４０３に進む。ステップＳ４０３において、演算サーバ２０は、再利用可能なデータをストレージ２４から読み出し、ユーザ端末１０宛に送信する描画点情報として準備する。その後、処理はステップＳ４０７に進む。
【００５９】
ステップＳ４０２において、利用可能なデータがないと判定されたとき、処理はステップＳ４０４に進む。ステップＳ４０４において、演算サーバ２０は、ステップＳ２０２と同様に、受信した計算問合せデータに基づいて、グラフを描画するための描画点の座標を求める計算を行う。ステップＳ４０５において、演算サーバ２０は、ステップＳ２０３と同様に、不連続点判定を行う。ステップＳ４０６において、演算サーバ２０は、ステップＳ２０４と同様に、ユーザ端末１０でグラフを描画することができるような描画点情報を作成し、ユーザ端末１０宛に送信する描画点情報として準備する。また、演算サーバ２０は、描画点情報をストレージ２４に蓄積する。
【００６０】
ステップＳ４０７において、演算サーバ２０は、ステップＳ４０３又はステップＳ４０６で準備された描画点情報を、ユーザ端末１０宛に送信する。
【００６１】
本実施形態によれば、演算サーバ２０は、蓄積された描画点情報を検索し、再利用できる描画点情報がストレージ２４に記録されているときには、再計算を行わずに、記録されている描画点情報を再利用する。そのため、演算サーバ２０の演算量が削減される。
【００６２】
なお、第２の実施形態に係る技術と第３の実施形態に係る技術とは、同時に用いられてもよい。同時に用いられれば両方の利点が同時に得られる。
【００６３】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００６４】
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］
入力装置と表示装置とを有し、関数の情報が入力されるユーザ端末と、
ネットワークを介して前記ユーザ端末に接続されている演算サーバと
を備え、
前記ユーザ端末は、
入力された前記関数の情報を含む計算問合せデータを前記演算サーバ宛に送信する計算問合せデータ送信部と、
前記関数に対応するグラフを描画するための描画点情報を前記演算サーバから取得する描画点情報受信部と、
前記描画点情報に基づいて、前記関数に対応するグラフを描画して前記表示装置に示すグラフ描画部と
を有し、
前記演算サーバは、
前記ユーザ端末から前記計算問合せデータを取得する計算問合せデータ受信部と、
前記計算問合せデータに基づいて、前記表示装置のグラフ描画エリアにおける前記関数が表す複数の描画点の座標と、互いに隣り合う２つの前記描画点を結線するか否かを指定する連続可否情報とを含む前記描画点情報を算出する演算部と、
算出した前記描画点情報を前記ユーザ端末に送信する描画点情報送信部と
を有する、
グラフ描画システム。
［２］
前記連続可否情報は、前記複数の描画点のうち、互いに結線する前記描画点をグループ化する情報を含む、［１］に記載のグラフ描画システム。
［３］
前記描画点情報は、
前記描画点の座標を示す第３次元の情報と、
前記描画点の座標のうち、互いに結線する前記描画点を順に示す第２次元の情報と、
前記第２次元の情報を列挙した第１次元の情報と
を含む多次元配列構造を有する、［１］に記載のグラフ描画システム。
［４］
前記計算問合せデータは、前記関数に係る情報と前記関数の変数の刻み幅に係る情報とを含み、
前記演算部は、前記変数を前記刻み幅毎に変更しながら前記関数に代入することで前記複数の描画点の座標を算出し、前記複数の描画点の各々に対する不連続点判定を行って前記連続可否情報を決定し、前記描画点情報を算出する、
［１］乃至［３］のうち何れか一に記載のグラフ描画システム。
［５］
前記ユーザ端末は、前記表示装置に描画された前記グラフを移動、拡大又は縮小させるためのグラフ操作を取得する操作取得部と、
前記グラフ操作に応じた前記グラフを再描画するにあたって、新たな前記描画点情報が必要であるために前記計算問合せデータを前記演算サーバに再送信するか否かを判定する再送信判定部と、
をさらに備え、
前記再送信判定部で前記再送信が必要であると判定したとき、前記計算問合せデータ送信部は、前記計算問合せデータを前記演算サーバ宛に再送信し、
前記再送信判定部で前記再送信が必要でないと判定したとき、前記グラフ描画部は、既に有している前記描画点情報に基づいて、前記グラフ操作に応じた前記グラフを再描画する、
［１］乃至［４］のうち何れか一に記載のグラフ描画システム。
［６］
前記演算サーバは、ストレージをさらに備え、
前記演算部は、前記計算問合せデータと前記描画点情報との組み合わせを前記ストレージに蓄積させ、前記ユーザ端末から取得した前記計算問合せデータと前記ストレージに蓄積されている情報とを比較して、前記描画点情報を再び算出する必要があるか否かを判定し、
前記演算部が再び算出する必要があると判定したとき、前記演算部は前記ユーザ端末から取得した前記計算問合せデータに基づいて前記描画点情報を再び算出し、前記描画点情報送信部は算出した前記描画点情報を前記ユーザ端末に送信し、
前記演算部が再び算出する必要がないと判定したとき、前記描画点情報送信部は前記ストレージに蓄積されている前記描画点情報を前記ユーザ端末に送信する、
［１］乃至［５］のうち何れか一に記載のグラフ描画システム。
［７］
入力装置と表示装置とを有するユーザ端末において関数の情報が入力された場合に、前記ユーザ端末から、ネットワークを介して、前記関数の情報を含む計算問合せデータを取得する計算問合せデータ受信部と、
前記計算問合せデータに基づいて、前記表示装置のグラフ描画エリアにおける前記関数が表す複数の描画点の座標と、互いに隣り合う２つの前記描画点を結線するか否かを指定する連続可否情報とを含む描画点情報を算出する演算部と、
前記算出した前記描画点情報を前記ユーザ端末に送信する描画点情報送信部と
を備える演算サーバ。
［８］
入力装置と表示装置とを有し、関数の情報が入力されるユーザ端末と、
ネットワークを介して前記ユーザ端末に接続されている演算サーバと
を備えるグラフ描画システムの制御方法であって、
前記ユーザ端末に、
入力された前記関数の情報を含む計算問合せデータを前記演算サーバ宛に送信させることと、
前記関数に対応するグラフを描画するための描画点情報を前記演算サーバから取得させることと、
前記描画点情報に基づいて、前記関数に対応するグラフを描画して前記表示装置に表示させることと、
前記演算サーバに、
前記ユーザ端末から前記計算問合せデータを取得させることと、
前記計算問合せデータに基づいて、前記表示装置のグラフ描画エリアにおける前記関数が表す複数の描画点の座標と、互いに隣り合う２つの前記描画点を結線するか否かを指定する連続可否情報とを含む前記描画点情報を算出させることと、
算出した前記描画点情報を前記ユーザ端末に送信させることと
を行わせるグラフ描画システムの制御方法。
［９］
入力装置と表示装置とを有するユーザ端末において関数の情報が入力された場合に、前記ユーザ端末から、ネットワークを介して、前記関数の情報を含む計算問合せデータを取得することと、
前記計算問合せデータに基づいて、前記表示装置のグラフ描画エリアにおける前記関数が表す複数の描画点の座標と、互いに隣り合う２つの前記描画点を結線するか否かを指定する連続可否情報とを含む描画点情報を算出することと、
前記算出した前記描画点情報を前記ユーザ端末に送信することと
を演算サーバに行わせるプログラム。
【符号の説明】
【００６５】
１…グラフ描画システム、１０…ユーザ端末、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ストレージ、１５…入力装置、１６…表示装置、１７…通信装置、１９…バスライン、２０…演算サーバ、２４…ストレージ、２５…通信装置、２９…バスライン、３０…インターネット、３２…Ｗｅｂサーバ、１００…表示画面、１１０…入力フォーム、１１２…関数フォーム、１１４…最小値フォーム、１１５…最大値フォーム、１１８…分割数フォーム、１２０…操作ボタン、１２１…クリアボタン、１２２…グラフボタン、１３０…グラフ描画エリア。
【図１】
2019061344.tif 000003
【図２】
2019061344.tif 000004
【図３】
2019061344.tif 000005
【図４】
2019061344.tif 000006
【図５】
2019061344.tif 000007
【図６】
2019061344.tif 000008
【図７】
2019061344.tif 000009
【図８】
2019061344.tif 000010
【図９】
2019061344.tif 000011