(57)【要約】【課題】滑らかに動作するアプリケーションを提供する。【解決手段】プログラムは、サーバと通信する情報端末に、図形に関する処理の指示を取得することと、前記図形を表す関数に関係する演算を前記情報端末が行えるか否かを判定することと、前記演算を前記情報端末が行えるときには、前記情報端末に記憶された前記関数に基づいて前記図形に関する処理を実行することと、前記演算を前記情報端末が行えないときには、前記関数に関する情報を含むデータを前記サーバ宛に送信し、当該データに基づいて前記サーバが処理した結果のデータを前記サーバから受信することとを実行させる。【選択図】図１
2019185687.tif 000002
【特許請求の範囲】
【請求項１】
サーバと通信する情報端末に、
図形に関する処理の指示を取得することと、
前記図形を表す関数に関係する演算を前記情報端末が行えるか否かを判定することと、
前記演算を前記情報端末が行えるときには、前記情報端末に記憶された前記関数に基づいて前記図形に関する処理を実行することと、
前記演算を前記情報端末が行えないときには、前記関数に関する情報を含むデータを前記サーバ宛に送信し、当該データに基づいて前記サーバが処理した結果のデータを前記サーバから受信することと
を実行させるためのプログラム。
【請求項２】
前記図形に関する処理は、図形を描画するための描画点の座標を算出することを含み、
前記描画点の座標に基づいて、前記図形を描画することをさらに前記情報端末に実行させる、
請求項１に記載のプログラム。
【請求項３】
前記図形に関する処理は、描画された図形を変更するための描画点の座標を算出することを含み、
前記描画点の座標に基づいて、前記図形を描画することをさらに前記情報端末に実行させる、
請求項１又は２に記載のプログラム。
【請求項４】
前記図形に関する処理は、描画された複数の図形の交点の座標を算出することを含み、
前記交点の座標を表示することをさらに前記情報端末に実行させる、
請求項１乃至３のうち何れか１項に記載のプログラム。
【請求項５】
前記情報端末に記憶された前記関数は、一次関数又は円錐曲線の関数を含む、
請求項１乃至４のうち何れか１項に記載のプログラム。
【請求項６】
前記サーバ宛に送信するデータは、関数及び座標エリアの情報を含むデータであり、
前記サーバから受信するデータは、図形の描画点の座標又は図形の交点の座標を含むデータである、
請求項１乃至５のうち何れか１項に記載のプログラム。
【請求項７】
サーバと通信する情報端末が、
図形に関する処理の指示を取得することと、
前記図形を表す関数に関係する演算を前記情報端末が行えるか否かを判定することと、
前記演算を前記情報端末が行えるときには、前記情報端末に記憶された前記関数に基づいて前記図形に関する処理を実行することと、
前記演算を前記情報端末が行えないときには、前記関数に関する情報を含むデータを前記サーバ宛に送信し、当該データに基づいて前記サーバが処理した結果のデータを前記サーバから受信することと
を含む情報処理方法。
【請求項８】
サーバと通信する情報端末であって、
図形に関する処理の指示を取得することと、
前記図形を表す関数に関係する演算を前記情報端末が行えるか否かを判定することと、
前記演算を前記情報端末が行えるときには、前記情報端末に記憶された前記関数に基づいて前記図形に関する処理を実行することと、
前記演算を前記情報端末が行えないときには、前記関数に関する情報を含むデータを前記サーバ宛に送信し、当該データに基づいて前記サーバが処理した結果のデータを前記サーバから受信することと
を実行するプロセッサを備える情報端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理方法及び情報端末に関する。
【背景技術】
【０００２】
ウェブブラウザ上で利用可能なグラフ描画アプリケーションが知られている。例えば、非特許文献１は、ウェブブラウザ上で動作する次のようなアプリケーションについて開示する。このアプリケーションでは、ユーザが式リストに入力した数式に基づいて演算が行われ、演算の結果に基づくグラフがウェブブラウザ上に描画される。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｄｅｓｍｏｓ，ｄｅｓｍｏｓ  ユーザーガイド，堀川由人  訳［ｏｎｌｉｎｅ］，［平成３０年４月１６日検索］、インターネット＜ＵＲＬ：https://desmos.s3.amazonaws.com/Desmos_User_Guide_JA.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のようなアプリケーションでは、滑らかな動作が求められる。本発明は、滑らかに動作するアプリケーションを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一態様によれば、プログラムは、サーバと通信する情報端末に、図形に関する処理の指示を取得することと、前記図形を表す関数に関係する演算を前記情報端末が行えるか否かを判定することと、前記演算を前記情報端末が行えるときには、前記情報端末に記憶された前記関数に基づいて前記図形に関する処理を実行することと、前記演算を前記情報端末が行えないときには、前記関数に関する情報を含むデータを前記サーバ宛に送信し、当該データに基づいて前記サーバが処理した結果のデータを前記サーバから受信することとを実行させる。
【図面の簡単な説明】
【０００６】
【図１】図１は、一実施形態に係るシステムの構成例の概略を示すブロック図である。
【図２】図２は、一実施形態に係る端末の動作の一部についての例の概略を示すフローチャートである。
【図３】図３は、一実施形態に係る描画処理の一例の概略を示すフローチャートである。
【図４】図４は、一実施形態に係る変更処理の一例の概略を示すフローチャートである。
【図５】図５は、一実施形態に係る交点算出処理の一例の概略を示すフローチャートである。
【図６Ａ】図６Ａは、端末に表示されるグラフ付箋に関する画面の一例を示す図である。
【図６Ｂ】図６Ｂは、端末に表示されるグラフ付箋に関する画面の一例を示す図である。
【図７Ａ】図７Ａは、端末に表示される幾何付箋に関する画面の一例を示す図である。
【図７Ｂ】図７Ｂは、端末に表示される幾何付箋に関する画面の一例を示す図である。
【発明を実施するための形態】
【０００７】
本発明の一実施形態について図面を参照して説明する。本実施形態は、学校教育の場等で用いられるウェブを利用したアプリケーションに関する。本実施形態のアプリケーションは、特に数学教育で用いられる。
【０００８】
［システムの構成］
図１は、本実施形態に係るシステム１の構成例の概略を示す図である。システム１は、クライアントとしての端末１０と、Ｗｅｂサーバ２０と、演算サーバ３０とを含む。端末１０は、例えばパーソナルコンピュータ（ＰＣ）、タブレット型の情報端末、スマートフォン等といった各種の情報端末である。各端末では、ウェブブラウザが動作する。各端末は、ウェブブラウザを用いて、インターネットといったネットワーク５０を介して演算サーバ３０に接続されたＷｅｂサーバ２０にアクセスし、ウェブアプリケーションを実行する。
【０００９】
図１には、１台の端末１０が示されているが、システム１に含まれる端末の台数は何台であってもよい。何台の端末がウェブアプリケーションを実行してもよい。
【００１０】
端末１０は、図１に示すように、バスライン１９を介して互いに接続されたCentral Processing Unit（ＣＰＵ）１１と、Read Only Memory（ＲＯＭ）１２と、Random Access Memory（ＲＡＭ）１３と、ストレージ１４と、入力装置１５と、表示装置１６と、通信装置１７とを備える。ＣＰＵ１１は、各種信号処理等を行う。ＣＰＵに代えて又はＣＰＵと共に、Application Specific Integrated Circuit（ＡＳＩＣ）、Field Programmable Gate Array（ＦＰＧＡ）、又はGraphics Processing Unit（ＧＰＵ）等の各種集積回路が用いられてもよい。すなわち、端末１０では、各種プロセッサが用いられ得る。ＲＯＭ１２は、起動プログラム等を記録している。ＲＡＭ１３は、ＣＰＵ１１の主記憶装置として機能する。ＲＡＭ１３には、例えば、Dynamic ＲＡＭ（ＤＲＡＭ）、Static ＲＡＭ（ＳＲＡＭ）等が用いられ得る。ストレージ１４には、例えば、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、Embedded Multi Media Card（ｅＭＭＣ）等が用いられる。ストレージ１４には、ＣＰＵ１１で用いられるプログラム、パラメータ等各種情報が記録されている。ＲＡＭ１３及びストレージ１４は、これに限らず各種記憶装置に置換され得る。入力装置１５は、例えばキーボード、マウス、タッチパネル等である。表示装置１６は、例えば液晶ディスプレイ、有機ＥＬディスプレイ等である。通信装置１７は、端末１０の外部の機器と通信を行う際に用いられる。通信装置１７は、例えばインターネットといったネットワーク５０に接続する。
【００１１】
Ｗｅｂサーバ２０上には、ウェブアプリケーションのバッグエンドサーバが存在する。Ｗｅｂサーバ２０は、ウェブアプリケーションの実現に必要な処理を担っている。Ｗｅｂサーバ２０のさらに背後には、各種関数の演算を実行する演算サーバ３０が存在している。演算サーバ３０の演算エンジンには、Ｗｅｂサーバ２０のバッグエンドサーバからのみアクセスでき、外部からは直接アクセスできないようになっており、演算エンジンは秘匿されている。
【００１２】
演算サーバ３０は、図１に示すように、バスライン３９を介して互いに接続されたプロセッサ３１と、ＲＯＭ３２と、ＲＡＭ３３と、ストレージ３４と、通信装置３５とを備える情報処理装置である。プロセッサ３１は、各種信号処理等を行う。ＲＯＭ３２は、プロセッサ３１の動作に用いられる情報を記録している。ＲＡＭ３３は、プロセッサ３１の主記憶装置として機能する。ストレージ３４には、各種記録媒体が用いられ得る。ストレージ３４には、プロセッサ３１で用いられるプログラム、パラメータ等各種情報が記録されている。
【００１３】
本実施形態では、入力と表示とは、「付箋」と呼ぶ小さな枠を持つ表示領域の組み合わせを用いて行われる。付箋には複数の種類が存在する。後述するが、端末１０の表示装置１６に表示される画面例を示す図６Ａ及び図７Ａには、数式付箋１１０、グラフ付箋１２０、幾何付箋２０５等が示されている。数式付箋１１０は、関数を表す数式が入力される付箋である。グラフ付箋１２０は、グラフが描画される付箋である。グラフ付箋１２０には、例えば数式付箋１１０に入力された式に関するグラフが表示される。数式付箋１１０とグラフ付箋１２０とのように互いに関連がある付箋は、紐１１９と呼ばれる線で結びつけられている。幾何付箋２０５は、図形等を描く際に用いられる付箋である。
【００１４】
［システムの動作］
本実施形態に係るシステム１は、多くの機能を有している。そのうちいくつかの例について説明する。各機能は、端末１０、Ｗｅｂサーバ２０及び演算サーバ３０が協働することで実現される。例えば、ウェブブラウザが動作する端末１０がＷｅｂサーバ２０にアクセスしたとき、端末１０はＷｅｂサーバ２０からプログラムを取得する。端末１０は、ウェブブラウザ上でこのプログラムを実行する。端末１０は、ユーザが端末１０の入力装置１５を操作してウェブブラウザ上に入力した情報に基づいて、各種演算及び表示を行う。端末１０は、演算サーバ３０による演算が必要なとき、当該演算に必要な情報を、Ｗｅｂサーバ２０を介して演算サーバ３０へ送信する。演算サーバ３０は、端末１０から取得した情報に基づいて各種演算を行う。演算サーバ３０は、演算結果を、Ｗｅｂサーバ２０を介して端末１０宛に送信する。端末１０は、演算サーバ３０から取得した情報に基づいて、表示装置１６に各種画像を表示する。
【００１５】
本実施形態に係る端末１０の動作について、図２乃至５に示すフローチャートを参照して説明する。説明にあたって、図６Ａ及び図６Ｂに示すグラフ付箋１２０に関連する画面例、及び図７Ａ及び図７Ｂに示す幾何付箋２０５に関連する画面例を適宜に参照する。
【００１６】
図２は、端末１０の動作の一部についての例の概略を示すフローチャートである。
【００１７】
ステップＳ１０１において、端末１０は、付箋作成の指示が入力されたか否かを判定する。付箋作成の指示が入力されていないとき、処理はステップＳ１０３に進む。付箋作成の指示が入力されたとき、処理はステップＳ１０２に進む。
【００１８】
ステップＳ１０２において、端末１０は、付箋の作成に関する処理を行う。その後、処理はステップＳ１０３に進む。
【００１９】
例えば、図６Ａに画面１０１を示す場合のように、グラフ付箋１２０にグラフを描画させるにあたっては、描画するグラフに関する数式を入力するために、数式付箋１１０を作成する。すなわち、端末１０は、数式付箋１１０の設定に関する内部処理を行い、表示装置１６に数式付箋１１０を表示させる。
【００２０】
例えば、図７Ａに画面２０１を示す場合のように、幾何学図形等を描画するにあたっては、幾何学図形等を描画するための幾何付箋２０５を作成する。すなわち、端末１０は、幾何付箋２０５の設定に関する内部処理を行い、表示装置１６に幾何付箋２０５を表示させる。幾何付箋２０５の図形表示エリア２０７には、座標系が設定され、既定の、又は、ユーザ操作に応じて設定された座標範囲が割り当てられている。既定の設定では、座標を示すための座標軸（ｘ軸、ｙ軸）及び座標目盛りは非表示である。
【００２１】
ステップＳ１０３において、端末１０は、グラフ又は図形などの描画に関する指示が入力されたか否かを判定する。グラフ又は図形などの描画に関する指示が入力されていないとき、処理はステップＳ１０５に進む。グラフ又は図形などの描画に関する指示が入力されたとき、処理はステップＳ１０４に進む。
【００２２】
ステップＳ１０４において、端末１０は、描画処理を行う。描画処理について、図３に示すフローチャートを参照して説明する。
【００２３】
ステップＳ２０１において、端末１０は、描画に関して入力された指示を取得する。例えば、図６Ａに示すように、グラフ付箋１２０にグラフを描画させるとき、数式付箋１１０に数式が入力され、その後、描画実行の指示が入力される。数式付箋１１０は、入力される式の数に応じて追加される複数の付箋を含む。図６Ａに示す例では、数式付箋１１０は、第１の数式付箋１１１、第２の数式付箋１１２及び第３の数式付箋１１３の３つの付箋を含む。第１の数式付箋１１１に「y=sin(x)」という数式が入力され、描画実行の指示が入力されたとき、後述するように、グラフ付箋１２０のグラフ領域１２１に、「y=sin(x)」を表す第１のグラフ１３１が表示される。同様に、第２の数式付箋１１２に「y=x+1」という数式が入力され、描画実行の指示が入力されたとき、グラフ領域１２１に、「y=x+1」を表す第２のグラフ１３２が表示される。第３の数式付箋１１３に「y=x2」という数式が入力され、描画実行の指示が入力されたとき、グラフ領域１２１に、「y=x2」を表す第３のグラフ１３３が表示される。グラフ付箋１２０のグラフ領域１２１には、座標系が設定され、既定の、又は、ユーザ操作に応じて設定された座標範囲が割り当てられる。
【００２４】
例えば、図７Ａに示すように、幾何付箋２０５の図形表示エリア２０７に図形が描画されるとき、例えば次のように指示が入力される。幾何付箋２０５が選択されたとき、画面２０１には、描画メニュー２８０と、幾何メニュー２９０とが表示される。描画メニュー２８０は、図形表示エリア２０７に図形を描画するための種々のアイコンを含む。幾何メニュー２９０は、カテゴリエリア２９１と表示エリア２９２とを含む。カテゴリエリア２９１は、Adjustmentアイコン２９６、Measurementアイコン２９７及びConstructアイコン２９８を含む。Adjustmentアイコン２９６が選択されたとき、図形を調整するためのメニューのアイコンが表示エリア２９２に表示される。Measurementアイコン２９７が選択されたとき、図形の面積、長さ、傾き等の各種特徴量を測定するためのメニューのアイコンが表示エリア２９２に表示される。Constructアイコン２９８が選択されたとき、図形の中点、垂線、交点等を表示するためのメニューのアイコンが表示エリア２９２に表示される。
【００２５】
図形表示エリア２０７に図形を描画したいユーザは、描画メニュー２８０から描画したい図形に応じたアイコンを選択する。描画メニュー３４０は、円を描画するための円アイコン２８１と、多角形を描画するための多角形アイコン２８２と、その他のアイコンとを含む。ユーザは、これらのアイコンの中から作図したい図形のアイコンを選択し、操作する。
【００２６】
多角形を描画するための多角形アイコン２８２が選択されて、三角形が描画される場合の例を示す。後述するように、ユーザが第１の点２１１を特定すると、「Ａ」と表示された点が描画される。続いてユーザが第２の点２１２を特定すると、「Ｂ」と表示された点が描画され、併せて第１の辺２１４が描画される。続いてユーザが第３の点２１３を特定すると、「Ｃ」と表示された点が描画され、併せて第２の辺２１５が描画される。続いて第１の点２１１を特定すると、第３の辺２１６が描画される。その結果、幾何付箋２０５の図形表示エリア２０７には、三角形２１９が描画される。
【００２７】
円を描画するための円アイコン２８１が選択されて、円が描画される場合の例を示す。ユーザが中心点２２１を特定すると、「Ｄ」と表示された点が描画される。続いてユーザが、描きたい円の一点を特定することで半径を特定すると、中心点２２１を中心とする第１の円２２２が描画される。半径を示す直線２２３及び半径を示す値２２４が表示されてもよい。
【００２８】
また、多角形アイコン２８２を選択して表示されるアイコンの中から関数アイコンを選択することで、関数入力用の枠が表示され、ここに関数を入力することで、関数を表す図形も描画され得る。例えば、関数入力用の枠に三角関数が入力されたとき、サインカーブ２３１が描画される。
【００２９】
ステップＳ２０１では、端末１０は、上述のような描画に関するユーザの指示を取得する。端末１０は、取得した入力に基づいて、各種処理を行う。
【００３０】
ステップＳ２０２において、端末１０は、描画の指示がされた図形の描画タイプは、関数タイプか幾何学タイプかを判定する。例えば、グラフ付箋に描画されるグラフは関数タイプである。幾何付箋２０５の図形表示エリア２０７に描画される図形のうち、関数の入力によって描画される図形も関数タイプである。図形表示エリア２０７に描画されるその他の図形は、幾何学タイプである。
【００３１】
ステップＳ２０２で関数タイプであると判定されたとき、処理はステップＳ２０３に進む。ステップＳ２０３において、端末１０は、描画の指示がされた図形の関数タイプが、第１のタイプであるか第２のタイプであるかを判定する。
【００３２】
第１のタイプとは、図形を描画するにあたって、描画点の座標を演算サーバ３０による演算で求める必要がある図形である。例えば、三角関数、微分又は積分を含む関数、フーリエ変換を含む関数などが第１のタイプに含まれる。
【００３３】
第２のタイプとは、図形を描画するにあたって、描画点を端末１０で算出できる図形である。例えば、次のような関数が、端末１０で動作するプログラムに用意されている。
【００３４】
一次関数の場合、例えば次のような関数が用意されている。
ax+by+c=0
y=ax+b
y=a+bx
x=ay+b
x=a+by
ここで、a、b、cは、任意の値である。
【００３５】
円錐曲線の場合、例えば次のような関数が用意されている。
x=A(y-K)2+H
x=Ay2+By+C
y=A(x-H)2+K
y=Ax2+Bx+C
(x-H)2+(y-K)2=R2
Ax2+Ay2+Bx+Cy+D=0
(x-H)2/A2+(y-K)2/B2=1
(x-H)2/A2-(y-K)2/B2=1
(y-K)2/A2-(x-H)2/B2=1
Ax2+Bxy+Cy2+Dx+Ey+F=0
ここで、A、B、C、D、E、F、H、Kは、任意の値である。
【００３６】
ステップＳ２０３において、関数タイプが第１のタイプであると判定されたとき、処理はステップＳ２０４に進む。ステップＳ２０４において、端末１０は、当該図形のオブジェクトタイプフラグを第１のタイプに設定する。
【００３７】
ステップＳ２０５において、端末１０は、描画すべき図形に関係する関数、係数及び定数、座標エリア、各種設定等を決定し、記憶する。ステップＳ２０６において、端末１０は、決定した関数、係数及び定数、座標エリア、各種設定等の情報を、Ｗｅｂサーバ２０を介して演算サーバ３０宛に送信する。この際に送信される情報のデータ形式は、Ｗｅｂサーバ２０から提供されて端末１０で実行されているプログラムに応じる。
【００３８】
演算サーバ３０は、端末１０から送信された関数、係数及び定数、座標エリア、各種設定等の情報を、Ｗｅｂサーバ２０を介して取得する。演算サーバ３０は、取得した情報に基づいて、図形を描画するための演算を行う。演算サーバ３０は、端末１０で図形を描画するにあたって必要な、描画点の座標を算出する。演算サーバ３０は、描画点の座標の情報を、Ｗｅｂサーバ２０を介して端末１０宛に送信する。この際送信されるデータ形式は、Ｗｅｂサーバ２０から提供されて端末１０で実行されているプログラムに応じる。
【００３９】
ステップＳ２０７において、端末１０は、描画点の座標データを受信する。ステップＳ２０８において、端末１０は、描画点の座標の情報に基づいて、図形を描画する。図形の描画後、描画処理は終了する。
【００４０】
ステップＳ２０２において、描画タイプが幾何学タイプであると判定されたとき、処理はステップＳ２０９に進む。また、ステップＳ２０３において、関数タイプが第２タイプであると判定されたとき、処理はステップＳ２０９に進む。
【００４１】
ステップＳ２０９において、端末１０は、当該図形のオブジェクトタイプフラグを第２のタイプに設定する。ステップＳ２１０において、端末１０は、描画すべき図形に関係する関数、係数及び定数、座標エリア、各種設定等を決定し、記憶する。ステップＳ２１１において、端末１０は、決定した関数、係数及び定数、座標エリア、各種設定等の情報に基づいて、図形を描画するための演算を行う。端末１０は、図形を描画するにあたって必要な、描画点の座標を算出する。その後、処理はステップＳ２０８に進む。すなわち、ステップＳ２０８において、端末１０は、描画点の座標の情報に基づいて、図形を描画する。図形の描画後、描画処理は終了する。
【００４２】
例えば、図６Ａに示す例で、第１の数式付箋１１１への入力が確定され、第１の数式付箋１１１に入力された関数を表すグラフの描画が指示されたとする。第１の数式付箋１１１に入力されている数式は、「y=sin(x)」である。数式付箋に入力された数式に基づいてグラフ付箋１２０にグラフを描画する場合であるので、ステップＳ２０２の判定で描画タイプは関数であると判定される。「y=sin(x)」は、三角関数であるので、ステップＳ２０３の判定で、関数タイプは、第１のタイプであると判定される。
【００４３】
ステップＳ２０４において、端末１０は、これから描画するオブジェクトのオブジェクトタイプフラグを第１のタイプに設定する。端末１０は、ステップＳ２０５において関数及び座標エリア等を決定し、ステップＳ２０６においてこの情報を、Ｗｅｂサーバ２０を介して演算サーバ３０宛に送信する。ここで、関数は、y=sin(x)である。グラフ付箋のグラフ領域１２１の座標エリアは、−５≦ｘ≦５及び−３≦ｙ≦３である。これらの情報に基づいて演算サーバ３０は、y=sin(x)のグラフを−５≦ｘ≦５及び−３≦ｙ≦３の範囲でプロットするのに必要な点の座標を算出する。演算サーバ３０は、算出結果の座標群のデータを端末１０に送信する。端末１０は、ステップＳ２０７で受信した座標群のデータに基づいて、ステップＳ２０８でグラフ付箋にy=sin(x)を表す第１のグラフ１３１を描画する。
【００４４】
第２の数式付箋１１２に入力された関数を表すグラフの描画が指示されたとする。第２の数式付箋１１２に入力されている数式は、「y=x+1」である。数式付箋に入力された数式に基づいてグラフ付箋１２０にグラフを描画する場合であるので、ステップＳ２０２の判定で描画タイプは関数であると判定される。「y=x+1」は、上記に列記した一次関数の一種であるので、ステップＳ２０３の判定で、関数タイプは、第２のタイプであると判定される。
【００４５】
ステップＳ２０９において、端末１０は、これから描画するオブジェクトのオブジェクトタイプフラグを第２のタイプに設定する。端末１０は、ステップＳ２１０において関数、係数及び定数、座標エリア、各種設定等を決定し、ステップＳ２１１においてこの情報に基づいて、y=x+1のグラフを−５≦ｘ≦５及び−３≦ｙ≦３の範囲でプロットするのに必要な描画点の座標を算出する。端末１０は、算出した座標群のデータに基づいて、ステップＳ２０８でグラフ付箋にy=x+1を表す第２のグラフ１３２を描画する。
【００４６】
第３の数式付箋１１３に入力された関数を表すグラフの描画が指示されたとする。第３の数式付箋１１３に入力されている数式は、「y=x2」である。数式付箋に入力された数式に基づいてグラフ付箋１２０にグラフを描画する場合であるので、ステップＳ２０２の判定で描画タイプは関数であると判定される。「y=x2」は、上記に列記した円錐曲線の一種であるので、ステップＳ２０３の判定で、関数タイプは、第２のタイプであると判定される。
【００４７】
ステップＳ２０９において、端末１０は、これから描画するオブジェクトのオブジェクトタイプフラグを第２のタイプに設定する。端末１０は、ステップＳ２１０において関数、係数及び定数、座標エリア、各種設定等を決定し、ステップＳ２１１においてこの情報に基づいて、y=x2のグラフを−５≦ｘ≦５及び−３≦ｙ≦３の範囲でプロットするのに必要な点の座標を算出する。端末１０は、算出した座標群のデータに基づいて、ステップＳ２０８でグラフ付箋１２０にy=x2を表す第３のグラフ１３３を描画する。
【００４８】
図７Ａに示す例について説明する。ユーザが、多角形アイコン２８２を選択して第１の点２１１の位置を指定したとき、端末１０は、ステップＳ２０１において、この入力を描画指示として取得する。ステップＳ２０２において、端末１０は、幾何学図形の描画に関する入力であるので、描画タイプは、幾何学タイプであると判定する。端末１０は、ステップＳ２０９においてオブジェクトタイプフラグを第２のタイプに設定して、ステップＳ２１０において点が指定された旨を決定して記憶し、ステップＳ２１１で指定された第１の点２１１の座標を特定する。端末１０は、ステップＳ２０８において、第１の点２１１の座標に点を示す円形のマーカを描画し、さらにその近傍に「Ａ」と表示させる。
【００４９】
続いて、ユーザが、第２の点２１２の位置を指定したとき、端末１０は、ステップＳ２０１において、この入力を描画指示として取得する。ステップＳ２０２において、端末１０は、幾何学図形の描画に関する入力であるので、描画タイプは、幾何学タイプであると判定する。端末１０は、ステップＳ２０９においてオブジェクトタイプフラグを第２のタイプに設定して、ステップＳ２１０において点が指定された旨を決定して記憶し、ステップＳ２１１で指定された第２の点２１２の座標を特定する。さらに、端末１０は、ステップＳ２０９においてオブジェクトタイプフラグを第２のタイプに設定して、ステップＳ２１０において第１の点２１１と第２の点２１２とを結ぶ関数及び定数を決定し、その描画範囲を第１の点２１１と第２の点２１２との間に決定する。ステップＳ２１１において、第１の点２１１と第２の点２１２とを結ぶ直線を描画するために必要な点の座標を特定する。この座標は、第１の点２１１の座標と第２の点２１２の座標とであってもよいし、第１の点２１１と第２の点２１２との間の点の座標をさらに含んでいてもよい。ステップＳ２０８において、端末１０は、第２の点２１２の座標に点を示す円形のマーカを描画し、さらにその近傍に「Ｂ」と表示させる。さらに端末１０は、第１の点２１１と第２の点２１２とを結ぶ直線を第１の辺２１４として描画する。
【００５０】
以下同様に、ユーザが第３の点２１３の位置を指定したとき、ステップＳ２０８において、端末１０は、第３の点２１３の座標に点を示す円形のマーカを描画し、さらにその近傍に「Ｃ」と表示させる。さらに端末１０は、第２の点２１２と第３の点２１３とを結ぶ直線を第２の辺２１５として描画する。ユーザが第１の点２１１の位置を指定したとき、ステップＳ２０８において、端末１０は、第３の点２１３と第２の点２１２とを結ぶ直線を第３の辺２１６として描画する。その結果、三角形２１９が描画される。
【００５１】
ユーザが、円アイコン２８１を選択して中心点２２１の位置を指定したとき、端末１０は、ステップＳ２０１において、この入力を描画指示として取得する。ステップＳ２０２において、端末１０は、幾何学図形の描画に関する入力であるので、描画タイプは、幾何学タイプであると判定する。端末１０は、ステップＳ２０９においてオブジェクトタイプフラグを第２のタイプに設定して、ステップＳ２１０において点が指定された旨を決定して記憶し、ステップＳ２１１で指定された中心点２２１の座標を特定する。端末１０は、ステップＳ２０８において、中心点２２１の座標に点を示す円形のマーカを描画し、さらにその近傍に「Ｄ」と表示させる。
【００５２】
続いて、ユーザが、描画したい円の周の何れかの点の位置を指定したとき、端末１０は、ステップＳ２０１において、この入力を描画指示として取得する。ステップＳ２０２において、端末１０は、幾何学図形の描画に関する入力であるので、描画タイプは、幾何学タイプであると判定する。端末１０は、ステップＳ２０９においてオブジェクトタイプフラグを第２のタイプに設定して、中心点２２１を中心とし、指定された点が円周を通る円、すなわち、中心点２２１と指定された点との距離を半径とする円の関数を定数を含めて決定し、座標エリアを決定する。端末１０は、これらの情報を記憶する。ステップＳ２１１において、端末１０は、円周を描くための描画点の座標を算出する。ステップＳ２０８において、端末１０は、算出された座標に基づいて、第１の円２２２を描画する。端末１０は、同様に中心点２２１と指定された点とを結ぶ半径を示す直線２２３も同様に描画してもよい。また、端末１０は、半径を示す値２２４を表示してもよい。
【００５３】
描画メニュー２８０から選択して描画した図形を数式及び定数で表現するには、例えば以下が用いられ得る。
直線：２点の座標値
円：中心の座標値、及び半径
楕円：２つの焦点の座標値、及び各焦点からの距離の和
双曲線：２つの焦点の座標値、及び各焦点からの距離の差
放物線：１つの焦点、及び１本の直線。
【００５４】
ユーザが、多角形アイコン２８２を選択して表示されるアイコンの中から関数アイコンを選択することで、関数入力用の枠が表示され、ここにy=sin(x)が入力されサインカーブの描画が指示されたとする。端末１０は、ステップＳ２０１でこの指示を取得する。入力されている数式は、「y=sin(x)」であるので、ステップＳ２０２の判定で描画タイプは関数であると判定される。「y=sin(x)」は、三角関数であるので、ステップＳ２０３の判定で、関数タイプは、第１のタイプであると判定される。
【００５５】
ステップＳ２０４において、端末１０は、これから描画するオブジェクトのオブジェクトタイプフラグを第１のタイプに設定する。端末１０は、ステップＳ２０５において注目している関数であるy=sin(x)及び座標エリア等を決定し、ステップＳ２０６においてこの情報を、Ｗｅｂサーバ２０を介して演算サーバ３０宛に送信する。これらの情報に基づいて演算サーバ３０は、y=sin(x)のグラフを指定の範囲にプロットするのに必要な点の座標を算出する。演算サーバ３０は、算出結果の座標群のデータを端末１０に送信する。端末１０は、ステップＳ２０７で受信した座標群のデータに基づいて、ステップＳ２０８で幾何付箋２０５の図形表示エリア２０７にy=sin(x)を表すサインカーブ２３１を描画する。
【００５６】
以上のように、描画する図形のタイプに応じて、オブジェクトタイプフラグが第１又は第２に設定される。オブジェクトタイプフラグが第１のタイプであるとき、端末１０は、演算サーバ３０に図形を描画するための描画点の座標をリクエストし、演算サーバ３０からのレスポンスに含まれる座標データに基づいて、図形を描画する。オブジェクトタイプフラグが第２のタイプであるとき、端末１０は、図形を描画するための描画点の座標を算出し、得られた座標データに基づいて図形を描画する。
【００５７】
図２に戻って説明を続ける。ステップＳ１０５において、端末１０は、図形に変更を加える指示が入力されたか否かを判定する。変更を加える指示を入力されていないとき、処理はステップＳ１０７に進む。変更を加える指示が入力されたとき、処理はステップＳ１０６に進む。
【００５８】
ステップＳ１０６において、端末１０は、変更処理を行う。変更処理について、図４に示すフローチャートを参照して説明する。
【００５９】
ステップＳ３０１において、端末１０は、変更に関して入力された指示を取得する。例えば、図６Ａに示す第１のグラフ１３１を下方向（ｙ軸と平行にマイナス方向）に移動させる指示が入力された場合を考える。この指示は、例えば、マウス操作等で第１のグラフ１３１を下方向に希望する移動量だけドラッグすることで行われ得る。このような指示を取得した端末１０は、表示を図６Ｂに示す画面１０２のように変更する。すなわち、端末１０は、第１のグラフ１３１を削除して、第１のグラフ１３１をｙ軸に沿って−１だけ平行移動させた第４のグラフ１３４を表示する。これに伴って、端末１０は、第１の数式付箋１１１の表示も「y=sin(x)」から「y=sin(x)-1」に変更する。
【００６０】
あるいは、例えば図７Ａに示す第１の円２２２の半径を大きくする指示が入力された場合を考える。この指示は、例えば、マウス操作等で第１の円２２２の円周を外側に希望する量だけ広げるようにドラッグすることで行われ得る。このような指示を取得した端末１０は、表示を図７Ｂに示す画面２０２のように変更する。すなわち、端末１０は、第１の円２２２を削除して、第１の円２２２の半径を大きくした第２の円２２５を表示する。端末１０は、それと共に半径を示す直線２２３を半径に応じた新たな直線２２６に更新し、半径を示す値２２４を新たな値２２７に更新してもよい。
【００６１】
その他の変更として、例えば、図６Ａにおいて、第１のグラフ１３１、第２のグラフ１３２又は第３のグラフ１３３を平行移動させる、回転させる、反転させる、拡大させる、又は縮小させる、第１のグラフ１３１の周期又は値域を変更する、第３のグラフ１３３の開き具合を変更する等の種々の変更が入力され得る。例えば図７Ａにおいて、三角形２１９、第１の円２２２又はサインカーブ２３１を平行移動させる、回転させる、反転させる、拡大させる、又は縮小させる、三角形２１９を変形させる、サインカーブ２３１の周期又は値域を変更する等の変更が入力され得る。
【００６２】
図４に戻って説明を続ける。ステップＳ３０２において、端末１０は、変更指示が入力されたオブジェクトのオブジェクトタイプフラグが、第１のタイプに設定されているか第２のタイプに設定されているかを判定する。各オブジェクトのオブジェクトタイプフラグは、ステップＳ２０４又はステップＳ２０９の処理でオブジェクト毎に記憶されている。端末１０は、この情報を読み出して、ステップＳ３０２の判定を行う。第１のタイプであると判定されたとき、処理はステップＳ３０３に進む。
【００６３】
ステップＳ３０３において、端末１０は、取得された変更指示を解析して関数、定数等を変更し、記憶する。例えば、y=sin(x)で表される第１のグラフ１３１の周期を変更するとき、関数をy=sin(ax)とし、周期に応じて係数aの値を変更する。例えば、y=sin(x)で表される第１のグラフ１３１をｘ軸に沿って移動させるとき、関数をy=sin(x-a)とし、移動量に応じて定数aの値を変更する。
【００６４】
ステップＳ３０４において、端末１０は、ステップＳ３０３で変更した関数、係数及び定数、座標エリア、各種設定等をＷｅｂサーバ２０を介して演算サーバ３０宛に送信する。この際に送信される情報のデータ形式は、ステップＳ２０６の場合と同様に、Ｗｅｂサーバ２０から提供されて端末１０で実行されているプログラムに応じる。
【００６５】
演算サーバ３０は、端末１０から送信された関数、係数及び定数、座標エリア、各種設定等の情報を、Ｗｅｂサーバ２０を介して取得する。演算サーバ３０は、取得した情報に基づいて、図形を描画するための演算を行う。演算サーバ３０は、端末１０で図形を描画するにあたって必要な、描画点の座標を算出する。演算サーバ３０は、描画点の座標の情報を、Ｗｅｂサーバ２０を介して端末１０宛に送信する。この際送信されるデータ形式も、Ｗｅｂサーバ２０から提供されて端末１０で実行されているプログラムに応じる。
【００６６】
ステップＳ３０５において、端末１０は、描画点の座標データを受信する。ステップＳ３０６において、端末１０は、描画点の座標の情報に基づいて、図形を描画し直す。図形の描画後、変更処理は終了する。
【００６７】
ステップＳ３０２において、オブジェクトタイプは第２のタイプであると判定されたとき、処理はステップＳ３０７に進む。ステップＳ３０７において、端末１０は、取得された変更指示を解析して関数、定数等を変更し、記憶する。例えば、y=x+1で表される第２のグラフ１３２を並行移動するとき、関数をy=(x-a)+1+bとし、移動量に応じて定数a及びbの値を変更する。例えば、y=x+1で表される第２のグラフ１３２の傾きを変更させるとき、関数をy=ax+1とし、傾きに応じて係数aの値を変更する。
【００６８】
ステップＳ３０８において、端末１０は、変更した関数、係数及び定数、座標エリア等の情報に基づいて、図形を描画するための演算を行う。端末１０は、図形を描画するにあたって必要な、描画点の座標を算出する。その後、処理はステップＳ３０６に進む。すなわち、ステップＳ３０６において、端末１０は、描画点の座標の情報に基づいて、図形を描画する。図形の描画後、変更処理は終了する。
【００６９】
以上のように図形の変更においても、描画する図形のタイプに応じて、端末１０は、演算サーバ３０に図形を描画するための描画点の座標をリクエストしたり、図形を描画するための描画点の座標を算出したりする。ここで、オブジェクトタイプが第１のタイプであるとき、端末１０はＷｅｂサーバ２０との間でデータの送受信を行わなければいけないし、演算サーバ３０は演算する必要があり、これらにはある程度の時間を要する。このため、端末１０は、ユーザによるマウスの移動が停止する等、変更操作が一段落してから、データの送受信及び演算が行われ得る。これに対して、オブジェクトタイプが第２のタイプであるとき、端末１０はＷｅｂサーバ２０との間でデータの送受信はないし、端末１０による演算負荷もそれほど大きくないことが多い。このため、端末１０は、ユーザによるマウスの移動等が継続している最中にも、リアルタイムで座標の再計算及び図形の再描画を行ってもよい。
【００７０】
図２に戻って説明を続ける。ステップＳ１０７において、端末１０は、図形の交点を算出する指示が入力されたか否かを判定する。本実施形態では、システム１は、２つの図形を指定して当該２つの図形の交点の座標を算出して表示する機能を有している。
【００７１】
例えば図６Ａの例において、機能メニューから交点の算出の機能が選択され、第１のグラフ１３１と第２のグラフ１３２とが選択されたとする。このとき、図６Ａに示すように、第１のグラフ１３１と第２のグラフ１３２との交点である、第１の交点１４１が交点Ａとして表示されてその座標（ｘａ１，ｙａ１）が表示される。また、交点の算出の機能が選択され、第２のグラフ１３２と第３のグラフ１３３とが選択されたとき、第２の交点１４２が交点Ｂとして表示されてその座標（ｘｂ１，ｙｂ１）が表示され、第３の交点１４３が交点Ｃとして表示されてその座標（ｘｃ１，ｙｃ１）が表示される。
【００７２】
例えば、図７Ａの例において、Constructアイコン２９８を選択することで表示エリア２９２に表示される交点算出アイコンが選択されて、三角形２１９と第１の円２２２とが選択されたとする。このとき、図７Ａに示すように、三角形２１９と第１の円２２２との交点である第４の交点２４１が交点Ｅとして表示されてその座標（ｘｅ１，ｙｅ１）が表示され、第５の交点２４２が交点Ｆとして表示されてその座標（ｘｆ１，ｙｆ１）が表示される。また、交点の算出の機能が選択され、第１の円２２２とサインカーブ２３１とが選択されたとき、第６の交点２５１が交点Ｇとして表示されてその座標（ｘｇ１，ｙｇ１）が表示され、第７の交点２５２が交点Ｈとして表示されてその座標（ｘｈ１，ｙｈ１）が表示される。
【００７３】
ステップＳ１０７において交点を算出する指示が入力されていないと判定されたとき、処理はステップＳ１０９に進む。交点を算出する指示が入力されたとき、処理はステップＳ１０８に進む。ステップＳ１０８において、端末１０は、交点算出処理を行う。交点算出処理について、図５に示すフローチャートを参照して説明する。
【００７４】
ステップＳ４０１において、端末１０は、交点を求めるべきとして選択された２つのオブジェクトの情報を取得する。この情報は、各オブジェクトに関係する関数、係数及び定数、座標エリア、及びオブジェクトタイプなどを含む。
【００７５】
ステップＳ４０２において、端末１０は、選択されたオブジェクトが全て第２タイプであるか否かを判定する。全て第２タイプでないとき、すなわち少なくとも１つが第１タイプであるとき、処理はステップＳ４０３に進む。例えば、図６Ａに示す例では、第１のグラフ１３１と第２のグラフ１３２とが選択されたとき、第１のグラフ１３１が第１タイプであるので、処理がステップＳ４０３に進む。例えば、図７Ａに示す例では、第１の円２２２とサインカーブ２３１とが選択されたとき、サインカーブ２３１が第１タイプであるので、処理がステップＳ４０３に進む。
【００７６】
ステップＳ４０３において、端末１０は、関数及び座標エリアなど選択されたオブジェクトに関する情報とそれらオブジェクトの交点を要求する旨とを、Ｗｅｂサーバ２０を介して演算サーバ３０宛に送信する。
【００７７】
このリクエストを受信した演算サーバ３０は、受信した関数に関する交点の座標を算出する。演算サーバ３０は、算出した交点の座標データを、Ｗｅｂサーバ２０を介して端末１０宛に送信する。
【００７８】
ステップＳ４０４において、端末１０は、交点のデータを受信する。ステップＳ４０５において、端末１０は、受信した交点データに基づいて、表示に交点と交点の座標とを追加する。その結果、図６Ａに示す画面１０１の例では、第１のグラフ１３１と第２のグラフ１３２との交点である第１の交点１４１について、表示１５１のように、交点Ａの表示とその座標（ｘａ１，ｙａ１）の表示とが追加される。図７Ａに示す画面２０１の例では、第１の円２２２とサインカーブ２３１との交点である第６の交点２５１について、表示２５３のように、交点Ｇの表示とその座標（ｘｇ１，ｙｇ１）の表示とが追加され、第７の交点２５２について、表示２５４のように、交点Ｈの表示とその座標（ｘｈ１，ｙｈ１）の表示とが追加される。その後、交点算出処理は終了する。
【００７９】
ステップＳ４０２において、選択されたオブジェクトが全て第２タイプであると判定されたとき、処理はステップＳ４０６に進む。例えば、図６Ａに示す例では、第２のグラフ１３２と第３のグラフ１３３とが選択されたとき、これらのグラフは何れも第２タイプであるので、処理がステップＳ４０６に進む。例えば、図７Ａに示す例では、三角形２１９と第１の円２２２とが選択されたとき、これらの図形は何れも第２タイプであるので、処理がステップＳ４０６に進む。
【００８０】
ステップＳ４０６において、端末１０は、選択されたオブジェクトの関数に基づいて、交点の座標を算出する。その後、ステップＳ４０５において、端末１０は、算出した交点の座標に基づいて、表示に交点と交点の座標とを追加する。その結果、図６Ａに示す画面１０１の例では、第２のグラフ１３２と第３のグラフ１３３との交点である第２の交点１４２について、表示１５２のように、交点Ｂの表示とその座標（ｘｂ１，ｙｂ１）の表示とが追加され、第３の交点１４３について、表示１５３のように、交点Ｃの表示とその座標（ｘｃ１，ｙｃ１）の表示とが追加される。図７Ａに示す画面２０１の例では、三角形２１９と第１の円２２２との交点である第４の交点２４１について、表示２４３のように、交点Ｅの表示とその座標（ｘｅ１，ｙｅ１）の表示とが追加され、第５の交点２４２について、表示２４４のように、交点Ｆの表示とその座標（ｘｆ１，ｙｆ１）の表示とが追加される。その後、交点算出処理は終了する。
【００８１】
例えば、任意の直線「y=ax+b」と「y=cx+d」との交点の座標(x,y)は、
x=(d-b)/(a-c)
y=ad-bc/(a-c)
（ただし、aとcとは等しくない。）
で求まる。このような算出式を事前に導出しておき、直線オブジェクトの変数(a,b,c,d)を代入することで、交点の座標は容易に算出され得る。直線と直線以外にも、円と直線、円と円、楕円と円など、必要な交点算出式を事前に用意しておき、対象オブジェクトに応じて算出式を読み出し用いることで、交点の座標は容易に算出され得る。
【００８２】
図２に戻って説明を続ける。ステップＳ１０９において、端末１０は、本処理を終了するか否かを判定する。処理を終了すると判定されたとき、本処理は終了する。処理を終了しないと判定されたとき、処理はステップＳ１０１に戻る。すなわち、ユーザからの入力に応じて、図形の描画、変形、交点の算出等が繰り返し行われる。
【００８３】
例えば、図６Ａの状態から、第１のグラフ１３１が選択されて、ｙ軸に沿って−１平行移動させる指示が入力されたとき、上述のとおりステップＳ１０６の変更処理が行われて図６Ｂに示すように、第１のグラフ１３１が削除されて移動後の第４のグラフ１３４が描画される。これと共に、ステップＳ１０８の交点算出処理が行われて、第２のグラフ１３２との交点が更新される。すなわち、第４のグラフ１３４と第２のグラフ１３２との交点である第８の交点１４４の座標が算出され、表示１５４のように交点Ａの表示の位置が変更され、その座標（ｘａ２，ｙａ２）の表示が更新される。
【００８４】
同様に、図７Ａの状態から、第１の円２２２が選択されて、その半径を大きくする指示が入力されたとき、上述のとおりステップＳ１０６の変更処理が行われて図７Ｂに示すように、第１の円２２２が削除されて半径を大きくした新たな第２の円２２５が描画される。これと共に、ステップＳ１０８の交点算出処理が行われて、三角形２１９及びサインカーブ２３１との交点が更新される。すなわち、新たな第２の円２２５と三角形２１９との交点である第９の交点２４６及び第１０の交点２４７の座標が算出され、表示２４８のように交点Ｅの表示の位置が変更され、その座標（ｘｅ２，ｙｅ２）の表示が更新されるとともに、表示２４９のように交点Ｆの表示の位置が変更され、その座標（ｘｆ２，ｙｆ２）の表示が更新される。また、新たな第２の円２２５とサインカーブ２３１との交点である第１１の交点２５６及び第１２の交点２５７の座標が算出され、表示２５８のように交点Ｇの表示の位置が変更され、その座標（ｘｇ２，ｙｇ２）の表示が更新されるとともに、表示２５９のように交点Ｈの表示の位置が変更され、その座標（ｘｈ２，ｙｈ２）の表示が更新される。
【００８５】
以上のように、本実施形態に係るシステム１では、比較的複雑な演算は、Ｗｅｂサーバ２０の背後にある演算サーバ３０で行われる。端末１０から送信される情報は、関数、係数及び定数、座標エリア、各種設定等であり、端末１０が受信する情報は描画点の座標情報である。このような構成によって、複雑な演算が実現され得る。また、端末１０では複雑な処理が行われる必要がないため、端末１０による処理が軽減される。また、演算サーバ３０で行われる処理が秘匿化され得る。
【００８６】
一方で、全ての演算が演算サーバ３０で行われると、端末１０と演算サーバ３０との通信に要する時間が長くなる。例えば、幾何学図形を複数描画して、それらの図形の交点を表示しつつ、図形を移動させたり変形させたりすることを頻繁に繰り返すことを想定すると、通信時間の長さが問題となり得る。本実施形態の構成によれば、比較的演算負荷が小さい単純な演算は端末１０で行い、比較的演算負荷が大きい複雑な演算は演算サーバ３０とで行う。このような処理の分散によって、システム全体としての処理時間が短縮化され、処理が高速化される。また、多数の端末がアクセスするサーバの負荷が抑制され得る。
【００８７】
上述の実施形態では、端末１０で動作するプログラムに、一次関数及び円錐曲線の関数が用意されている例を示した。しかしながらこれに限らず、端末１０に用意されている関数は、端末１０で処理できる範囲でどのような関数であってもよい。また、端末１０には、グラフを描画するための関数が用意されていなくてもよい。この場合、グラフを描画する際には、演算サーバ３０が算出した座標が用いられ、幾何学図形を描画する際には、端末１０が特定した座標が用いられる。
【００８８】
上述の実施形態では、図形を描画すること、図形を変更すること、図形の交点を求めることを例示したが、これらのうち一部の処理が無くてもよいし、他の処理が加えられてもよい。例えば、図形上の点と他の図形上の点との距離を求める処理、図形の長さを求める処理、図形の傾きを求める処理などが行われてもよい。これらの場合も、図形に関係する関数に応じて、端末１０で演算を実行するか、演算サーバ３０で演算を実行するかが選択され得る。
【００８９】
端末１０で動作するプログラムは、例えばJavaScript（登録商標）を用いて記述され得る。端末１０とＷｅｂサーバ２０との間の送受信は、ＨＴＴＰプロトコルを介して行われ、送受信される情報を例えばＲＥＳＴ形式ＪＳＯＮデータとして、HTTP POST/GETを介して行われ得る。
【００９０】
上述の実施形態では、数学教育のためのアプリケーション例を示したが、これに限らない。上述の技術は、各種教育用のアプリケーションに適用され得る。また、教育用に限らず、解析用のアプリケーション等、種々のアプリケーションに適用され得る。特に、数学、物理、化学その他の科学分野、或いは工学分野のアプリケーションに適用され得る。
【００９１】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００９２】
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］
サーバと通信する情報端末に、
図形に関する処理の指示を取得することと、
前記図形を表す関数に関係する演算を前記情報端末が行えるか否かを判定することと、
前記演算を前記情報端末が行えるときには、前記情報端末に記憶された前記関数に基づいて前記図形に関する処理を実行することと、
前記演算を前記情報端末が行えないときには、前記関数に関する情報を含むデータを前記サーバ宛に送信し、当該データに基づいて前記サーバが処理した結果のデータを前記サーバから受信することと
を実行させるためのプログラム。
［２］
前記図形に関する処理は、図形を描画するための描画点の座標を算出することを含み、
前記描画点の座標に基づいて、前記図形を描画することをさらに前記情報端末に実行させる、
［１］に記載のプログラム。
［３］
前記図形に関する処理は、描画された図形を変更するための描画点の座標を算出することを含み、
前記描画点の座標に基づいて、前記図形を描画することをさらに前記情報端末に実行させる、
［１］又は［２］に記載のプログラム。
［４］
前記図形に関する処理は、描画された複数の図形の交点の座標を算出することを含み、
前記交点の座標を表示することをさらに前記情報端末に実行させる、
［１］乃至［３］のうち何れか１項に記載のプログラム。
［５］
前記情報端末に記憶された前記関数は、一次関数又は円錐曲線の関数を含む、
［１］乃至［４］のうち何れか１項に記載のプログラム。
［６］
前記サーバ宛に送信するデータは、関数及び座標エリアの情報を含むデータであり、
前記サーバから受信するデータは、図形の描画点の座標又は図形の交点の座標を含むデータである、
［１］乃至［５］のうち何れか１項に記載のプログラム。
［７］
サーバと通信する情報端末が、
図形に関する処理の指示を取得することと、
前記図形を表す関数に関係する演算を前記情報端末が行えるか否かを判定することと、
前記演算を前記情報端末が行えるときには、前記情報端末に記憶された前記関数に基づいて前記図形に関する処理を実行することと、
前記演算を前記情報端末が行えないときには、前記関数に関する情報を含むデータを前記サーバ宛に送信し、当該データに基づいて前記サーバが処理した結果のデータを前記サーバから受信することと
を含む情報処理方法。
［８］
サーバと通信する情報端末であって、
図形に関する処理の指示を取得することと、
前記図形を表す関数に関係する演算を前記情報端末が行えるか否かを判定することと、
前記演算を前記情報端末が行えるときには、前記情報端末に記憶された前記関数に基づいて前記図形に関する処理を実行することと、
前記演算を前記情報端末が行えないときには、前記関数に関する情報を含むデータを前記サーバ宛に送信し、当該データに基づいて前記サーバが処理した結果のデータを前記サーバから受信することと
を実行するプロセッサを備える情報端末。
【符号の説明】
【００９３】
１…システム、１０…端末、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ストレージ、１５…入力装置、１６…表示装置、１７…通信装置、１９…バスライン、２０…Ｗｅｂサーバ、３０…演算サーバ、３１…プロセッサ、３２…ＲＯＭ、３３…ＲＡＭ、３４…ストレージ、３５…通信装置、３９…バスライン、５０…ネットワーク。
【図１】
2019185687.tif 000003
【図２】
2019185687.tif 000004
【図３】
2019185687.tif 000005
【図４】
2019185687.tif 000006
【図５】
2019185687.tif 000007
【図６Ａ】
2019185687.tif 000008
【図６Ｂ】
2019185687.tif 000009
【図７Ａ】
2019185687.tif 000010
【図７Ｂ】
2019185687.tif 000011