(57)【要約】【課題】演算処理能力が制限された環境下でも、同期して異なる回転速度で回転可能な複数の歯車を任意に配置して、回転した状態に表示させることを可能とする。【解決手段】  携帯電話１に互いに同期して回転する歯車をアニメーション表示させるプログラムである。歯数が異なる複数の歯車に対応して、一歯分の回転角度を互いにほぼ等間隔に各歯車で同じ分割数で分割した各回転角度位置での歯車の画像を示すインデックス画像６２を記憶領域６に記憶させる。インデックス画像６２を順次切り替えて表示することで、歯数が異なることにより、同期して回転していても、回転速度が異なる歯車を表示する。この場合に、互いに同期し、かつ、歯数の異なる歯車を表示するために、各歯車の表示において、インデックス画像３２を順次切り替えるタイミングをほぼ同期させる。【選択図】図１
2005242456.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ互いに同期して回転可能で、それぞれ固有の所定角度を回転する毎に、回転前の形状と回転後の形状とが一致する回転対称の形状を有し、かつ、複数の回転体が互いに同期して回転する場合にそれぞれ固有の所定角度を回転する時間が略一致する複数の歯車等の回転体をアニメーション表示する回転体画像表示装置であって、
前記所定角度が互いに異なる複数の回転体のそれぞれのアニメーション用の画像データとして、各回転体のそれぞれ固有の所定角度をほぼ等間隔に各回転体で同じ分割数で分割した各回転角度位置での前記回転体の画像を示し、かつ、所定角度を各回転体で同じ分割数で分割することにより各回転体で同数にされた画像データを記憶する記憶手段と、
前記記憶手段に記憶された複数の回転体毎の複数の前記画像データを順次表示することで回転体をアニメーション表示するとともに、前記回転体の任意の回転速度に応じて前記記憶手段に記憶された前記画像データを順次切り替えて表示していく場合に、同期して回転した状態に表示される回転体同士の前記画像データを切り替えるタイミングをほぼ同期させる表示制御手段とを備えることを特徴とする回転体画像表示装置。
【請求項２】
隣接して互いに同期して回転する各回転体にそれぞれ対応するとともに、互いに接触して同期して回転する仮想円の円周上に、各回転体の一回転に含まれる前記所定角度の数に、所定角度回転する回転体をアニメーション表示させるための前記画像データの数を乗算して得られた値となる数の仮想点をほぼ等間隔毎に設定しておくとともに、各仮想点がそれぞれアニメーション表示用の複数の前記画像データの１つに対応するものとし、各仮想点を個々に示す仮想点の座標データを記憶する円周座標記憶手段を備え、
前記表示制御手段は、前記画像データを順次表示することで回転体をアニメーション表示する場合に、前記画像データの表示時における前記回転体の回転速度に応じた回転角度に対応する前記仮想点を求め、複数の前記画像データのうちの求められた仮想点に対応する前記画像データを表示することを特徴とする請求項１記載の回転体画像表示装置。
【請求項３】
隣接して互いに同期して回転する回転体同士の間では、それぞれの回転体が所定角度分だけ回転する時間が等しくされ、かつ、互いに所定角度回転する際の位相が所定角度回転する時間の半分の時間だけずれるという条件を有する場合に、
前記表示制御手段は、隣接して互いに同期して回転する回転体にそれぞれ対応するとともに、互いに接する仮想円同士の接点に最も近い前記仮想点を互いに接する仮想円毎に求め、
一方の仮想円に対して求められた仮想点と一方の仮想円に対応する回転体の回転角度に対応する前記位相との関係に基づくとともに、前記条件に基づいて、
他方の仮想円に対して求められた仮想点と他方の仮想円に対応する回転体の位相との関係を求めることにより前記条件に対応して互いに同期して回転する回転体を表示することを特徴とする請求項２記載の回転体画像表示装置。
【請求項４】
前記記憶手段は、前記画像データを配色表と配色表式画像データとを有するインデックス画像として記憶し、
前記記憶手段に記憶されたインデックス画像の配色表上の色のデータを書き換えることにより、回転体の画像の色を変更する色変更手段を備えたことを特徴とする請求項１〜３のいずれか１項に記載の回転体画像表示装置。
【請求項５】
表示装置を備えるコンピュータに、それぞれ互いに同期して回転可能で、それぞれ固有の所定角度を回転する毎に、回転前の形状と回転後の形状とが一致する回転対称の形状を有し、かつ、互いに同期して回転する場合にそれぞれ固有の所定角度を回転する時間が略一致する複数の歯車等の回転体をアニメーション表示させるプログラムであって、
前記所定角度が互いに異なる複数の回転体のそれぞれのアニメーション用の画像データとして、各回転体のそれぞれ固有の所定角度を互いにほぼ等間隔に同じ分割数で分割した各回転角度位置での前記回転体の画像を示し、かつ、所定角度を各回転体で同じ分割数で分割することにより各回転体で同数にされた画像データを順次表示することで回転体をアニメーション表示する機能と、
前記回転体の任意の回転速度に応じて前記画像データを順次切り替えて表示していく場合に、同期して回転した状態に表示される回転体同士の前記画像データを切り替えるタイミングをほぼ同期させる機能とをコンピュータに実現させることを特徴とする回転体画像表示プログラム。
【請求項６】
隣接して互いに同期して回転する各回転体にそれぞれ対応するとともに、互いに接触して同期して回転する仮想円の円周上に、各回転体の一回転に含まれる前記所定角度の数に、所定角度回転する回転体をアニメーション表示させるための前記画像データの数を乗算して得られた値となる数の仮想点をほぼ等間隔毎に設定しておくとともに、各仮想点がそれぞれアニメーション表示用の複数の前記画像データの１つに対応するものとし、
前記画像データを順次表示することで回転体をアニメーション表示する場合に、前記画像データの表示時における前記回転体の回転速度に応じた回転角度に対応する前記仮想点を求め、複数の前記画像データのうちの求められた仮想点に対応する前記画像データを表示する機能を前記コンピュータに実現させることを特徴とする請求項５に記載の回転体画像表示プログラム。
【請求項７】
隣接して互いに同期して回転する回転体同士の間では、それぞれの回転体が所定角度分だけ回転する時間が等しくされ、かつ、互いに所定角度回転する際の位相が所定角度回転する時間の半分の時間だけずれるという条件を有する場合に、
隣接して互いに同期して回転する回転体にそれぞれ対応するとともに互いに接する仮想円同士の接点に最も近い前記仮想点を互いに接する仮想円毎に求め、
一方の仮想円に対して求められた仮想点と一方の仮想円に対応する回転体の回転角度に対応する前記位相との関係に基づくとともに、前記条件に基づいて、
他方の仮想円に対して求められた仮想点と他方の仮想円に対応する回転体の位相との関係を求めることにより前記条件に対応して互いに同期する回転体を表示する機能を前記コンピュータに実現させることを特徴とする請求項６に記載の回転体画像表示プログラム。
【請求項８】
前記画像データを配色表と配色表式画像データとを有するインデックス画像として前記コンピュータの記憶手段に記憶し、
前記記憶手段に記憶されたインデックス画像の配色表上の色のデータを書き換えることにより、回転体の画像の色を変更する機能を前記コンピュータに実現させることを特徴とする請求項５〜７のいずれか１項に記載の回転体画像表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、歯車等の互いに同期して回転する回転体を表示する回転体画像表示装置及び回転体画像表示プログラムに関する。
【背景技術】
【０００２】
近年、携帯電話には、カラー液晶ディスプレイが備えられ、テキストやマークによる情報の表示だけではなく、絵や写真といった画像の表示が行われ、さらに、ビデオ等の動画の表示も可能となっている。
また、インターネット上の携帯電話専用ウェブページと、この携帯電話専用ウェブページを閲覧するための専用ブラウザを搭載した携帯電話とからなるシステムも開発され、インターネットを介して情報の収集が可能となるとともに、インターネットを介しての電子メールの送受も可能となっている。
【０００３】
また、組み込み機器用のＪａｖａ（登録商標）を用いたアプリケーションを実行可能となった携帯電話もあり、例えば、インターネットを介してＪａｖａを用いたコンテンツ（Ｊａｖａアプレット）として簡易なビデオゲームプログラムをダウンロードし、ダウンロードした簡易なビデオゲームを実行できるようになった携帯電話も市販されている。
ビデオゲームを実行する上では、キャラクタ等のアニメーションを表示する必要があるが、例えば、携帯電話用のブラウザソフトによりアニメーションを表示可能とする携帯電話機が開発されている。（例えば、特許文献１参照。）。
【特許文献１】特開２００２−３５２２６２号公報（第５頁）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、本出願人らは、インターネット接続環境を有する携帯電話に提供するコンテンツとして、携帯電話の表示画面に携帯電話の使用者が任意の歯数の歯車を複数組み合わせて配置して表示させるようにインタラクティブに操作可能とし、使用者の操作により表示画面上に表示された各歯車を駆動側の歯車の回転速度と、各歯車の歯数の比に応じて別々の回転速度で回転するようにアニメーション表示するプログラムの開発を試みた。
また、上述のコンテンツでは、使用者の興趣を高められるように、各歯車の回転に対応して回転する時計の針も表示可能とされ、使用者がうまく歯車を組み合わせて配置することにより、時針、分針、秒針をそれぞれ時、分、秒単位で回転させることが可能であり、いわゆるスケルトン時計のような表示も可能とするものとした。
【０００５】
しかし、現在の携帯電話では、電話として電池の限られた電力で長時間の使用を可能とすることや、小型軽量化が求められており、メモリの記憶容量や演算処理装置の処理能力等のハード構成に限界があるとともに、携帯電話で用いられる組み込み機器用のＪａｖａでは、上述のハード構成に対応して、限られた演算処理しか実行することができない設定となっている。前記Ｊａｖａでは、例えば、浮動小数点演算を行うことができず、演算は整数に限られ、さらに、使用可能な関数が少なく、例えば、三角関数を用いることができないなどの制約がある。また、このような携帯電話では、使用可能な画像ファイルの種類も限られる。例えば、使用可能な画像ファイルは、インデックス画像ファイルであるＧＩＦ（サービスマーク）や不可逆圧縮を用いたＪｐｅｇなどに限られる。
【０００６】
従って、上述のような携帯電話機において、前記コンテンツを実現するために、予め、決められた歯車を回転表示させるのではなく、使用者が任意に配置した互いに噛み合う複数の歯車をそれぞれ互いに同期させた状態でアニメーション表示したりすることは極めて困難であった。すなわち、互いに噛み合う歯車は、それらの歯数の比に基づいて回転速度が異なり、かつ、互いに噛み合う歯車においては、一方の歯車の歯と歯の間の谷の部分に他方の歯車の歯が噛み合うように同期するので、異なる回転速度でかつ互いに同期した二つ以上の歯車をアニメーション表示することが、上述の携帯電話の機能が限られた条件下では困難であった。
【０００７】
また、写真などに比較して色数の少ないアニメーション等の表示ではＪｐｅｇより、インデックス画像であるｇｉｆの方が有利であり、画像データとしてはインデックス画像が用いられることになる。そして、各歯車の色を使用者の操作に応じて変更可能とする場合には、例えば、上述のインデックス画像の色の変更を行うようなアプリケーションを組み込んだり、複数種の各歯車のアニメーション用の画像データに、予め色違いの複数種の画像データを用意する必要があるが、このような場合にアプリケーションの記憶用や色違いの画像データの記憶用に多くのメモリ容量が必要となり、携帯電話のメモリ容量や処理能力では容量や能力が不足する可能性があったり、メモリ容量や処理能力が限界近くなることで、使い勝手が悪くなる可能性がある。
【０００８】
また、コンテンツとしてのＪａｖａアプレットは、例えば、携帯電話にインターネットを介して接続されたサーバからダウンロードすることになる。また、複数のＪａｖａアプレットを使用するような場合には、携帯電話の記憶容量の問題で、使用していないＪａｖａアプレットを消去し、消去されたＪａｖａアプレットを使用する場合には、再びダウンロードする必要がある。また、Ｊａｖａアプレットの利用料等の課金上の問題で、使用する毎や所定期間毎にＪａｖａアプレットをダウンロードする必要が生じる場合もある。
従って、上述のような携帯電話のハード上の制限や組み込み用Ｊａｖａの上述のようなソフト上の制限がないものとしても、コンテンツとして多くの処理を行うために、コンテンツのデータ容量が大きなものとなってしまった場合には、コンテンツをダウンロードする際の通信に対する課金により、使用者に大きな負担を強いることになり、コンテンツ自体の利用料が安くとも、コンテンツの利用が困難なものとなってしまう。
【０００９】
本発明の課題は、演算処理能力が制限された環境下でも、歯車等の互いに同期して異なる回転速度で回転可能な複数の回転体を任意に配置して、回転した状態に表示させることが可能な携帯端末及び回転体画像表示プログラムを提供することである。
【課題を解決するための手段】
【００１０】
請求項１に記載の発明は、それぞれ互いに同期して回転可能で、それぞれ固有の所定角度を回転する毎に、回転前の形状と回転後の形状とが一致する回転対称の形状を有し、かつ、複数の回転体が互いに同期して回転する場合にそれぞれ固有の所定角度を回転する時間が略一致する複数の歯車等の回転体をアニメーション表示する回転体画像表示装置であって、
前記所定角度が互いに異なる複数の回転体のそれぞれのアニメーション用の画像データとして、各回転体のそれぞれ固有の所定角度をほぼ等間隔に各回転体で同じ分割数で分割した各回転角度位置での前記回転体の画像を示し、かつ、所定角度を各回転体で同じ分割数で分割することにより各回転体で同数にされた画像データを記憶する記憶手段と、
前記記憶手段に記憶された複数の回転体毎の複数の前記画像データを順次表示することで回転体をアニメーション表示するとともに、前記回転体の任意の回転速度に応じて前記記憶手段に記憶された前記画像データを順次切り替えて表示していく場合に、同期して回転した状態に表示される回転体同士の前記画像データを切り替えるタイミングをほぼ同期させる表示制御手段とを備えることを特徴とする。
【００１１】
ここで、回転体画像表示装置とは、例えば、液晶表示装置やＥＬ表示装置等を備えた携帯端末であり、記憶容量や演算処理能力に限界があり、かつ、プログラムを実行可能な小型コンピュータと見なせる装置であるが、本発明は特に携帯電話に好適に応用可能である。
また、回転体とは、例えば、歯車、特に平歯車（外歯歯車だけではなく、内歯歯車を含んでも良い）であるが、完全な歯車である必要はなく、歯車風に表示される回転体であれば良い。例えば、歯車風の回転体が歯の形状等により実際に歯車とした場合に、互いに噛み合って回転することが困難なものであっても良い。また、通常１つの歯車には、回転対称となる角度が複数存在するが、ここでは１つの歯分の回転角度であり、回転対称となる角度のうちの最小となる角度が所定角度となる。
【００１２】
請求項１に記載の発明によれば、各回転体は、所定角度毎に対称となる回転対称の形状を有するので、回転体を所定角度分だけ回転するアニメーション用の複数の画像データを用意し、これを回転体が一回転する間に含まれる所定角度の数（３６０度／所定角度）だけ繰り返し表示することで、回転体を一回転するアニメーションが可能となり、必要な画像データの数を減らすことができる。
【００１３】
また、回転体である歯車において、互いに噛み合う歯車は、所定角度である一歯分の回転角度を回転する時間が等しくなっているので、アニメーション用の画像データとして、各回転体のそれぞれ固有の所定角度をほぼ等間隔に各回転体で同じ分割数で分割した各回転角度位置での前記回転体の画像を示し、かつ、所定角度を各回転体で同じ分割数で分割することにより各回転体で同数にされた画像データを用いることにより、アニメーション用の画像データを順次表示していく場合に、各回転体で同じタイミングで順次画像データを表示していくことにより、互い噛み合っている歯車（回転体）を、これらの回転体の歯数の比に基づいた同期する回転速度で回転した状態に表示することができる。
【００１４】
すなわち、歯数が６の歯車と歯数が１２の歯車が噛み合っている場合に、歯数が６の歯車は、歯数が１２の歯車の２倍の回転速度で回転することになるが、この発明によれば、前記回転体の任意の回転速度に応じて前記記憶手段に記憶された画像データを順次切り替えて表示していく場合に、同期して回転した状態に表示される回転体同士の画像データを切り替えるタイミングをほぼ同期させるだけで、各歯車の歯数に応じた回転速度で同期して回転させた状態にアニメーション表示を行うことができる。
また、基本的に各回転体の画像データを切替のタイミングを合わせて表示していくだけの処理で互いに噛み合った歯車を表示可能なので、使用者が任意に複数の歯車を配置するとともに噛み合わせ、かつ、回転速度を任意に変更するものとしても、記憶容量や演算処理能力に制限がある携帯電話等の携帯端末で、容易に噛み合った歯車のアニメーション表示が可能となる。すなわち、小数点以下の数値を用いたり、三角関数を用いたりしなくとも、互いに同期して回転体をアニメーション表示することができる。
【００１５】
なお、任意の回転速度で回転するのは、例えば、駆動源に接続された原車であり、原車に噛み合う従車は、原車と従車との歯数の比に応じて原車の回転速度に応じた回転速度で回転する。なお、原車の回転速度を任意に変更可能ならば、原車の回転速度を任意に変更することで従車の回転速度も任意に変更されることになる。
また、画像データを順次切り替えて表示する場合には、アニメーションの単位時間当りのフレームの表示数に対応することになるが、フレーム間の経過時間が任意の回転速度で回転する回転体が所定角度を各歯車で同数となる分割数で分割した分割角度だけ回転する時間より短い場合には、例えば、同じ画像データを複数フレームに渡って表示した後に、その後のフレームで次ぎの画像データに切り替えて画像データを表示することになるが、各回転体が同じフレームで画像データを切り替えることにより、より明確に、互いに噛み合う歯車を同期した状態に表示可能となる。
【００１６】
また、フレーム間の経過時間が任意の回転速度で回転する回転体が前記分割角度だけ回転する時間より長い場合には、例えば、画像データが１，２，３，…と順番にある場合に、１の画像データを表示した後に２や３等の間の画像データを飛ばして、３や４の画像データを表示する場合もあるが、この場合も、各回転体において、前の画像データを表示した後に各回転体で同じ数だけ飛ばした画像データを表示するようにすることで各回転体が同期した状態に回転するアニメーション表示を行うことができる。なお、本発明において、回転速度とフレーム間の経過時間との関係で、回転体の画像データが１つ飛ばしや２つ飛ばし等で切り替えて表示される場合も、順次切り替えて表示されているものとする。
また、フレーム毎に表示されるアニメーション表示において、同期して回転する各回転体毎の複数の画像データが、同じフレームで必ず同時に切り替えて表示される必要はなく、数フレームずれるようなことがあっても良いが、ずれが累積して増加していくようなことがないように同期させておく必要がある。
【００１７】
請求項２に記載の発明は、請求項１記載の画像表示装置において、隣接して互いに同期して回転する各回転体にそれぞれ対応するとともに、互いに接触して同期して回転する仮想円の円周上に、各回転体の一回転に含まれる前記所定角度の数に、所定角度回転する回転体をアニメーション表示させるための前記画像データの数を乗算して得られた値となる数の仮想点をほぼ等間隔毎に設定しておくとともに、各仮想点がそれぞれアニメーション表示用の複数の前記画像データの１つに対応するものとし、各仮想点を個々に示す仮想点の座標データを記憶する円周座標記憶手段を備え、
前記表示制御手段は、前記画像データを順次表示することで回転体をアニメーション表示する場合に、前記画像データの表示時における前記回転体の回転速度に応じた回転角度に対応する前記仮想点を求め、複数の前記画像データのうちの求められた仮想点に対応する前記画像データを表示することを特徴とする。
【００１８】
ここで、仮想円とは、回転体が歯車の場合に、歯車のピッチ円である。各回転体が同期して回転する場合、すなわち、噛み合って回転する場合に、仮想円は、各回転体の回転中心を中心とする円で、且つ、互いに同期して回転する回転体に対応する各円同士は互い接する半径を有する。なお、この際に互いに接する仮想円を一対の摩擦円板と見立て際に、二つの摩擦円板（仮想円）同士の速度比は、各摩擦円板（仮想円）に対応する回転体同士の速度比と等しいものとし、この場合の各摩擦円板の半径が仮想円の半径となる。
また、仮想円の円周上の各仮想点は、上述の所定角度内における複数の画像データが示す回転体の回転角度に対応しており、例えば、歯車の一歯分の所定角度が５分割されて、各回転角度毎の画像データが記憶されている場合に、仮想点も一歯分の角度間隔毎に５点ずつ配置され、一歯分ずつ、５つの仮想点がそれぞれ１対１で５つの画像データに対応し、各画像データは、円周一周分の仮想点に対して歯車の歯数分だけ繰り返し対応している。
また、各仮想点の座標データは、単に回転速度に応じて表示する画像データを選択するだけならば、必ずしもｘｙ座標のように、相対座標上の位置が特定できるものである必要はなく、各仮想点を特定できるとともに、仮想点に対応する画像データを特定できるものならば良く、例えば、座標データとして、円周上の基準となる仮想点から円周に沿って各仮想点に付された連番でも良い。
請求項２に記載の発明によれば、例えば、任意の回転速度に応じて順次画像データを表示する場合に、回転速度を仮想円の円周上の仮想点の数に対応付けたものとすることで、回転速度を変更しても容易に変更された回転速度に応じたアニメーション表示を行うことができる。特に、回転速度を単位時間当りのフレーム数に対応づけて表すようにすれば、より容易に回転速度を変更することができる。例えば、１０フレーム／秒でアニメーションが表示されるものとした場合で、かつ、回転体の回転速度が０．１回転／秒のような場合に、１００フレーム分表示した際に回転体が１回転することになり、１フレーム毎の回転体の回転数は、１／１００回となる。一方、回転体となる歯車の歯数を１２とし、回転体の所定角度の回転をアニメーション表示する画像データ数を５とした場合に、回転体の１回転分の回転を表示する画像データ数は、１２×５＝６０となり、１画像データあたり回転体の回転回数は、１／６０となる。ここで、１／１００と１／６０とを通分すると、６／６００と１０／６００となる。従って、回転体は、１フレーム毎の回転数が６／６００回となるとともに、１画像データ毎の回転数が１０／６００回となる。
すなわち、回転体は、１画像データ毎に、１番目の画像データの回転数が０（６００）／６００回、２番目の画像データの回転数が１０／６００回、３番目の画像データとなる回転数が２０／６００回、…となる。そして、画像データ数を５とした場合に、６番目の画像データは、再び１番目の画像データとなりこのときの回転数は６０／６００回となる。そして、画像データが５番となった後に、再び、１番の画像データとなることを繰り返しながら、１画像データに対して１０／６００回ずつ回転することになる。
【００１９】
このような場合に、１フレームで、基準の回転角度、すなわち０（６００）／６００となる画像データを表示する。次ぎに、例えば、２フレームでは、回転体の回転数が６／６００回となるので、この回転数に最も近い回転数が１０／６００回となる２番目の画像データを選択して表示する。次ぎに、３フレームでは、回転体の回転数が１２／６００となるので、再び、この回転数に最も近い回転数が１０／６００回となる２番目の画像データを表示する。次ぎに、４フレームでは、回転体の回転数が１８／６００となるので、この回転数に最も近い回転数が２０／６００となる３番目の画像データを表示する。このように、順次フレームが表示されるたびに表示する画像データを選択することで、任意に設定された回転速度に対応して回転体のアニメーション表示を行うことができる。
なお、分数を用いるものとしても、上述のような場合に、分子と分母を別々に取り扱い、かつ、基本的に分子を分母で除算した際の剰余を用いるようにすることで、小数点以下の数値や三角関数を取り扱うことなく、上述のように任意の回転速度の変更に容易に対応することができる。従って、記憶容量や演算処理能力が制限された携帯電話等の端末でも、容易に互いに同期する回転体の表示を行うことができる。
【００２０】
請求項３に記載の発明は、請求項２記載の画像表示装置において、
隣接して互いに同期して回転する回転体同士の間では、それぞれの回転体が所定角度分だけ回転する時間が等しくされ、かつ、互いに所定角度回転する際の位相が所定角度回転する時間の半分の時間だけずれるという条件を有する場合に、
前記表示制御手段は、隣接して互いに同期して回転する回転体にそれぞれ対応するとともに、互いに接する仮想円同士の接点に最も近い前記仮想点を互いに接する仮想円毎に求め、
一方の仮想円に対して求められた仮想点と一方の仮想円に対応する回転体の回転角度に対応する前記位相との関係に基づくとともに、前記条件に基づいて、
他方の仮想円に対して求められた仮想点と他方の仮想円に対応する回転体の位相との関係を求めることにより前記条件に対応して互いに同期して回転する回転体を表示することを特徴とする。
【００２１】
請求項３に記載の発明によれば、同期して回転する回転体として歯車の歯が互いに噛み合った状態で表示することができる。
そして、一方の仮想円に対して求められた仮想点と一方の仮想円に対応する回転体の回転角度に対応する前記位相との関係に基づくとともに、前記条件に基づいて、他方の仮想円に対して求められた仮想点と他方の仮想円に対応する回転体の位相との関係を求めることにより前記条件に対応して互いに同期して回転する回転体を表示する場合には、例えば、以下のようにする。
【００２２】
互いに噛み合う歯車のそれぞれの仮想円の接点に最も近い仮想点は、各仮想点がアニメーションの画像データに対応することから、回転体の回転表示における回転角度の解像度上それより小さい角度での回転を表示することができない。従って、回転角度の解像度上最も接点に近似する点となる。また、各仮想点に円周方向に沿って付された連番を、上述の所定角度の分割数（画像データ数）で除算した場合の剰余は、所定角度の回転を１つの周期とし、１回の歯車の回転に歯数分の周期が存在するとした場合に、１回の回転における各周期内の位相を表すことになる。そして、１周期内の各位相毎に対応する画像データが存在することになる。
【００２３】
ここで、一方の仮想円の接点に最も近い仮想点の位相を求める。上述のように仮想点に円周方向に沿って付された連番を所定角度をアニメーション表示する画像データの数で除算した際の剰余が接点に最も近い仮想点の位相となる。また、同様に他方の仮想円の接点に最も近い仮想点の位相を求める。
また、歯車同士の噛み合わせを行う際の一方の仮想円に対応する歯車は、既に回転角度が決定しているものとし、一方の仮想円に対応する一方の歯車の決定されている回転角度の位相を求める。この位相は、一方の歯車を表示する際の画像データに対応することになる。
【００２４】
そして、一方の仮想円の接点に最も近い仮想点の位相と、一方の仮想円に対応する一方の歯車の回転角度に対応する位相との差（ずれ）を求める。そして、他方の仮想円に対応する他方の歯車の回転角度（位相）を、一方の歯車の既に決められた歯車の回転角度（位相）に基づいて決める。この場合には、一方の仮想円の接点に最も近い仮想点は、対応する歯車の回転角度の解像度上最も接点に近似し、他方の仮想円の接点に最も近い仮想点は、対応する歯車の回転角度の解像度上最も接点に近似することから、これら仮想点同士も歯車の回転角度の解像度上、最も近似する点となり、ほぼ同一の点と見なすことができる。
【００２５】
ここで、一方の仮想円の接点に最も近い仮想点の位相と、一方の仮想円に対応する一方の歯車の回転角度に対応する位相との差（ずれ量）分だけ、他方の仮想円の接点に最も近い仮想点の位相をずらした位相を、他方の歯車の回転角度に対応する位相とすると、互いに接する二つの仮想円の互いに略一致する二つの仮想点から同じずれ量だけ一方の歯車の位相と他方の歯車の位相とがずれることから、この場合に、一方の歯車の歯と他方の歯車の歯とが重なったり、一方の歯車の谷と他方の歯車の谷とが重なったりすることになる。すなわち、二つの歯車がほぼ同位相で回転することになり、これでは、噛み合った状態の表示とならない。
【００２６】
そこで、一方の歯車の位相に対して他方の歯車の位相を決める際に、他方の仮想円の接点に最も近い仮想点の位相を上記ずれ量だけずらすのではなく、ずれ量の順方向もしくは逆方向に半周期分の位相だけずらすようにする。例えば、画像データの数が５の場合に、位相は五段階となるので、半周期分の位相のずれ量は、２．５となるが、小数点以下を切り下げもしくは切り上げるものとすると、半周期分の位相のずれ量は、２もしくは３となる。ここで、半周期分の位相のずれ量を２とし、一方の仮想円の接点に最も近い仮想点の位相と、一方の仮想円に対応する一方の歯車の回転角度に対応する位相とのずれ量を３とすれば、他方の仮想円の接点に最も近い仮想点の位相を１もしくは５ずらした位相を他方の回転体の位相とすることにより、一方の歯車の谷に他方の歯車の歯が噛み、一方の歯車の歯が他方の歯車の谷に噛むように、互いに噛み合った状態とすることができる。なお、画像データ数が５の場合の位相は、例えば、０，１，２，３，４の５段階であり、位相をずらした場合の位相の値が５以上となった場合は、５（画像データ数）で除算した余りが位相を示す値となり、ずらした場合の位相の値がマイナスの場合は、５（画像データ数）にマイナスの値を加算した値（この値が５以上になる場合は、さらに、５（画像データ数）で除算した値）が位相を示す値となる。
【００２７】
すなわち、互いに同期して回転する回転体として互いに噛み合った歯車をアニメーション表示する場合には、一方の歯車の歯と歯の間の谷に、他方の歯車の歯が噛み合った状態に表示する必要があり、この場合にも、一般的には、三角関数等を用いた演算処理が必要となる。
しかし、上述のようにピッチ円である仮想円周上に仮想点を想定することで、三角関数等を用いることなく、歯車の歯の噛み合いを表現することができる。なお、この際の仮想点の座標データは、仮想円の接点に最も近い仮想点を求めるために、ｘｙ座標等の座標上の位置を示す値が必要となるが、これらの値を回転体画像表示プログラムの処理として求める必要はなく、予め求められた座標データをデータとして使用できるようになっていれば良い。また、座標データとして小数点以下の数値を必要とするような場合には、切り捨て、切り上げ等することにより、整数としておけば良い。また、演算処理結果として小数点の数値が得られるような場合にも小数点以下の部分を無視するようにすれば良い。
従って、座標データ等の値は、基本的に、実際のデータが整数でない限りは、近似値となる。
【００２８】
請求項４に記載の発明は、請求項１〜３のいずれか１項に記載の回転体画像表示装置において、
前記記憶手段は、前記画像データを配色表と配色表式画像データとを有するインデックス画像として記憶し、
前記記憶手段に記憶されたインデックス画像の配色表上の色のデータを書き換えることにより、回転体の画像の色を変更する色変更手段を備えたことを特徴とする。
【００２９】
ここで、インデックス画像とは、例えば、ＧＩＦやＰＮＧである。
請求項４に記載の発明によれば、インデックス画像を展開して画像として表示した状態で、色を変更する領域を指定して、その領域の色を変更するような、インデックス画像用のグラフィックソフトを用いることなく、歯車の画像データの色を変更することができる。すなわち、インデックス画像を例えばＶＲＡＭ等の表示用メモリに展開して、表示できる状態としなくとも、展開されていないバイナリー状態の画像データの配色表、すなわち、カラーパレットにおいて、例えば、画像の回転体の領域の配色に使われているインデックスのＲＧＢ値を直接書き換えることにより、回転体の色を書き換えることができる。
【００３０】
なお、インデックス画像のバイナリーデータ上の配色表（ｇｌｏｂａｌとｌｏｃａｌがある場合に、基本的にｇｌｏｂａｌの配色表）の位置が決まっているとともに、配色表における各色のデータ（例えば、ＲＧＢ値）はインデックス順に配置されているので、バイナリーデータの状態のインデックス画像でも、歯車に対応するインデックスが既知ならば容易に歯車に対応するインデックスのＲＧＢ値を変更することで、回転体の色を変更することができる。従って、回転体の色を規定するインデックスは、予め決まっている必要がある。また、回転体を、例えば、輪郭線（縁）と、その内部等のように複数の領域にわけ、領域毎に異なるインデックスを決めておくものとすれば、回転体を複数の領域に分けて複数の色で表示する場合も領域毎の色の変更が可能である。
【００３１】
また、インデックス画像において、配色表は圧縮されておらず、配色表式画像データの部分が圧縮されている。従って、インデックス画像を展開しなくとも配色表の書き換えを容易に行うことができる。
以上のことから、インデックス画像用のアプリケーションを使用しなくとも、回転体の色を変更できるので、極めてデータ容量の少ないプログラムで回転体の色の変更を可能とすることができる。また、予め、複数の色違いの回転体の画像データを記憶しておく必要がなく、かつ、変更可能な回転体の色数を極めて多くすることができる。
すなわち、回転体の色を変更可能としても、回転体画像表示プログラムのデータ容量を大きくすることなく、かつ、必要な画像データの容量も最低限のものとすることができるので、記憶容量や演算処理処理能力に制限がある携帯電話等の携帯端末の好適に用いることができる。また、携帯電話の通信回線を利用してインターネット上から回転体画像表示プログラム及びそのデータをダウンロードする際や、回転体画像表示プログラムで作成されたファイルをダウンロード及びアップロードする際の通信にかかる課金を減少させることができる。
【００３２】
請求項５に記載の発明は、表示装置を備えるコンピュータに、それぞれ互いに同期して回転可能で、それぞれ固有の所定角度を回転する毎に、回転前の形状と回転後の形状とが一致する回転対称の形状を有し、かつ、互いに同期して回転する場合にそれぞれ固有の所定角度を回転する時間が略一致する複数の歯車等の回転体をアニメーション表示させるプログラムであって、
前記所定角度が互いに異なる複数の回転体のそれぞれのアニメーション用の画像データとして、各回転体のそれぞれ固有の所定角度を互いにほぼ等間隔に同じ分割数で分割した各回転角度位置での前記回転体の画像を示し、かつ、所定角度を各回転体で同じ分割数で分割することにより各回転体で同数にされた画像データを順次表示することで回転体をアニメーション表示する機能と、
前記回転体の任意の回転速度に応じて前記画像データを順次切り替えて表示していく場合に、同期して回転した状態に表示される回転体同士の前記画像データを切り替えるタイミングをほぼ同期させる機能とをコンピュータに実現させることを特徴とする。
【００３３】
ここで、コンピュータとは、回転体画像表示プログラムを実行可能な装置であるが、例えば、記憶容量や演算処理能力に制限がある携帯電話等の携帯端末である。
請求項５記載の発明によれば、請求項１に記載の発明と同様の作用効果を得ることができる。
【００３４】
請求項６に記載の発明は、請求項５に記載の回転体画像表示プログラムにおいて、
隣接して互いに同期して回転する各回転体にそれぞれ対応するとともに、互いに接触して同期して回転する仮想円の円周上に、各回転体の一回転に含まれる前記所定角度の数に、所定角度回転する回転体をアニメーション表示させるための前記画像データの数を乗算して得られた値となる数の仮想点をほぼ等間隔毎に設定しておくとともに、各仮想点がそれぞれアニメーション表示用の複数の前記画像データの１つに対応するものとし、
前記画像データを順次表示することで回転体をアニメーション表示する場合に、前記画像データの表示時における前記回転体の回転速度に応じた回転角度に対応する前記仮想点を求め、複数の前記画像データのうちの求められた仮想点に対応する前記画像データを表示する機能を前記コンピュータに実現させることを特徴とする。
請求項６記載の発明によれば、請求項２に記載の発明と同様の作用効果を得ることができる。
【００３５】
請求項７に記載の発明は、請求項６に記載の回転体画像表示プログラムにおいて、
隣接して互いに同期して回転する回転体同士の間では、それぞれの回転体が所定角度分だけ回転する時間が等しくされ、かつ、互いに所定角度回転する際の位相が所定角度回転する時間の半分の時間だけずれるという条件を有する場合に、
隣接して互いに同期して回転する回転体にそれぞれ対応するとともに互いに接する仮想円同士の接点に最も近い前記仮想点を互いに接する仮想円毎に求め、
一方の仮想円に対して求められた仮想点と一方の仮想円に対応する回転体の回転角度に対応する前記位相との関係に基づくとともに、前記条件に基づいて、
他方の仮想円に対して求められた仮想点と他方の仮想円に対応する回転体の位相との関係を求めることにより前記条件に対応して互いに同期する回転体を表示する機能を前記コンピュータに実現させることを特徴とする。
請求項７記載の発明によれば、請求項３に記載の発明と同様の作用効果を得ることができる。
【００３６】
請求項８に記載の発明は、請求項５〜７のいずれか１項に記載の回転体画像表示プログラムにおいて、
前記画像データを配色表と配色表式画像データとを有するインデックス画像として前記コンピュータの記憶手段に記憶し、
前記記憶手段に記憶されたインデックス画像の配色表上の色のデータを書き換えることにより、回転体の画像の色を変更する機能を前記コンピュータに実現させることを特徴とする。
請求項８記載の発明によれば、請求項４に記載の発明と同様の作用効果を得ることができる。
【発明の効果】
【００３７】
本発明によれば、携帯電話等の記憶容量や演算処理能力が制限された携帯端末において、使用者が歯車を任意に配置して組み合わせて、歯車列を作成し、これら歯車を任意の回転速度で回転した状態に表示させるコンテンツを浮動小数点演算や三角関数演算等を用いることなく提供することができる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の一実施形態としての回転体画像表示装置及び回転体画像表示プログラムを説明する。
この例における回転体画像表示装置は、携帯電話１等の通信機能を有する携帯端末であり、インターネットに接続可能となっている。そして、携帯電話１は、アプリケーションとしてウェブページを閲覧する周知のブラウザを搭載したものである。また、携帯電話１は、例えば、Ｊａｖａアプレットを実行可能となっており、この実施形態の回転体画像表示プログラムは、Ｊａｖａアプレット（マルチプラットホームで実行可能で比較的記憶容量の少ないプログラム）として、インターネットを介して携帯電話１にダウンロードされて、携帯電話１上で実行される。また、携帯電話１上で実行されるＪａｖａアプレットは、機能制限がある組み込み用Ｊａｖａのものであり、浮動小数点演算や三角関数の関数演算等を直接的に用いることができないものとなっている。
【００３９】
そして、携帯電話１は、図１のブロック図に示すように、画像表示を行う表示部２と、各種プログラムを実行する計算処理部３と、使用者が携帯電話１を操作したりデータを入力したりする場合に用いられる各種キーとポインタの移動等に用いられる十字キー等とを備えたキー入力部４と、インターネットへの接続等に用いられるネットワーク通信部５と、不揮発性のメモリからなる記憶領域６（磁気的、光学的記憶媒体でも良い）とを備えるものである。
【００４０】
前記表示部２は、例えば、カラー液晶ディスプレイと、液晶ディスプレイの駆動回路と、ＶＲＡＭを備える表示制御回路等とを備えたものであり、計算処理部３の制御の下にカラー液晶ディスプレイに画像の表示を行うものである。
前記計算処理部３は、プログラムとして、前記ブラウザやＪａｖａアプレット等を実行させることが可能となっている。そして、計算処理部３は、例えば、組み込み機器用ＭＰＵのチップとして、ＣＰＵ３１及び実行メモリ３２（ＤＲＡＭ）等を備えたものである。
そして、計算処理部３は、本発明の回転体画像表示プログラムを実行することにより、本発明の表示制御手段及び色変更手段として機能するものである。
【００４１】
キー入力部４は、例えば、携帯電話１としてのキー配列を有するもので、ひらがな、カタカナ、アルファベット等を入力可能とされるとともに、変換機能により漢字、記号等も入力可能なテンキー及び記号キーと、メニュー選択、ポインタの移動、ポインティングデバイス等として使用可能な十字キー等とを備え、その他に、通話、インターネット接続等の専用キーを備える。
ネットワーク通信部５は、この例では、携帯電話１用の無線通信装置となり、基地局との間での無線でのデータ通信を可能とし、携帯電話１用の通信回線を使用してインターネットに接続可能となっている。
また、記憶領域６は、例えば、不揮発性のフラッシュメモリやＥＥＰＲＯＭ等から構成されるものであり、インターネットを介してサーバからダウンロードされたＪａｖａアプレット等を記憶するとともに、この例では、後述するように、Ｊａｖａアプレットとしての回転体画像表示プログラムで用いられる画像データや表示用に生成された歯車の表示に係わるデータ等が記憶される。従って、記憶領域６は、本発明の記憶手段及び円周座標記憶手段として機能するものである。
【００４２】
ここで、Ｊａｖａアプレットとして、計算処理部３で実行される回転体画像表示プログラムの概要について説明する。
回転体画像表示プログラムでは、基本的に、図２に示すように回転体として複数の歯車７（平歯車）が回転するアニメーションを表示するとともに、複数の歯車７が互いに噛み合っている場合に、複数の歯車７が噛み合った状態で同期して回転するアニメーションを表示するものであるが、各歯車７の歯数及び径、各歯車７の配置、各歯車７が噛み合うか否か、駆動歯車７（原車）と従動歯車７（従車）の決定、各歯車７の位置等を携帯端末の使用者が設定もしくは選択可能となっている。また、歯車７の他に時計の針９（図５に図示）を任意の歯車と一体に回転するように表示可能となっており、原車となる歯車の回転速度、互いに噛み合う歯車の変速比等を調整することにより、図５（Ｌ）に示すように時計の時針９ａ、分針９ｂ、秒針９ｃの動きを再現すること、すなわち、歯車７が露出したスケルトン時計をデザインすることが可能となっている。なお、回転体画像表示プログラムにより、時計を再現する必要はなく、複数の歯車７を組み合わせたり、歯車７とともに回転する針９（図５に図示）を表示させたりすることにより、歯車７のアニメーションによるアート的な表現が可能となっている。
【００４３】
なお、歯車は、所定角度を回転する毎に、回転前の形状と回転後の形状とが一致する回転対称の形状を有するものである。また、歯車の場合、例えば、歯数が１２の歯車の場合３０度、６０度、１２０度、１８０度等のように、回転前の形状と回転後の形状とが一致する所定角度が複数含まれることになるが、ここでは、所定角度は、３６０度未満で、かつ、その回転体で最少の回転対称となる角度であり、上述の歯数が１２の歯車の場合には、３０度が所定角度となる。すなわち、所定角度は、歯車７の一歯分の回転角度である。ここで、歯車７の外周部の回転を固定された１つの角度位置で見た場合に、歯車７の歯となる山とその間の谷の部分とが交互に繰り返すことになり、前記所定角度を１つの周期として見ることができる。すなわち、歯車が一回転する間に、上述の山と谷とを繰り返す波状の周期が歯数分だけ繰り返すことになる。従って、以下に歯車の所定角度の回転を周期と表現する場合がある。
【００４４】
また、噛み合った状態で同期する歯車７同士は、それぞれ回転方向が逆になるとともに、互いに歯が噛み合った部分を見た場合に、一方の歯車７の谷の部分に他方の歯車７の山の部分が噛み合うようになっていることから、互いに噛み合う歯車７の一回転における周期数（歯数）が同じでも違っていても、互いに噛み合って同期して回転する各歯車７が一周期（最少所定角度）分回転するのにかかる時間は等しくなる。各歯車の回転角度は、半周期分ずれたものとなっている。すなわち、噛み合った歯車同士は、互いに同期して逆回転するとともに、位相が半周期ずれたものとなっている。
【００４５】
以下に回転体画像表示装置としての携帯端末における回転体画像表示プログラムとしてのＪａｖａアプレットの処理を説明する。
まず、携帯電話１は、例えば、インターネット接続環境にあるものとし、インターネットを介して所定のウェブページにアクセスすることにより、ハイパーリンク等によりＪａｖａアプレットとしての回転体画像表示プログラムが自動的にダウンロードされ、携帯電話１の記憶領域６に記憶されることになる。この際にＪａｖａアプレットのデータとして、回転画像表示プログラムのデータと以下の回転体画像表示プログラムで使用されるデータがダウンロードされることになる。
【００４６】
記憶領域５に記憶されるデータとしては、回転体の画像データがあり、記憶領域５には、画像データ記憶領域６１が設けられている。
回転体の画像データは、この例において、配色表（カラーテーブル、カラーパレット）を有するパレット部６２１と、配色表に基づくイメージデータ（配色表式画像データ）を有するピクセルデータ部６２２とを備えるインデックス画像６２として記憶される。
なお、インデックス画像６２は、この例では、ＧＩＦが用いられている。また、画像データにおいては、カラーの歯車７の形状が記憶されているが、ここで歯車７は、その外周縁となる輪郭線の領域と、輪郭線の内部の領域と、輪郭線の外部で例えば、歯車を立体的に見せるための影や側面を示す領域との三つの領域に分けられ、各領域毎に色が設定されている。すなわち、歯車の上述の各領域毎に、パレット部６２１の配色表のインデックスが指定されている。
【００４７】
インデックス画像６２のパレット部６２１では、例えば、最大２５６のインデックスを有し、各インデックス毎にＲＧＢ値（例えば、ＲＧＢ各８ｂｉｔ）を指定可能となっており、いわゆるフルカラーから最大２５６の色を選択可能である。なお、インデックス数は、２５６以下の何段階かに設定可能となっており、例えば、インデックスを４つとして４色だけ選択可能とすることもできる。
そして、パレット部６２１においては、例えば、使用可能な色が４色だとすると、インデックス０〜インデックス３にそれぞれ、Ｒ，Ｇ，Ｂの各光度（８ｂｉｔならば０〜２５５）が指定される。
【００４８】
また、ピクセルデータ部６２２では、例えば、歯車の輪郭線の領域に含まれるピクセル（画素）には、全てインデックス０が指定され、輪郭線で囲まれた歯車内部の領域のピクセルには、インデックス１が指定され、輪郭線の外部（歯車の外部の影等）の領域のピクセルには、インデックス２が指定される。そして、歯車の輪郭線の領域の色、歯車内部の領域の色、歯車外部の領域の色は、指定されたインデックスの各Ｒ，Ｇ，Ｂの値により決定される。なお、色として透明を指定することも可能となっており、例えば、歯車の輪郭線内部の領域に対して透明を指定した場合には、歯車が前後に重なっている場合に、歯車の輪郭線内部に後方の歯車が表示される。なお、後方に歯車がなければ、透明となった部分には、背景色が表示される。
ここで、インデックス画像６２をダウンロードした時点では、パレット部６２１の各インデックスには、デフォルトで設定されたＲＧＢ値が格納されている。
【００４９】
また、この例においては、表示可能な歯車７として、例えば、歯数が６，１２，１８，２４，３０の５種類の歯車７が設定されている。なお、各歯車７の歯の形状はほぼ同様のものとなっている。ここで、歯車の歯数の基底となる値ｃｏｇは、正の整数とされ、例えば、この例では、６とされている。そして、歯車７の歯数の種類は、ｃｏｇを（正の）整数倍したものであり、基底を６とすると、ｃｏｇ0が６、ｃｏｇ1が１２、ｃｏｇ2が１８、ｃｏｇ3が２４、ｃｏｇ4が３０となる。これらｃｏｇ0〜ｃｏｇ4が歯車７の歯数の集合ＣＯＧの要素となる。これら歯車７を噛み合わせた場合の変速比は、（整数：整数）となる。
なお、ここでｃｏｇmと表した場合に、ｍは、歯数の異なる歯車７の種類を歯数の少ない順に表す連番、すなわち、ｍ＝０，１，２，３，…となり、上述のように基底となる歯数を整数倍した際の値から１を減算した値に対応する。
【００５０】
また、図２に示すように歯車７には、ピッチ円８（仮想円）が設定されており、互いに噛み合う二つの歯車７間の距離は、これら歯車７に対応する二つのピッチ円８の半径ｒａｄの和となり、互いに噛み合う二つの歯車７のピッチ円８同士は接した状態となっている。また、歯車７同士の変速比と、互いに接触するピッチ円８を摩擦円板とした場合の変速比は一致するようになっている。
なお、歯車７（回転体）の半径ｒａｄと記載した場合には、歯車７に対応するピッチ円８の半径ｒａｄを指すものとする。
そして、上述の歯数に基づく歯車７の種類において、各歯車７の半径ｒａｄm（ｍは上述のように歯数の異なる歯車の種類を表す）は、歯数の種類が歯数の正の整数倍となっていることから、基底の歯数ｃｏｇ0の歯車の半径ｒａｄ0を例えば１とした場合に、ｒａｄ1が２、ｒａｄ2が３、ｒａｄ3が４、ｒａｄ4が５となる。
これらｒａｄ0〜ｒａｄ4（ｒａｄm）が歯車の半径の種類の集合ＲＡＤの要素となる。
【００５１】
従って、インデックス画像としては、歯数が異なる、すなわち、上述の所定角度（周期）が異なる複数種類（５種類）用のインデックス画像６２（画像データ）がダウンロードされて記憶領域６に記憶されることになる。
また、歯車７を回転させるアニメーションを表示するためには、回転角度の異なる複数のインデックス画像６２が必要となるが、この例では、歯数すなわち所定角度（周期）が異なる各歯車７でアニメーションを表現するのに同数のインデックス画像６２が記憶領域６に記憶される。なお、歯車７の色の変更等を行った場合に色違いのインデックス画像５２が生じることになるが、各歯車７（歯数の異なる歯車７、色の異なる歯車７）において、アニメーションにはみな同じ数のインデックス画像６２が用いられる。
【００５２】
そして、アニメーションのインデックス画像６２としては、上述の所定角度（周期）を例えば、円周に沿って等間隔に各種類の歯車７で同じ分割数で分割した回転角度（分割角度）毎のインデックス画像６２が用いられる。従って、各種類の歯車７毎の画像データ数は、歯数の異なる各歯車７で同じ数とされる。また、一歯分の所定角度の回転を１周期とするので、各歯車で、等間隔に同じ分割数で分割された回転角度毎のインデックス画像６２は、１周期を等間隔に分割した場合の各位相位置を示すともに、分割された各回転角度毎のインデックス画像６２に連番を付した場合に、各歯数の異なる歯車７において、同じ番号のインデックス画像６２は、歯数が異なっていても同じ位相位置を示すことになる。そして、画像データ数は、１周期内の表示可能な位相位置の数（ｐｈａｓｅ、歯数の異なる各歯車で共通の値）を示す。
【００５３】
そして、図３に示すように、所定角度の画像データ数を、例えば、５とした場合に、歯数が１２の歯車７において、１つの歯７（例えば、この歯７を基準とする）を真上に向けた状態を０度とした場合に、所定角度が３０度となるので、等分に分割した際の分割角度は６度となり、インデックス画像６２としては、上述の０度の状態の基準となる画像データｉｍａｇｅoと、それから、６度毎回転した画像データ、すなわち、６度回転した画像データｉｍａｇｅ1、１２度回転した画像データｉｍａｇｅ2、１８度回転した画像データｉｍａｇｅ3、２４度回転した画像データｉｍａｇｅ4が予め作成されて記憶されることになる。なお、さらに６度回転した画像データ、すなわち、３０度回転した画像データは、回転対称となる角度で回転しているので、最初の０度の画像データｉｍａｇｅ0と同じ画像データとなる。また、各画像データ（インデックス画像６２）には、上述のように角度の大きさ順に０〜４等のように設定された分割数に対応する自然数（０を含む）の連番が割り付けられる。
なお、この例では、記憶された各画像データは、ｉｍａｇｅcollarm,nのように表され、この場合に、cｏｌｌａｒは、上述のインデックス画像６２の配色表に設定された色を表し、ｍは歯数の異なる歯車の種類（歯数）を表し、ｎは上述の画像データ毎に付けられた連番を表す。
【００５４】
そして、回転対称である歯車７は、歯数が１２の場合に、３０度回転する度に回転前の形状と回転後の形状が一致することになるで、ｉｍａｇｅ0（連番のみ記載）からｉｍａｇｅ4の画像データを順番に表示した後に、再びｉｍａｇｅ0からｉｍａｇｅ4の画像データを順番に表示することを繰り返すことにより、歯車７（回転体）が回転しつづけた状態をアニメーション表示することが可能となる。
【００５５】
そして、上述のように各回転角度毎の画像データｉｍａｇｅ0〜ｉｍａｇｅ4は、山と谷が繰り返す１周期が等分割された地点のそれぞれの位相を示すものと考えることができる。そして、歯数の異なる各歯車７におてい、同じ表示タイミングで、各画像データｉｍａｇｅ0〜ｉｍａｇｅ4を順番に表示部２において描画して表示画面に表示することにより、同期した状態に回転させることができる。なお、互いに噛み合う歯車同士は、回転方向が逆になるとともに、歯が噛み合うことにより、一方の谷の部分に他方の山の部分が対応することから噛み合った部分では、回転の位相が半周期ずれたものとなる。
【００５６】
以上のように記憶領域６は、歯数の異なる複数の歯車７の画像データ（インデックス画像６２）がそれぞれ記憶されるとともに、回転体として歯車７のそれぞれ固有の所定角度（周期）を互いに等間隔に同じ分割数で分割した回転角度位置（各位相）での各回転体の画像を示し、各回転体でそれぞれ同数にされた画像データを記憶する記憶手段となる。
また、記憶領域６には、上述の各歯数の歯車７毎の円周座標データ６３が記憶されている。この円周座標データ６３は、図４に示すように、各歯数の歯車７毎に、そのピッチ円８の円周上に各歯車７の上記分割角度毎に仮想点Ｋを設定し、各仮想点Ｋの位置を示ものである。なお、各分割角度毎に設定された仮想点Ｋの数ｒｅｓmは、歯数ｃｏｇmに画像データ数（ｐｈａｓｅ（表示可能な位相の数））を乗算したものとなる。なお、ここで、ｒｅｓmは、歯数の異なる歯車７毎の仮想点Ｋの総数を示す。また、図４は、歯数が１２の歯車７のピッチ円８とピッチ円８の円周上の仮想点Ｋを示す。また、図４において、仮想点Ｋのうちの黒点は、歯車７の歯の中心点を示し、黒点間が所定角度、すなわち、１周期となる。
【００５７】
そして、仮想点Ｋは、歯数が１２の歯車７の場合に、ｐｈａｓｅを例えば５とすると、上記所定角度が３０度で分割角度が６度となるので、円周上に６度毎に仮想点ｋが設定されることになる。従って、各仮想点Ｋは、その角度位置が時計回りに０度、６度、１２度、１８度、２４度、…、とされ、最後の仮想点Ｋが３５４度となる。
そして、上述の画像データ数（ｐｈａｓｅ）を５とした場合に、歯数が６の場合には、１２度毎に３０個の仮想点Ｋが設定され、歯数が１８の場合に、４度毎に９０個の仮想点Ｋが設定され、歯数が２４の場合に、３度毎に１２０個の仮想点Ｋが設定され、歯数が３０の場合に２．４度毎に１５０個の仮想点Ｋが設定されることになる。そして、各仮想点Ｋには、例えば、０〜ｒｅｓm-1の連番が設定される。
また、各仮想点Ｋは、前記画像データｉｍａｇｅ0〜ｉｍａｇｅ4にも対応するものとなっており、例えば、各仮想点Ｋに連番を割りふった場合に、上述の各歯車７で同じとされた画像データ数（ｐｈａｓｅ）である５で割った場合の剰余が各画像データに割りふられた連番ｎとなる。例えば、０〜４までの仮想点Ｋは、そのまま順に画像データｉｍａｇｅ0〜ｉｍａｇｅ4に対応し、５〜９までの仮想点Ｋが順に画像データｉｍａｇｅ0〜ｉｍａｇｅ4に対応し、以下同様に５ずつ順に各仮想点Ｋと、画像データｉｍａｇｅ0〜ｉｍａｇｅ5とが対応する。従って、仮想点Ｋが決まると画像データｉｍａｇｅ0〜ｉｍａｇｅ4が決まるようになっている。また、各画像データｉｍａｇｅ0〜ｉｍａｇｅ4は、上述のように１周期内の位相に対応している。また、各歯車７の種類毎の仮想点Ｋの総数ｒｅｓmは、上述のように各仮想点Ｋが分割角度毎の画像データｉｍａｇｅ0〜ｉｍａｇｅ4に対応するので、アニメーションの時系列上の解像度に対応する。各歯車７は、ｒｅｓmより細かいアニメーション表示はできない。すなわち、３８０度をｒｅｓmで除算した分割角度より細かい角度位置の画像データは存在しないので、ｒｅｓmの値が回転体のアニメーションの解像度を示すものとなる。
【００５８】
各仮想点Ｋの座標位置は、この例において、ピッチ円８の中心のｘｙ座標を０，０として、半径ｒａｄmの円周上の座標を示すものとされている。
ここで、歯数ｍの仮想点Ｋの座標の集合ＣＰＯＳm（センターポジション）は、
｛（ｘm,0、ｙm,0）、（ｘm,1、ｙm,1）、…、（ｘm,resm-1、ｙm,resm-1）｝
で表される。なお、各ｘｙ座標値は、小数点以下を含む数値を使わずに整数を使うものとする。従って、各ｘｙ座標値は、座標の整数近似値となる。なお、ｘm及びｙmは、上述のように歯数の異なる歯車７毎のｘｙ座標値を示し、０，１，２，…，ｒｅｓm-1をｉとし、歯車の仮想点Ｋに付された連番を示す。また、簡易的に各座標を仮想点Ｋに付された連番に対応づけて、
ＣＰＯＳm＝｛Ｘm,0、Ｘm,1、…、Ｘm,resm-1｝
と表しても良い。
【００５９】
ここで、上記ｘｙ座標を上述のようにピッチ円８の中心のｘｙ座標を０，０として、半径ｒａｄmの円周上の座標を示すものとし、（ｘm,0、ｙm,0）＝（０、ｒａｄm（半径））を開始点として時計回りに回転するものとし、ｉ＝０，１，２，…，ｒｅｓm-1とすると以下の関係が成立し、ＣＰＯＳmを得るのに必要な情報を削減することができる。
すなわち、（ｘm,0、ｙm,0）＝（０、ｒａｄm（半径））を開始点とするとともに、等間隔で仮想点Ｋが円周上に並んでいる場合に、各仮想点Ｋの配置は、Ｙ軸に対して線対称となるので、
（ｘm,i、ｙm,i）＝（−ｘm,resm-1-i、ｙm,resm-1-i）
という関係が成立する。
また、仮想点Ｋの総数ｒｅｓmを２で除算した場合の剰余が０の場合に、各仮想点Ｋの配置は、Ｘ軸に対しても線対称となり、
（ｘm,i、ｙm,i）＝（ｘm,(resm-1)/2-i、−ｙm,(resm-1)/2-i）
という関係が成立する。
【００６０】
また、仮想点Ｋの総数ｒｅｓmを４で除算した場合の剰余が０の場合に、各仮想点Ｋの配置は、ｘｙ座標の原点を通る４５度及び−４５度の線分に対しても線対称となり
（ｘm,i、ｙm,i）＝（ｘm,(resm-1)/4-i、ｙm,(resm-1)/4-i）
という関係が成立する。
そして、各仮想点の座標データは、表示画面の表示領域に対応する座標系のものであるが、表示画面から一部がはみ出した歯車７も表示可能となっており、座標系は表示領域よりも広いものとなっている。また、歯車７の画像データを実際に座標系に配置した場合に、歯車７の位置は、歯車７の回転中心（ピッチ円８の中心）で表され、各仮想点Ｋの座標系上の座標は、記憶領域６に記憶されたピッチ円８の中心のｘｙ座標を０，０とした仮想点Ｋのｘｙ座標値に、座標系上に配置された歯車７の回転中心のｘｙ座標値を加算したものとなる。
以上のことから、隣接して互いに同期して回転する各回転体（歯車７）にそれぞれ対応するとともに、互いに接触して同期して回転する仮想円（ピッチ円８）の円周上に、各回転体（歯車７）の一回転に含まれる前記所定角度の数（歯数）に、所定角度回転する回転体（歯車７）をアニメーション表示させるための画像データの数（ｐｈａｓｅ）を乗算して得られた値となる数の仮想点Ｋをほぼ等間隔毎に設定しておき、各仮想点Ｋがそれぞれアニメーション表示用の複数の画像データの１つに対応するものとした場合に、記憶領域６は、各仮想点Ｋを個々に示す仮想点Ｋの座標データを記憶する円周座標記憶手段として機能する。
【００６１】
この例において、回転速度は、分数で設定されるようになっている。例えば、回転速度の分子と分母とを使用者が入力するようになっており、例えば、分子１、分母６００等のように入力する。そして、この例においては、１００msec、すなわち、１／１０秒毎に、分子の値分、分子が増加するようにカウントアップされる。この際に回転体である歯車は、例えば、１／６００回転するようになる。なお、この例でアニメーションの表示は、１秒間に１０フレーム表示され、１００msec毎に１フレーム表示される。
歯数が６の歯車７は、上述の周期で考えた場合に一周するのに６周期必要となり、１周期に５個の画像データがあるので、歯車７の一周が３０個（上述の設定された仮想点Ｋの総数ｒｅｓm）の画像データで現されることになる。すなわち、歯車７の１回転（一周の回転）が上述の設定された仮想点Ｋの数である３０に分割された状態となり、一周の１／３０ずつの画像でアニメーションが行われることになる。上述の分数で示される回転速度で回転するものとした場合に、ピッチ円８の円周上に設定された仮想点Ｋの数を分母とし、分子を１とする分数と、回転速度となる分数とで、分母を統一して通分する。すなわち、分母の公倍数を求める。ここでは、分母の公倍数は、６００となる。
従って、上述の解像度となる数値１／３０（ｒｅｓm）は、２０／６００となる。そして、上述した各仮想点Ｋには、上述の仮想点Ｋに割りふられた連番にそれぞれ、回転速度の分母と、仮想点の数との公倍数をとった場合の仮想点Ｋの数に乗算した値ｆを乗算した数値を割りふる。
従って、仮想点ＫをＫ0、Ｋ1、Ｋ2、…、Ｋresm-1とした場合に、仮想点Ｋ0に０（６００）、仮想点Ｋ1に２０、仮想点Ｋ2に４０、…、仮想点Ｋresm-1に５８０が割りふられる。
なお、通分する際に、分母となるｒｅｓmに乗算された値（２０）がこの例では、後述するｆとなる。また、回転速度の分母と解像度の分母との公倍数は、後述するｂとなり、回転速度の通分後の分子は、後述する速度（フレーム更新時間毎の周速度）を示すｓとなる。
【００６２】
そして、上記設定された仮想点Ｋ0に対応する画像データｉｍａｇｅ0から１／６００の回転速度でアニメーションをする場合には、分子が０から１００msec毎に１増えることになる。ここで、１００msec後は、回転速度を現す分数の分子が０（６００）から１となり、２００msec後は、２となるが、これは何れも２番目の仮想点Ｋに対応する２０／６００より小さいことから、それぞれ１００msec毎のタイミングで画像データｉｍａｇｅ0が表示される。
そして、２０００msec経過すると回転速度の分数の分子は２０／６００となる。この場合に、回転速度の分数（２０／６００）は、画像データｉｍａｇｅ1に対応する２０／６００以上となるので、１９００msecのタイミングまでは、画像データｉｍａｇｅ0が表示され、２０００ｍｇのタイミング以後は、画像データｉｍａｇｅ1が表示される。
【００６３】
また、４０００msecのタイミングでは、回転速度の分子が４０となり、画像データｉｍａｇｅ2に対応する分子４０以上となり、画像データｉｍａｇｅ2が表示されることになる。また、６０００msecのタイミングでは、回転速度の分子が６０となり、画像データｉｍａｇｅ3に対応する分数の分子６０以上となり、画像データｉｍａｇｅ3が表示されることになる。すなわち、以後、２０００msec毎に、画像データｉｍａｇｅ0〜ｉｍａｇｅ4が連番の小さい順に切り替えて表示されるとともに、切り替えられるまでの間は、１００msec毎に同じ画像データｉｍａｇｅ0〜ｉｍａｇｅ4が表示される。
【００６４】
なお、回転速度の通分された分数は、分子が分母を越えた場合に、分母の値分だけ減算されるようになっているので、上述の場合に６００００msec経過した際に６００（０）／６００となり、６０１００msec経過した際に１／６００となる。また、１００msec毎に１フレーム表示する処理が行われるが、実際にはフレームを表示する毎にずれが生じることになり、例えば、前のフレームを表示した後に次ぎのフレームを表示するのに１２０msecかかったりするような場合がある。従って、１フレーム表示する処理を行うたびに、回転速度の分数の分子をカウントアップするようにすると、携帯電話１に設けられた機能としての時計と、回転体画像表示プログラムで歯車７を組み合わせることにより形成した時計とにずれが生じることになる。従って、回転速度の分数の分子のカウントアップは、フレーム毎の表示タイミングに関係なく、携帯電話１内部の発振器に基づく時計機能の計時に対応して１００msec毎に行われる。従って、フレーム毎の表示タイミングが累積的に１００msec以上遅れた場合には、例えば、前のフレームの表示タイミングから次ぎのフレームの表示タイミングの間に、回転速度の分子が二度カウントアップされることもある。
【００６５】
また、回転速度の分数を例えば１／１３として、歯数が６の歯車７を回転表示させるものとすると、歯数が６の歯車７の上述の設定された仮想点Ｋの数ｒｅｓmが３０となり、回転速度の分母と設定された仮想点Ｋの数との公倍数が３９０となる。従って、回転速度の分数は、３０／３９０となり、回転速度の分子は、１００msec（１フレーム分の時間）毎に、３０ずつ増加することになる。ここで最初に画像データｉｍａｇｅ0が表示されるものとした場合に、１００msec後には、回転速度の分数は、０（３９０）／３９０から３０／３９０となる。この場合に、仮想点Ｋ0に割り付けられた解像度の分子が０（３９０）、仮想点Ｋ1に割り付けられた分子が１３、仮想点Ｋ2に割り付けられた分子が２６、仮想点Ｋ3に割り付けられた分子が３９となるので、１００msec経過後には、回転速度の分数の分子に最も近い仮想点Ｋ2に対応する画像データｉｍａｇｅ2が表示されることになる。すなわち、早い回転速度を設定した場合には、画像データｉｍａｇｅ0〜ｉｍａｇｅ4が連番に沿って順番に表示されずに、１つ以上の画像データｉｍａｇｅ0〜ｉｍａｇｅ4を飛ばして表示される場合もある。
【００６６】
以上のことから浮動小数点演算や、三角関数等を用いることなく、整数や自然数の加減乗除の演算により回転する歯車の任意の回転速度による回転のアニメーション表示が可能となる。なお、演算に分数を用いているが、計算上は、ほとんど分子を取り扱うだけであり、分母は、例えば、時間経過に伴って増加する分子が分母を越えた場合に、分子を分母で除算して剰余を求める際などに用いられるだけで、演算は、整数の演算となる。
【００６７】
以下に、携帯電話１の計算処理部３における回転画像表示プログラムの実行に基づく処理を説明する。
ここで、回転画像表示プログラムを起動すると、実行モードとなり、歯車の表示が可能な状態となるが、初めて起動した場合には、歯車７及び針９の設定が行われていないので歯車７の表示は行われない。
この状態でメニューにより編集モードを選択可能となっている。使用者の操作により編集モードが選択されると携帯電話１の表示画面には、図５（Ａ）に示す編集モードのメニューが表示される。メニューには、歯車７及び針９を生成（選択）するｃｒｅａｔｅ（生成）メニューと、既に生成された歯車７の位置変更（針９はセットされた歯車７とともに移動）、歯車７及び針９の色変更を行う、すなわち、歯車７、針９の属性変更を行うｅｄｉｔ（属性変更）メニューと、噛み合った歯車７同士の接続トポロジとして噛み合った歯車７の中心同士を結ぶ線分を表示するか否かを選択するｖｉｅｗ（表示メニュー）と、生成された歯車７等のデータのファイルの保存、削除等を行うｆｉｌｅ（ファイル）メニューと、実行モードに移行するｒｕｎ（実行モード）メニューと、プログラムを終了するｃａｎｃｅｌ（終了）メニューとがポップアップメニューとして表示される。なお、メニュー項目の選択は、十字キーの操作により行われ、メニュー項目の決定は、キー入力部４の予め決められた所定のキーを決定キーとし、決定キーの操作により行われる。
【００６８】
そして、生成メニューでは、図５（Ｂ）に示すように、歯車７（ｇｅａｒ）か針９（ｈａｎｄ）のいずれを生成するかを選択する。歯車７を選択した場合には、図５（Ｃ）に示すように、歯車７の選択可能な歯数がメニューとして表示され、歯車７の歯数を選択することで、生成すべき歯車７が決定されるようになっている。ここでは、上述のように６の倍数となる６，１２，１８，２４，３０の歯数の歯車７が選択可能となっている。
【００６９】
そして、歯車７の種類（歯数）を選択すると、図５（Ｄ）に示すように、選択された歯数の歯車７のアニメーション用の複数の画像データから１つの画像データが選択されて表示画面に表示される。この場合に歯車７の中心の座標位置が決定される。最初に生成された歯車７は、例えば、デフォルトで表示画面の中心となる座標位置が決定される。
なお、図５（Ｅ）に示すように、複数の歯車７を続けて生成する操作を行った場合、例えば、ここでは、携帯電話１の使用者が歯数が６の最初の歯車７の生成を行った後に、歯数が１８の歯車７の生成を行った場合には、図１（Ｆ）に示すように、先に生成された歯車７に噛み合った状態で次ぎの歯車７が生成されるようになっている。
また、生成された歯車７は、他の歯車７と噛み合う以外に、図５（Ｇ）に示すように１つの歯車７の同軸上に固着する歯車７を設定することも可能であり、図５（Ｈ）に示すように同軸上に固着した二つの前後する歯車７にそれぞれ別の歯車７を噛み合わせることも可能となっている。また、図５（Ｉ）に示すように、同軸上に三つ以上の歯車を設定することも可能である。
【００７０】
また、図５（Ｊ）に示すように、針９（ｈａｎｄ）を選択すると、選択可能な針９のサイズ（長さ）がメニューとして表示される。なお、針９の表示は、歯車７に対応して行われるようになっており、針９を生成するには、１つ以上の歯車７が生成されている必要があり、複数の歯車７が生成されている場合には、針９を付ける歯車７を選択するようになっている。すなわち、針９は、１つの歯車７と組み合わされ、組み合わされた歯車７の回転中心を回転中心（基端）として歯車７と同じ回転速度で回転するように表示される。
ここでは、針９のサイズは選択可能な歯車７の歯数の種類と同じ種類だけ設定されており、例えば、歯数の５種類「６，１２，１８，２４，３０」に対応して針９のサイズは、ＳＳ、Ｓ、Ｍ、Ｌ、ＬＬの５種類となっている。そして、各針９の長さは、対応する歯数の歯車７のピッチ円８の半径の長さもしくは、歯車７の中心から歯の先端までの長さに対応するように設定される。
ここでは、歯数が６の歯車７の半径とほぼ同じ針９の長さがＳＳとされ、歯数が１２の歯車７の半径とほぼ同じ針９の長さがＳとされ、歯数が１８の歯車７の半径とほぼ同じ針９の長さがＭとされ、歯数が２４の歯車７の半径とほぼ同じ針９の長さがＬとされ、歯数が３０の歯車７の半径とほぼ同じ針９の長さがＬＬとされている。なお、選択される針９の長さと、選択された針９が組み合わされる歯車７の歯数とには制限がなく、例えば、歯数が６の歯車７に、サイズがＬＬの針９を組み合わせるものとしても良い。
【００７１】
そして、生成された歯車７、針９は、その属性を属性変更メニューで変更可能となっている。
歯車７の属性には、位置（表示される歯車７の中心位置のｘｙ座標）、色、表示される歯車７の前後配置、回転速度等がある。
なお、歯車７の生成時に、位置は、最初に生成される歯車７が画面の中心、それ以降が先に生成された歯車７と噛み合う位置となり、色はデフォルトの色とされ、回転速度は例えば０とされる。また、歯車７、針９の生成時には、生成順に後から生成された歯車７、針９が先に生成された歯車７、針９より前となる。なお、歯車７、針９の前後関係は、表示上の問題で、少なくとも一部が重なった状態で複数の歯車７、針９が表示される場合に、どちらの歯車７、針９が隠されるように表示されるかを決めるものである。そして、歯車７同士を噛み合わせる際には、歯車７の前後関係は無視され、平面上の距離に基づいて歯車７が噛み合うか否かが判定される。
【００７２】
また、他の歯車７と噛み合って従動する従車の回転速度は、原動歯車となる原車の回転速度と歯数の比とに基づいて決定されるが、使用者による回転速度の設定上は、従車の回転速度は０とされる。
従って、回転速度が０以外に設定された歯車７が原車となる。なお、複数の噛み合った歯車７からなる歯車列では、１つの歯車７だけを原車とすることが可能となっている。なお、１つの画面中に異なる歯車列を配置することが可能であり、歯車列が異なれば、それぞれの歯車列に原車を設定可能となっている。また、他の歯車７と噛み合っていない自由歯車７も回転速度を０以外として原車にすることができる。
【００７３】
また、針９には、属性のデータとして色と、種類と、角度等とがある。また、針７の種類は、時計の針の種類に対応したものであり時針９ａ、分針９ｂ、秒針９ｃの３種類があり、針の形状としての幅（太さ）が時針９ａ＞分針９ｂ＞秒針９ｃとなっている。
歯車７、針９の属性ではないが、この属性変更メニューで背景色の変更も可能となっている。
そして、図５（Ｎ）に示すように、例えば、既に、歯車７が生成された状態で、属性変更（ｅｄｉｔ）メニューを選択すると、メニュー項目として、位置変更（ｍｏｖｅ）、前後配置変更（ｂａｃｋ／ｆｒｏｎｔ）、色変更（Ｃｏｌｌａｒ）、回転速度（ｓｐｅｅｄ）、針の角度（ａｎｇｌｅ）、歯車・針の削除（ｒｅｍｏｖｅ）、背景色変更（ｂａｃｋｇｒｏｕｎｄ）が表示される。
歯車７の位置変更では、使用者の十字キーの操作に基づき位置変更する歯車７を選択する処理を行い、次いで、２番目移行に生成された歯車７では、歯車生成時には、他の歯車７と噛み合った状態（接続された状態）となっているので、選択された歯車７の接続を解除する処理を行う。そして、使用者の十字キー操作により、歯車７を移動させて位置を変更する処理を行う。また、歯車７を移動させていく過程で、移動する歯車の中心と他の歯車の中心との距離を計測し、距離が移動する歯車７のピッチ円８半径と、他の歯車７のピッチ円８半径との和もしくはこの和に誤差範囲となる値を増減した数値の範囲内となった場合、すなわち、所定の距離となった場合に、移動する歯車７と他の歯車７を接続可能とし、この状態で十字キーの操作による歯車７の移動を停止して、例えば、決定キーを操作すると、位置が変更された歯車７と他の歯車７とが接続状態となる。なお、１つの歯車列に二つ以上の原車が配置されるような場合など所定の条件下では、移動する歯車７の中心と他の歯車７の中心との距離が所定の距離となっても接続状態とはならない。
【００７４】
また、１つの歯車７が複数の歯車７に噛み合うことも可能であり、移動させた歯車７の中心と複数の歯車７の中心との距離がそれぞれの歯車７のピッチ円８半径の和もしくはその近似値（誤差範囲内）となれば、位置的に１つの歯車７に複数の歯車７が接続可能となる。なお、この際には、接続トポロジ的に接続可能か否かが判定される。すなわち、例えば、接続トポロジ的に、それぞれ原車を有する二つの歯車列が接続されてしまうような接続や、１つの歯車列に二つの原車が配置されてしまうような接続や、１つの歯車列に属する二つ以上の歯車７同士の歯車の接続で、かつ、それぞれの歯車が同じ歯車列の他の歯車を介すか直接かのいずれかで原車に接続されているような場合の接続等を行うことができない。従って、１つの歯車が二カ所から回転駆動されるような接続はできない。また、歯車列が環状に繋がるような接続はできない。
【００７５】
そして、移動した歯車７を他の歯車７に接続した場合に、移動した歯車７が原車ではなく、接続された他の歯車７が原車の場合もしくは接続された他の歯車７が属する歯車列に原車が含まれる場合には、原車の回転速度と、原車と移動した歯車７とそれらの間にある歯車７との変速比に基づいて、移動した歯車７の回転速度が決定される。また、歯車７と歯車７を噛み合わせた場合には、後述するようにして、歯車７同士が噛み合った状態となるように移動した方の歯車７の角度が設定される。
なお、針９が組み合わされた歯車７の位置変更を行うと、組み合わされた針９も歯車７ととともに移動する。
【００７６】
歯車７、針９の前後配置変更の処理では、図６のフローチャートに示すように、歯車７、針９を選択し、選択された歯車７、針９の前後配置を使用者の操作に基づいて、１つ前面へ配置する（ステップＳ１）か、１つ背面へ配置する（ステップＳ２）処理を行う。なお、三つ以上の歯車がある場合には、例えば、最も背面に配置された歯車７を選択した後に、前面に配置の操作を二度行うと、選択された歯車７が最も前に配置される。なお、各歯車７、針９には、例えば、生成順に、前後関係を示す連番Ｚiが付されており、Ｚiが０の場合に、最も背後の歯車となり、Ｚiが最も大きい歯車が１番前となる。従って、各歯車７、針９に設定されたＺiを変更することで、前後配置を変更することができ、例えば、前後の歯車７、針９のＺiの値を入れ替えることで、１つ背面もしくは１つ前面への前後配置の変更を行う。そして、繰り返し各変更操作が可能であるが、決定キーが操作された場合に配置を決定し（ステップＳ３）、処理を終了する。
【００７７】
なお、歯車７、針９の描画においては、Ｚiが小さい歯車７、針９から描画されることになり、歯車７や針９が重なった部分がある場合に、先に描画されたＺiの小さい方の歯車７、針９が後から描画されるＺiの大きい歯車７、針９により書き換えられる（塗りつぶされる）。これにより、Ｚiが大きい方の歯車７、針９が、Ｚiが小さい方の歯車７、針９を隠すように描画されることになる。
【００７８】
歯車７、針９の色変更では、歯車７の色の変更と、針９の色と種類（形状）の変更が可能となっている。使用者の操作により歯車７もしくは針９が選択される。
そして、メニュー項目として、図５（Ｎ）も示すように色変更（ｃｏｌｌａｒ）を選択すると、図５（Ｏ）に示すように色変更ウインドウが開き、色変更ウインドウ内で、歯車７の場合に、歯車７の縁（輪郭線）、歯車７の縁内（ｂｏｄｙ）、歯車７の縁外を選択できる。また、歯車７の縁内を選択した場合は、透明（ｔｒａｎｓｐａｒｅｎｔ）の選択支が表示され、透明を選択可能となる。そして、図７のフローチャートに示すように、使用者の選択操作に対応して縁の中の色の編集（ステップＳ４）、縁の色の編集（ステップＳ５）、縁の外の色の編集（ステップＳ６）、縁の中を透明にする処理（ステップＳ７）が行われる。そして、透明にする処理を除いて、各編集処理においては、使用者がＲＧＢ値の変更の操作を行うとそれに対応してＲＧＢ値が変更される（ステップＳ８，９，１０）。そして、繰り返し各変更操作が可能であるが、決定キーが操作されると、歯車７の色が決定して処理が終了する（ステップＳ１１）。なお、歯車７の縁の中を透明にする処理では、歯車７を描画する際に、縁の中を描画しないようにする。
【００７９】
上述のように、歯車７の輪郭線（縁）にはインデックス画像のパレット部のインデックス０の色が割りふられ、歯車７の輪郭線内部にはパレット部のインデックス１の色が割りふられ、歯車７の輪郭線外部にはパレット部のインデックス２の色が割りふられている。
そして、色の変更処理では、色の変更の対象となる歯車７に対応し、記憶領域６に記憶されているインデックス画像６２を記憶領域６の別の領域にコピーするように書き出し、このインデックス画像を展開せずにバイナリーデータの状態で、パレット部（配色表）において、輪郭線の場合にインデックス０、輪郭線内部の場合にインデックス１、輪郭線外部の場合にインデックス２のＲＧＢ値を直接書き換えることで行われる。書き換えるＲＧＢ値は、図５（Ｎ）に示すように、色変更ウインドウ上でＲＧＢ値を変更することで入力された値が用いられる。
【００８０】
このように歯車の色変更を行うことで、予め、複数の色の画像データを記憶しておくようにした場合と比較して、画像データ用の記憶容量を極めて少なくできるとともに、多くの色が使用可能となり、かつ、インデックス画像を展開して画像の色の変更を行うようなアプリケーションを必要とせず、プログラムの記憶容量も極めて少なくすることができる。なお、インデックス画像においても、通常、圧縮が行われているが圧縮はイメージデータの部分すなわち、ピクセルデータ部６２２が圧縮されており、パレット部６２１は圧縮されておらず、展開されていないバイナリーデータの状態のインデックス画像でも、容易に変更可能である。
なお、最初にインデックス画像６２は、歯車７の歯数の種類毎に上述の各歯車７で同数のアニメーション用画像データとして記憶されているが、色の変更により色違いの画像データが各歯車で同数のアニメーション用画像データとして書き出されることになる。そして、新たに画像データを記憶領域６に書き出すことで、記憶容量が増えることになるが、複数の同じ歯数の歯車７を同時に表示する場合に、色違いの歯車７を表示することが可能となる。
そして、歯車７の色変更を行うことにより、図５（Ｐ）に示すように歯車７の色が変更されるとともに、上述のように色違いの同じ歯数の歯車７を表示することも可能となる。
以上のことから、色の変更処理を行う計算処理部３は、回転画像表示プログラムにより実現される機能として、前記記憶手段（記憶領域６）に記憶されたインデックス画像６２の配色表上の色のデータを書き換えることにより、回転体（歯車７）の画像の色を変更する色変更手段となる。
【００８１】
また、針９を選択した場合に、図８のフローチャートに示すように、使用者は、変更する項目として針９の色、針９の形状とを選択できる。
針９の色を選択して変更する場合には、歯車７の場合と同様にＲＧＢ値を変更する（ステップＳ１２）ことになるが、針９は、画像データとして記憶領域６に記憶されておらず、針９をアニメーション表示する際には、組み合わされた歯車７の回転速度に対応して角度を変更してフレーム毎に毎回描画（描画する毎に角度を変更するとは限らない）することになる。この際に、変更されたＲＧＢ値を用いることにより、針９の色が変更され、色違いの針９を表示可能となる。また、描画に際しては、針９の形状の種類に応じて線幅、長さの異なる線として描画される。従って、針９の色変更では、記憶領域６の画像データにおける色の更新は行われない。
【００８２】
また、針９の形状の変更を選択して、複数の針の種類、すなわち、時針、分針、秒針から１つの針の種類を使用者が決定することにより、針９として太線、標準線、細線のいずれかが選択されることになる（ステップＳ１３）。なお、太線が時針に対応し、標準線が分針に対応し、細線が秒針に対応する。また、針９の形状の選択で、上述の針９の長さのサイズも選択できるものとしても良い。そして、繰り返し各変更操作が可能であるが、使用者が決定キーを操作すると、針９の色と形状が決定されて、処理が終了する（ステップＳ１４）。
【００８３】
歯車の回転速度の変更では、図９のフローチャートに示すように、まず、選択された歯車の回転方向を時計回りと反時計回りとのいずれかで使用者の操作に基づいて選択する（ステップＳ１５）。次ぎに回転速度の入力は上述のように分数で行なわれるようになっており、使用者の操作に基づき、速度の分母が入力された値に変更され（ステップＳ１６）、速度の分子が入力された値に変更される（ステップＳ１７）。
そして、上述のように選択された歯車７の仮想点Ｋの数ｒｅｓmと分母の公倍数を求め、分母を公倍数とする（ステップＳ１８）。また、分子に、分母を公倍数とした場合に乗算された値を乗算し、ｒｅｓmを分母とする分数と通分した状態とする（ステップＳ１９）。
そして、繰り返し変更操作が可能であるが、決定キーの操作により、回転速度を決定して処理を終了する（ステップＳ２０）。
【００８４】
なお、基本的に１フレームの描画に対応する時間毎に設定された値（上述のように通分された分子の値）ずつ分子を増加していく。そして、増加した分子の値が分母の値を越えた際に、歯車が一周を回ったものとし、設定された分子の値を分母の値で除算して剰余を現在の分子の値とする。すなわち、歯車７が一周するのに要する時間は、分母を分子で除算した値に１フレームの描画に対応する時間を乗算したものとなる。なお、１フレームに対応する時間が、実際に前のフレームが描画されてから次ぎのフレームが描画される時間ではなく、予め設定された１フレームの描画時間としての一定の時間が用いられる。
そして、回転速度の分母の値としては、１以上の正の整数が使用可能であり、分子の値としては、０以上の自然数が使用可能となっており、ここで、分子の値を０とすると、回転速度０となり、上述のように従車となる。一方、分子の値を０以上とすると上述のように原車となるが、順次歯車が接続された１つの歯車列では、上述のように１つの歯車だけ原車とすることが可能であり、同じ歯車列の原車以外の従車は、全て、回転速度を示す分数の分子が０とされる。なお、従車も原車の回転に対応して回転するものであり、回転速度が生じるので、設定値としての分子は０であるが、後述するように原車を有する歯車列に接続された従車の回転速度が求められ、この際に回転速度の分子と分母が決定される。
【００８５】
針９の角度は、例えば、一周３６０度として度数で設定する。そこで、図１０のフローチャートに示すように、例えば、使用者の操作に基づいて針９の角度を変更する（ステップＳ２１）。
実際に針９を回転する場合には、針９は、その長さのサイズに対応する半径を有する歯車７と同様に回転することになり、対応する歯車の歯数に画像データ数を乗算した値である仮想点Ｋの総数ｒｅｓmで３６０度を割った分割度数毎に回転するように表示される。従って、針９の角度は、１／ｒｅｓm等のように分数に変換される。例えば、歯数が３０の歯車７と同じＬＬサイズの針９の場合には、歯数が３０の歯車７の上述の分割角度である２．４度毎回転するものとされる。すなわち、１／１５０ずつ回転する。そして、針９は、歯車７と同様に回転速度を分数として表されることになる。従って、針９の角度を、分数とし、その分子を自然数（０を含む）とし分母を正の整数としてそれぞれ変更する（ステップＳ２２）。
【００８６】
なお、針９は、取り付けられた歯車７と一体に回転するようになっており、回転する歯車７に同軸上で固着される歯車７と同様に回転することになる。この際に、針９の長さに対応した半径ｒａｄmの歯車７の歯数と、針９と一体に回転する歯車７の歯数が異なる場合に、これら歯車７の仮想点Ｋの総数ｒｅｓmが異なることから、アニメーションとしての解像度（ｒｅｓmや前記分割角度）が異なることになる。例えば、歯数が６の歯車７に歯数が３０の歯車７の半径ｒａｄに対応する針９が付けられた場合に、歯数が６の歯車が１つの画像データ分移動する間に、針９は、５画像データ分移動することになる。しかし、最終的に歯車７とそれに取り付けられた状態に回転する針９との一周に要するフレーム数（時間）は同じとなる。
【００８７】
また、針９の角度の変更では、携帯電話１の時計機能に基づいて現在の時刻を求め、現在の時刻に基づいた角度に、時針９ａ、分針９ｂ、秒針９ｃのそれぞれを設定するメニュー項目も用意されている。
すなわち、使用者の操作に基づいて、携帯電話１の時計機能から、現在の時刻を読み取り、読み取られた時間、分、秒に対応して、時針９ａ、分針９ｂ、秒針９ｃをそれぞれ、現在の時間の角度、現在の分の角度、現在の秒の角度に設定する処理が行われる（ステップＳ２３，２４，２５）。そして、繰り返し各変更操作を行うことが可能であるが、決定キーを操作することにより、針９の角度を決定して、処理を終了する（ステップＳ２６）。
【００８８】
なお、針９ａ、分針９ｂ、秒針９ｃを用いて時計の表示を可能とした場合に、編集モード時に歯車７の回転を止めた状態（編集モード開始時で針９の回転を止めた状態）で編集を行い、実行モードに戻って針９の回転を再開して針９を描画する際に、現状の時刻まで針９を進めて描画することになる。しかし、編集モードを開始してから、実際に時計を見て、針９の角度を変更するまでに長い時間かかってしまうと、編集モードを開始した時刻と、針９を合わせた際の時計の時刻とに大きな差ができてしまい、実行モード開始時に編集開始時の針９の角度に対して、現在の時刻に基づいて針９の角度を進めても、変更された際の針９の角度が編集開始時の時刻と合っておらず、正確に時間を合わせられない。そこで、上述のように短時間で、時針９ａ、分針９ｂ、秒針９ｃの角度合わせを可能とすることで、針９の角度の正確な時刻合わせが可能となる。
【００８９】
背景色の決定では、図１１のフローチャートに示すように、背景色用の色変更ウインドウが表示され、使用者の操作に基づくＲＧＢ値に変更する処理が行われる（ステップＳ２７）。なお、変更前は、デフォルトの背景色の設定となっている。また、背景色は、各フレームの描画において最初に行われる。
表示メニューを選択した場合は、互いに噛み合う歯車７の中心同士を結んだ線分である接続トポロジの表示／非表示の選択メニューを表示し、使用者の操作に基づいて、表示／非表示が選択され、表示の場合には、実行モードの際に、接続トポロジを表示する処理を行う。なお、歯車７の表示では、隣接する歯車７同士が噛み合う配置となっていても、噛み合っていない場合もあり、接続トポロジが表示されていない状態では、直ぐには歯車７の噛み合い状態を判断できない場合もある。
【００９０】
ファイルメニューを選択した場合には、メニュー項目として、新規ファイル作成、ローカルファイルオープン、ファイルの上書き保存、ファイルの削除、ファイルの新規保存、ファイルのアップロード、ファイルのダウンロードがある。なお、ここでファイルとは、生成された歯車や針の属性データや歯車と歯車の接続及び歯車と針の接続のデータや、背景色のデータ等のデータであり、歯車７の色変更を行った場合に、変更されたＲＧＢ値等が画像データとは別に記憶可能となっていれば、必ずしも、歯車７の画像データを含んでいなくとも良い。そして、このようなファイルは、記憶領域６に歯車・針の位置・組合せデータ６４として記憶可能となっている。なお、ファイルには、ファイルを特定するＩＤ（ファイル名）がそれぞれ付けられるようになっている。なお、歯車７と針９のセットのファイルには、歯車７が必須となるが針９は無くても良い。
【００９１】
新規ファイル作成では、現在、オープンして編集モードとなっているファイル、すなわち、生成された歯車７と針９のセットを廃棄もしくは記憶領域６に上書き保存して、新たな歯車７と針９のセット（ファイル）のＩＤを設定し、新たなファイルで、歯車７、針９の生成を可能とする。
ローカルファイルオープンでは、記憶領域６に記憶されているローカルファイルのＩＤを使用者に選択させ、選択したＩＤに対応するファイルに記述された歯車７と針９のセットのデータを実行メモリ３２に読み込む。また、現在、実行されるファイルのＩＤとして、選択されたファイルのＩＤを設定する。次いで、実行モードに移行し、設定されたＩＤのファイルのデータに基づいて歯車７、針９をアニメーション表示する。また、ここでローカルとは、携帯電話１もしくはその記憶領域６を示している。なお、ローカルに対してグローバルとは、ネット上のサーバ等のインターネットストレージを指すことになる。
【００９２】
ファイルの上書き保存では、現在、実行可能となっているファイルのＩＤでファイルを記憶領域６に記憶する。この際には、既に同じＩＤで記憶されているファイルがある場合には、先に記憶されている同じＩＤのファイルを消去（更新）して、現在、実行可能となっているファイルを記憶する。
ファイルの新規保存では、使用者の操作により新規のＩＤを設定させ、新規のＩＤで記憶領域６にファイルを記憶するとともに、現在実行可能なファイルのＩＤを新規の前記ＩＤに更新する。
ファイルの削除は、ローカルとなる記憶領域６に記憶されているローカルファイルのＩＤを使用者に選択させ、選択されたＩＤを有するローカルファイルを記憶領域６から削除する。
【００９３】
ファイルのダウンロードでは、インターネットストレージに記憶されたファイルをダウンロードすることになる。携帯電話１がインターネットに接続されインターネットストレージとなるサーバにアクセスした状態で、ファイルのネットワーク上のＩＤであるネットワークＩＤを使用者に指定（選択）させる。指定したファイルに記述されている歯車７及び針９のセットのファイルを携帯電話１に読み込む。そして、インターネットを介して読み込まれた現在のファイルに新規のＩＤを設定し、ダウンロードされてＩＤ（ローカルＩＤ）が設定されたファイルを設定されたＩＤで記憶領域６に記憶する。
ファイルのアップロードでは、ダウンロードの場合と同じ状況で、現在、実行可能となっているファイルにネットワークＩＤを設定し、設定したＩＤでファイルをネットワークストレージに送信して、ネットワークストレージに記憶させる。
【００９４】
なお、携帯電話１では、記憶容量が限られるために、多くのデータのファイルを記憶できないとともに、多くのアプリケーションのファイルを同時に記憶しておくことができない。従って、他のアプリケーションを実行可能とするために、回転体画像表示プログラムを記憶領域１から消去する場合がある。このような場合に、生成した歯車７と針９のファイルを消去されないように保存するためには、インターネットストレージを使用する必要がある。また、専用のインターネットストレージに、予め、サンプル等として作成されたファイルが記憶されていれば、これをダウンロードすることにより、歯車７の生成等の操作を行わずに、例えば、歯車７・針９の表示を行うことが可能となる。
【００９５】
次ぎに、実行モードにおける回転体画像表示プログラムの処理を説明する。
メイン処理は、図１２の実行モードのメインフローに示すように、歯車７・針９のセット（針９は無くとも良い）の更新（ステップＳ３０）、更新された歯車７・針９のセットの描画（ステップ３１）とからなる。
歯車７・針９のセットの更新は、生成された歯車７及び生成された歯車７に組み合わされた針９の経過時間に基づく回転角度を求め、歯車７においては、上述のアニメーション用の複数の画像データが対応する位相を求める。すなわち、求められた回転角度に最も近い回転角度の画像データに対応する位相を求める。
そして、歯車７・針９のセットの描画においては、位相に対応する歯車７の画像データが選択されて描画され、針９は、歯車７の回転角度に対応する回転角度で描画される。
そして、所定タイミング、例えば、単位時間当りのフレーム数が１０／secの場合に、約１００msec毎に上述の処理を繰り返し行うことで、歯車７と針９の描画が行われる。
歯車７、針９のセットの更新は、より具体的には、図１３のフローチャートに示すように、まず、更新開始時刻を携帯電話１の時計機能に基づいて取得し、ｔnow（msec単位）として記憶する（ステップＳ３２）。
【００９６】
次ぎに、歯車７・針９のセットの集合Ｇの要素である生成された歯車ｇiから、上述の前後関係を示すＺiの小さい順に歯車ｇi、針ｈiを選択して以下の処理を実行する（ステップＳ３３）。なお、集合Ｇには、生成された歯車（７）ｇi（ｇ0、ｇ1、…）が含まれるとともに、歯車ｇiにセットされる針９がある場合に生成された針（９）ｈi（ｈ0、ｈ1、…）が含まれるが、針ｈiは、その長さの半径を有する歯車ｇiとして、以下の処理が実行される。なお、実行モードにおいて、ｉ＝０、１，２，…は、生成された各歯車７及び針９を示すもので、以下、ａi、ｓi、Ｚi、ｂi、ｐi、ｒｓi等においても、生成された歯車７及び針９に対応する。
【００９７】
なお、集合Ｇの要素の全てとなる歯車ｇi及び針ｈiに対して以下の処理が終了した場合には、更新処理を終了する（ステップＳ３４）。
そして、上述の現在時刻ｔnowにおける各歯車ｇi（針ｈiの長さに対応する半径の歯車７を含む）の角度ａiは、ステップＳ３５に示される式に基づいて求められる。ここで、上述のように歯車７の歯数ｃiと、歯車ｇiが所定角度（１周期）分回転する１周期分のアニメーション用の画像データ数、すなわち、上述の位相数ｐｈａｓｅの値とを乗算した値を歯車ｇiのピッチ円８上に等間隔で設定された仮想点Ｋの総数を示す上述の解像度ｒｓi（ｒｅｓm）とする。
また、ｐｈａｓｅの値となる数だけ記憶された各画像データに対応する位相がｐi（０，１，２，…、ｐｈａｓｅ−１）とされる。
【００９８】
また、回転速度は、上述のように分子と分母とを入力することにより得られる。
すなわち、入力された回転速度の分母が６００で、分子が１の場合に、１回の描画更新時間ｔf毎に、１／６００ずつ回転することになる。
歯数が６でｐｈａｓｅが５の場合に、解像度ｒｓiが３０となる。従って、各位相（画像データ）毎の回転角度は、１／３０となる。ここで、各位相毎の回転角度を現す分数と、入力された回転速度の分数とを通分すると、各位相毎の回転角度は、２０／６００と表される。通分した際の分母は、分母ｂiとされる。なお、分母ｂiは、ｒｓi（例えば、３０）に通分に用いられた正の整数ｆi（例えば、２０）を乗算したものとなる。
【００９９】
また、入力された回転速度の分数の通分された分母ｂiに対する分子を１回の描画更新時間毎の回転角度の分数（分母はｂi）増加量としての速度Ｓiとすると、ここで速度Ｓiは１となる。
そして、ステップS３５の式では、更新開始時刻ｔnowから基準時刻ｔstiを除算することにより、経過時間が求められ、経過時間を描画更新時間ｔfで除算することにより、基準時刻ｔstiからの描画回数（表示フレーム数）が求められることになる。なお、描画更新時間ｔfは、実際の描画更新にかかった時間ではなく設定時間である。
【０１００】
そして、描画回数に１回の描画毎の上述の角度の分子の増加量としての速度Ｓiを乗算することで、基準時刻からの角度（分子）の変化量が求められ、これに基準時刻ｔstiの角度ａstiを加算し、これを分母ｂiで除算して剰余を求めることにより、歯車の一回転内での角度ａiが回転角度を示す分数の分子として求められる（ステップＳ３５）。
例えば、基準時刻を１００msecとし、基準角度の分子ａstiを１００とし、現在時刻を４００００msecとした場合に、角度ａiは、４９９となる。すなわち、回転角度は一周を１とした場合に、４９９／６００となる。なお、ここで［ｘ］は、ｘを越えない最大の整数を返すガウス関数を示すものであり、ａ  ｍｏｄ  ｂは、ａをｂで除算した際の余りを示すものである。なお、ａ＜０の場合には、ｂ−（ａの絶対値）ｍｏｄ  ｂとする。
ここで、ステップＳ３５の２番目の式において、求められた角度ａi（４９９）を通分時に用いたｆi（２０）で除算することにより、上述の回転角度は、２４番目の仮想点Ｋに対応することになる。そして、２４番目の仮想点Ｋを示す２４をｐｈａｓｅ（５）で除算して余りを求めることにより、位相ｐi（＝４）を求めることができる。アニメーション用の複数の画像データのうちの位相ｐi（＝４）に対応する画像データ（ｉｍａｇｅ3）を選択することが可能となる。すなわち、［ａi／ｆi］は、仮想点Ｋを特定するために仮想点Ｋに付された連番に対応し、フレームの描画時毎に［ａi／ｆi］を求めることにより、仮想点Ｋに対応する画像データを選択し、描画時の時刻に対応する回転角度の歯車を表示することができる。
【０１０１】
そして、図１４のフローチャートに示すように、各歯車ｇi、針ｈiのセットを描画していく。ここでは、上述のように前後関係を示すＺiの小さい順に歯車ｇi、針ｈiを集合Ｇから選択して、以下の処理を実行する（ステップＳ３７）。なお、集合Ｇの要素の全てとなる歯車ｇi及び針ｈiに対して以下の処理が終了した場合には、更新処理を終了する（ステップＳ３８）。
次ぎに、集合Ｇから選択されたのが歯車ｇiか針ｈiかを判定する（ステップＳ３９）。そして、歯車ｇiの場合には、歯数ｃiの歯車ｇiの画像データのうちの更新処理で求められた位相ｐiに対応する画像データで、かつ、歯車の属性としての色ｃｏｌｌａｒgiが上述のように変更された画像データもしくはデフォルトの色の画像データを描画することになる。
【０１０２】
すなわち、ｉｍａｇｅcollargici,piとなる画像データを描画する（ステップＳ４０）。また、選択されたのが針ｈiの場合には、針ｈiのサイズの長さで、針ｈiに設定された色ｃｏｌｌａｒhiで、かつ、設定された形状（時針９ａ、分針９ｂ、秒針９ｃのいずれか）で針ｈiを描画することになる。そして、描画する際の針ｈiの角度は、針ｈiにおいても、針ｈiの長さのサイズに対応する半径の歯車ｇiと同様に上述の角度ａi／ｂiが求められており、針ｈiが接続された歯車ｇiの中心の座標位置から角度ａi／ｂiで針ｈiが描画されることになる。なお、ここでは、針ｈiが接続された歯車ｇiの中心座標から、Ｘci，［ａi／ｆi］で示される仮想点Ｋの座標位置に向かって針ｈiを描画する（ステップＳ４１）。なお、[ａi／ｆi］は、仮想点Ｋに付された連番に対応するものであり、これにより仮想点Ｋが特定され、記憶領域６から特定された仮想点Ｋの円周座標データ６３を得ることができる。
【０１０３】
以上のような実行モードでの回転体画像表示プログラムにより実現される計算処理部３の処理により、計数処理部３は、前記記憶手段（記憶領域６）に記憶された複数の回転体（歯車７）毎の複数の画像データを順次表示することで回転体をアニメーション表示するとともに、前記回転体の任意の回転速度に応じて前記記憶手段に記憶された画像データを順次切り替えて表示していく場合に、同期して回転した状態に表示される回転体同士の画像データを切り替えるタイミングをほぼ同期させる表示制御手段として機能する。
また、計数処理部３は、画像データを順次表示することで回転体をアニメーション表示する場合に、前記画像データの表示時における前記回転体の回転速度に応じた回転角度に対応する前記仮想点を求め、複数の前記画像データのうちの求められた仮想点に対応する画像データを表示する表示制御手段として機能する。
【０１０４】
以上の処理では、互いに噛み合った歯車７や、同軸上で一体に回転する複数の歯車７や、歯車７と一体に回転する針９等を設定された回転速度で回転表示することができるが、歯と歯が正確に噛み合った状態で、各歯車７や針９を回転表示することができない。そこで、編集モードにおいて、噛み合った歯車同士の位相を対応させるように、歯車７及び針９生成時や属性変更時に以下の複数の処理を行う必要がある。
【０１０５】
例え各歯車７に対応する変数である歯数ｃi、半径ｒi、解像度ｒｓi、上述の通分時の正の整数ｆi、通分された回転速度を示す分数の分母ｂi、前後関係を示す連番ｚi、基準時刻ｔst iは、図１５のフローチャートに示すように歯車を生成した際に決定れる。すなわち、ステップＳ４３において、歯数ｃiは、使用者により選択された歯車７の歯数ｃｏｇmとされ、半径ｒiは、選択された歯数ｃｏｇmに対応して予め決められた半径ｒａｄmとされ、解像度（ピッチ円８上に設定された仮想点の総数）ｒｓiも歯数ｃｏｇmに対応して予め決められた解像度ｒｅｓmとされる。
【０１０６】
なお、通分する際の正の整数ｆiは、回転速度を変更されるか、原車を有する歯車列の歯車と接続されるまでは１とされる。また、分母となるｂiは、デフォルトで１とされた正の整数ｆiに基づきｒｓi×ｆiとされる。
また、前後配置を示すＺiは、生成された際の歯車ｇiの集合Ｇの要素数（生成された歯車ｇiの数と針ｈiの数の和）となる。すなわち、Ｚi生成順に０から連番で値が決定される。
また、基準時間ｔstiは、編集モードを開始した時刻ｔedとされる（ステップＳ４３）。
また、歯車ｇiの中心のｘｙ座標も決定され、歯車ｇiの各領域の色ｃｏｌｌａｒ  giもデフォルトの色が設定される。なお、歯車ｇiの中心の座標位置は、予め、設定された座標位置とされるものとしても良いし、使用者に指定させるようにしても良いし、既に別の歯車ｇjが生成されている場合に、別の歯車ｇjに噛み合う位置、すなわち、別の歯車ｇjの中心と生成された歯車ｇiの中心との距離がそれぞれのピッチ円８半径のほぼ和となる位置にしても良い。
なお、以上の歯車ｇiの属性は、歯数毎に予め決め値が決められるか、生成時に自動的付与されるものであり、使用者が歯車生成時に歯数を選択することにより決定される。
そして、各属性が決定された歯車ｇiが生成された歯車ｇi及び針ｈiの集合Ｇの要素とされ（ステップＳ４４）、生成された歯車ｇiの属性のデータが記憶領域６の歯車・針の位置・組合せデータ６４として記憶される。
【０１０７】
また、針ｈiの生成の場合は、図１６のフローチャートに示すように、選択されたサイズである半径ｒａｄmの長さの針ｈiを生成することになる。ここで、針ｈiは、そのサイズにほぼ等しい半径ｒａｄmを有する歯車７（ｒａｄmをピッチ円の半径とする歯車７）と同様に回転するものとして、歯車７と同様に歯数ｃiが、半径がｒａｄmの歯車の歯数ｃｏｇmとされ、半径ｒiがｒａｄmとされ、解像度ｒｓiがｒｅｓmとされる。
また、前後配置ｚiは、上述のように、生成された際の歯車７及び針９の集合Ｇの要素数となる。また、基準時間ｔstiは、編集モードを開始した時刻ｔedとされる。
【０１０８】
ここで、針ｈiの速度（回転速度の分子）ｓiを、接続先の歯車ｇjの速度ｓjに針ｈiの長さに対応する歯車の歯数ｃiを乗算したものとし、通分用の値ｆiを、接続先歯車ｇjの通分用の値ｆjに接続先歯車ｇjの歯数ｃjを乗算したものとする。
さらに、生成される針ｈiの上述のように設定された速度ｓiと、通分用の値ｆiとの最大公約数をｎとした場合（公約数がある場合）に、ｓi及びｆiは、最大公約数で除算された値とする。すなわち、解像度ｒｓiが乗算されることにより回転速度の分数の分母となるｆiと、回転速度の分数の分子となるｓiとの間で約分が行われる。
そして、針ｈiの半径に対応する歯車ｇiの回転速度の分母ｂiは、上述のように約分された値ｆiに解像度ｒｓiを乗算したものとする。
ここで、針ｈiの速度ｓi／ｂiは、上述のように、ｓi＝ｓj×ｃi  ｆi＝ｆj×ｃj  ｂi＝ｆi×ｒｓiとされることから、
ｓi／ｂi＝（ｓj×ｃi）／（ｆi×ｒｓi）＝（ｓj×ｃi）／（ｆj×ｃj×ｒｓi）
となる。
また、上述の解像度ｒｓの定義や速度の分母ｂの定義から
ｒｓi＝ｃi×ｐｈａｓｅ
ｒｓj＝ｃj×ｐｈａｓｅ
ｂj＝ｆj×ｒｓj
という関係がある。
従って、
ｓi／ｂi
＝（ｓj×ｃi）／（ｆj×ｃj×ｒｓi）
＝（ｓj×ｃi）／（ｆj×ｃj×ｃi×ｐｈａｓｅ）
＝ｓj／（ｆj×ｃj×ｐｈａｓｅ）
＝ｓj／（ｆj×ｒｓj）
＝ｓj／ｂj
となる。
ここで、ｓj／ｂjは、針ｈiの接続先歯車ｇjの回転速度であり、針ｈiの回転速度ｓi／ｂiと接続先歯車ｇjの回転速度ｓj／ｂjとが等しくなる。
なお、上述の処理により、針ｈiの回転速度と、接続先の歯車ｇjの回転速度とは等しくなるが、針ｈiの長さに対応する半径の歯車ｇiと接続先歯車ｇjとで歯数が異なる場合に、画像データの切り替わるタイミングが異なる可能性がある。
【０１０９】
そして、針ｈiの接続先となる歯車Ｐgiを歯車ｇjとし、接続先となる歯車ｇjに接続される歯車の集合ＣＧjに針ｈiを含ませる（ステップＳ４６）。なお、針ｈi及び歯車ｇiにおいて、接続先、すなわち、駆動力の伝動元となる歯車ｇjは１つである。また、駆動力の伝動元となる歯車ｇjから駆動力が伝達される歯車ｇi、針ｈiは、１つに限られるものではなく複数の歯車ｇi等（集合ＣＧjに属する歯車ｇi及び針ｈi）を接続することができる。
そして、生成されて属性が決定された針ｈiは、生成された歯車ｇiと針ｈiの集合Ｇに追加される（ステップＳ４７）。
【０１１０】
編集モードで上述のように歯車ｇiの生成や針ｈiの生成を行った場合に、生成された歯車ｇiや生成された針ｈiの基準時刻ｔstiが編集モードを開始した際の開始時刻ｔedとなり、基準時刻ｔstiに対応する基準角度ａstiが設定された場合に、編集モードとなる前に既に生成されて異なる基準時刻ｔstiを有する歯車ｇiや針ｈiが存在すると、これら既存の歯車ｇiに生成された歯車ｇiや針ｈiを接続するために角度や位相等を合わせる際に、既存の歯車ｇiと生成された歯車ｇiや針ｈiの基準時刻が異なることから既存の歯車ｇiの基準角度ａstiに対応して生成された歯車ｇiの基準角度ａstiを設定することができず、計算が煩雑になる。
【０１１１】
そこで、編集モードの開始時には、既に生成された歯車ｇi及び針ｈiの基準時間ｔstiを編集モード開始時刻ｔedとし、基準角度ａstiを開始時刻ｔedの角度ａiとすることで、既存の歯車ｇiと編集モード中に生成される歯車ｇi、針ｈiの基準時刻ｔsti及び基準角度ａstiを合わせる処理を行う。
図１７のフローチャートに示すように編集モード開始処理として、携帯端末の時計機能における編集モードを開始した時刻を、ｔedとして記憶領域に保存する（ステップＳ４９）。
次ぎに、以下の処理を生成された歯車ｇi、針ｈiのセットの集合Ｇに含まれる要素である全ての歯車ｇi及び針ｈiに対して行う（ステップＳ５０）。なお、集合Ｇに含まれる全ての歯車ｇi及び針ｈiに以下の処理を行った場合には、処理を終了する（ステップＳ５１）。
編集モード開始時刻ｔedにおける角度ａiを求める。まず、編集モード開始時刻ｔedから以前の基準時刻ｔstiを除算することにより経過時間を求め、経過時間を描画更新時間ｔfで除算することにより、現在までの描画更新回数を求め、描画更新回数に描画更新毎の回転角度を示す速度ｓi（速度の分子）を乗算することで、基準時刻ｔstiから開始時刻ｔedまでの回転角度の変化量（回転角度の分子）を求める。この際に変化量は、上述のガウス関数により求められた変化量を越えない最大の整数となる。そして、回転角度の変化量に基準となる角度ａstiを加算した後に、回転角度及び回転速度の分母ｂiで除算して剰余を求めることにより、角度ａiが歯車ｈiの一回転内での角度として求められる。
そして、求められた角度ａiが基準角度ａstiとされる。
また、回転角度ａiが求められることにより基準時刻ｔstiにおける位相ｐiを上述の場合と同様に求めることができる。
【０１１２】
そして、編集モード開始時刻ｔedから元の基準時刻ｔstiを除算して経過時間を求め、これを描画更新時間ｔfで除算した剰余を求める。求められた値は、編集モード開始時刻ｔedより前で、開示時刻ｔedに最も近い描画開始時間毎の（フレームの0）描画開始時刻からのずれを示すものである。そして、開始時刻ｔedから求められた前記ずれ時間を除算することで、開示時刻ｔedの前で開示時刻ｔedに最も近い描画開始時刻が求められる。そして、求められた時刻が新しい基準時刻ｔstiとされる（ステップＳ５２）。これにより、基準角度ａstiが描画開始時刻のタイミングに合わされることになる。
また、上述の属性変更の処理において、歯車ｇiを移動した場合に、移動した歯車ｇiが他の歯車ｇjと接続可能か否かが判定され、他の歯車と接続可能となった場合には、接続可能であることが表示されるが、接続可能歯車の判定処理を図１８のフローチャートを参照して説明する。
なお、この判定処理は、歯車７を編集中に移動する処理を行った場合に行われる。
【０１１３】
すなわち、使用者の操作により、歯車７が移動する（ステップＳ５４）。次ぎに、移動した位置での歯車７に、後述するように位置的に接続可能な歯車７があるか否かが判定され、判定結果が表示される（接続可能な場合だけ表示しても良い）（ステップＳ５５）。
上述の処理は、歯車７が移動している間、位置が変更する度に行われることになる。そして、使用者は、歯車７が目的の位置（例えば、他の歯車と噛み合う位置）となった際に、歯車７の移動を停止し、これにより歯車７の位置が決定する（ステップＳ５６）。
次ぎに、位置的に移動した歯車７に接続可能な歯車７の数が判定される（ステップＳ５７）。接続可能な歯車７が０の場合に処理を終了し、１以上の場合には、使用者に移動した歯車７に接続する１つ以上の歯車７を選択させるか、もしくは、移動した歯車７を他の歯車７に接続しないものとすることを選択させる（ステップＳ５８）。
【０１１４】
使用者の選択結果を判定し（ステップＳ５９）、接続しないことが選択された場合には、処理を終了し、歯車が１つ選択された場合には、選択された歯車７と移動した歯車７とを接続するものとして、選択された歯車７の角度及び回転速度に応じて、移動した歯車の角度と回転速度を後述するように自動的に設定する（ステップＳ６０）。
次ぎに、再び位置的に移動した歯車７に接続可能な歯車７の数が判定される（ステップＳ６１）。
接続可能な歯車７が０の場合に処理を終了し、１以上の場合には、後述する接続トポロジ的に接続可能な歯車の判定と判定結果の表示を行う（ステップＳ６２）。
次ぎに、位置的、かつ、接続トポロジ的に接続可能な歯車７の数を判定する（ステップＳ６３）。
【０１１５】
接続可能な歯車７が０の場合に処理を終了し、１以上の場合には、使用者に移動した歯車７に接続する１つ以上の歯車７を選択させるか、もしくは、移動した歯車７を他の歯車７に接続しないものとすることを選択させる（ステップＳ６４）。使用者の選択結果を判定し（ステップＳ６５）、接続しないことが選択された場合には、処理を終了し、歯車が１つ選択された場合には、選択された歯車７と移動した歯車７とを接続するものとして、移動した歯車の角度と回転速度を後述するように接続トポロジに応じて再帰的に自動的に設定する（ステップＳ６０）。なお、１つの歯車７が二つ以上の歯車７と接続可能な場合には、少なくとも接続可能な歯車の一方は、原車を有する歯車列に接続されていないことになる。また、１つの歯車７を二つ以上の歯車７に接続可能な場合には、１つの歯車７の角度と回転速度を一方の接続可能な歯車７に合わせた場合に、他方の接続可能な歯車７の角度と回転速度を移動した１つの歯車７に合わせる必要が生じる。
【０１１６】
従って、接続可能な二つ以上の歯車７が自由歯車か、もしくは原車を有する歯車列の歯車７か等を判定する必要がある。そして、原車を持たない歯車列の歯車７と、原車もしくは原車を有する歯車列７との両方に１つの歯車７を接続した場合には、原車を有する歯車列７の接続可能な歯車７側から移動した歯車７を経て原車を持たない歯車列の各歯車７において、歯車列の順に沿って、角度と回転速度とを再帰的に設定していく必要がある。
そして、移動した歯車７に接続可能な歯車７がなくなるまで、ステップＳ６１〜ステップＳ６６の処理を繰り返し行う。
【０１１７】
次ぎに、上述の処理における移動した歯車に対して位置的に接続可能な歯車があるかいなかの判定処理を図１９のフローチャートを参照して説明する。
ここで、移動された歯車（編集中の歯車）をｇiとし、歯車ｇiとの接続の可能性を判定される歯車をｇjとする。また、歯車ｇiのピッチ円半径をｒi、歯車ｇjのピッチ円半径をｒjとする。また、歯車ｇiの回転中心（ピッチ円８の中心）の座標を（ｘi、ｙi）とし、歯車ｇjの回転中心（ピッチ円８の中心）の座標を（ｘj、ｙj）とする。
そして、歯車７同士が噛み合って接続される場合には、噛み合う歯車７同士のピッチ円８が接している必要がある。従って、この場合に、互いに噛み合う歯車７の中心間の距離は、二つの歯車７のそれぞれのピッチ円８の半径の和となる。
【０１１８】
ここでは、キー入力部４の操作性等を考慮して、歯車ｇiの中心と歯車ｇjの中心との距離が半径ｒiと半径ｒjとの和と完全に一致しなくとも、ずれが許容範囲−ｄ、＋ｄ内であれば接続可能としている。
従って、図１９のフローチャートのステップＳ６７に示すように、歯車ｇiの中心と歯車ｇjの中心との距離が、二つの歯車の半径ｒiと半径ｒjとの和から許容範囲ｄを除算した距離以上で、二つの歯車の半径ｒiと半径ｒjとの和に許容範囲ｄを加算した距離より小さい場合に、歯車ｇiと歯車ｇjとを接続可能と判定する。
また、歯車ｇiと歯車ｇjの接続には、噛み合いの他に、同軸上で固着される歯車７があり、同軸の歯車７となるか否かは、歯車ｇiと歯車ｇjの中心位置が一致、すなわち、歯車ｇiの中心のｘｙ座標と歯車ｇjの中心のｘｙ座標とが一致した場合に接続可能と判定する（ステップＳ６７）。
【０１１９】
なお、歯車ｇiと接続可能な歯車は、複数あっても良いが、この場合に、複数の接続可能な歯車ｇjが両方とも原動歯車もしくは原動歯車を含む歯車列の歯車のいずれかの場合には、接続トポロジ的には両方同時に接続することはできない。また、歯車列が閉じた環状に接続されるような接続もできない。
そして、接合可能な歯車ｇjの判定が終了し、接続可能な歯車ｇjがある場合には、全ての接続可能な歯車ｇjに対して接続可能であることとを表示する（ステップＳ６８）。なお、この際の表示は、例えば、図５（Ｆ）に示すように、編集中の歯車７と接続可能な歯車７を囲む枠と、編集中の歯車７の中心と接続可能な歯車７の中心とを結ぶ線分を表示しても良い。
【０１２０】
また、二つ以上の歯車７を連続して生成した場合や、編集モードで歯車７の位置変更を行い、歯車７を他の歯車７と接続させるものとした場合には、接続される歯車７，７同士が同期して回転するように、接続先となる歯車に対して編集中の歯車７（生成もしくは位置変更された歯車７）の位相と角度と回転速度が自動で設定される。
図２０のフローチャートに示すように、編集中の歯車をｇi、接続相手となる歯車をｇjとする（ステップＳ７０）。
すなわち、歯車ｇiの接続先歯車Ｐｇiを歯車ｇjとし、接続先の歯車ｇjに接続される歯車の集合ＣＧjに歯車ｇiが含まれるものとする（ステップＳ７１）。
【０１２１】
そして、歯車ｇiと歯車ｇjとの接続関係が噛み合いによる接続か、同軸による接続かを判定する。例えば、歯車ｇiの中心座標と歯車ｇjの中心座標とが一致するか否かで、一致する場合に同軸による接続、一致しない場合に噛み合いによる接続と判定する（ステップＳ７２）。
そして、噛み合いによる接続の場合には、後述するように歯車ｇiの位相を歯車ｇjと噛み合うように設定し（ステップＳ７３）、次いで、歯車ｇiの速度と角度を歯車ｇjと噛み合うように設定する（ステップＳ７４）。
また、歯車ｇiと歯車ｇjとが同軸上の固着による接続の場合には、歯車ｇiの速度と角度を歯車ｇjと重なるように設定する（ステップＳ７５）。
【０１２２】
そして、歯車ｇiの位相を歯車ｇjと噛み合うように設定する場合には、図２１のフローチャートに示すように、ステップＳ７７に示す式から最少となるｋとｌを求める。
ここで、Ｘci,kとは、歯車ｇiの歯数をｃiとし、歯車ｇiの中心のｘ座標を０とした場合に、歯数ｃiの歯車ｇiのピッチ円８の円周上に上述のように等間隔に形成された仮想点Ｋのうちの基準点からｋ番目となる点のｘ座標もしくはその近似値を示し、Ｙci,kとは、歯車ｇiの歯数をｃiとし、歯車ｇiの中心のｙ座標を０とした場合に、歯数ｃiの歯車ｇiのピッチ円８の円周上に上述のように等間隔に形成された仮想点Ｋのうちの基準点からｋ番目となる点のｙ座標もしくはその近似値を示す。また、Ｘcj,lとは、歯車ｇjの歯数をｃjとし、歯車ｇjの中心のｘ座標を０とした場合に、歯数ｃjの歯車ｇiのピッチ円８の円周上に上述のように等間隔に形成された仮想点Ｋのうちの基準点からｌ番目となる点のｘ座標もしくはその近似値を示し、Ｙcj,lとは、歯車ｇjの歯数をｃjとし、歯車ｇjの中心のｙ座標を０とした場合に、歯数ｃjなる歯車ｇjのピッチ円８の円周上に上述のように等間隔に形成された仮想点Ｋのうちの基準点からｌ番目となる点のｙ座標もしくはその近似値を示す。
【０１２３】
なお、ｘｙ座標を（０，０）としたピッチ円８の円周上の各仮想点Ｋのｘｙ座標は、予め設定された複数の歯数ｃｏｇmの異なる歯車ｇm毎に求められて回転体画像表示プログラム用のデータとして記憶領域６に記憶されている。また、この例では、上述のように小数点以下の部分を含む数値は用いられず、整数、正の整数、自然数だけが用いられるので、予め設定された各点のｘｙ座標は、実際の座標値が小数点以下の部分を含む場合に、例えば、整数となるように近似させられている。すなわち、小数点以下を切り捨てるか切り上げるかした状態となっている。
そして、歯車ｇi（歯車ｇj）と同じ歯数ｃi（歯数ｃj）の歯車ｇmのピッチ円８の中心のｘｙ座標を０、０とした場合のピッチ円８の円周上の各仮想点Ｋのｘ座標に、歯車ｇi（歯車ｇj）のピッチ円８の中心のｘ座標を加算することで、歯車ｇi（歯車ｇj）のピッチ円８の円周上の各仮想点Ｋのｘ座標（近似値）を求めることができる。同様に、歯車ｇi（歯車ｇj）と同じ歯数ｃi（歯数ｃj）の歯車のピッチ円の中心のｘｙ座標を０、０とした場合のピッチ円８の円周上の各仮想点Ｋのｙ座標に、歯車ｇi（歯車ｇj）のピッチ円の中心のｙ座標を加算することで、歯車ｇi（歯車ｇj）のピッチ円の円周上の各仮想点Ｋのｙ座標（近似値）を求めることができる。
【０１２４】
ここで、ステップＳ７７の式は、歯車ｇiのピッチ円８の円周上の基準となる仮想点Ｋからｋ番目の点と、歯車ｇjのピッチ円８の円周上の規準となる仮想点Ｋからｌ番目の点との距離を求めるものである。従って、歯車ｇiのピッチ円８の円周上の複数の仮想点Ｋと、歯車ｇjのピッチ円８の円周上の複数の仮想点Ｋとの１対１の組合せの中で、互いに最も距離が短くなる仮想点Ｋの組合せを求めた場合に、ｋは求められた歯車ｇiの仮想点Ｋの基準となる仮想点Ｋからの連番の番号となり、ｌは求められた歯車ｇjの仮想点Ｋの基準となる仮想点Ｋからの連番の番号となる。なお、歯車ｇi及び歯車ｇjは、互いに噛み合い可能な距離にあることから、歯車ｇiのピッチ円８と歯車ｇjのピッチ円８とは接しており、上述のように求められた互いに最も近接する各歯車ｇi，ｇjの仮想点は、互いに接した状態の二つのピッチ円８の接点７１に最も近い点となる。
【０１２５】
そして、次ぎに編集モード開始時刻における位相がｐjの歯車ｇjに噛み合わせるための歯車ｇiの位相ｐiをステップ７８に示す式で求める。
なお、この際に、歯車ｇiの１つの歯分の所定角度を回転する１周期における位相は、互いに噛み合う歯車ｇi，ｇjにおいて、一方の歯車ｇiの歯同士の間の谷に、他方の歯車ｇjの歯が噛み合う状態（その逆も可）となるので互いに噛み合っている歯車ｇi，ｇjの場合に、位相が半周期分ずれるものとなる。
ここで、歯車ｘjの基準時刻ｔstiにおける位相（上述の編集モード開始時の処理に基づき、編集モード開始時の位相）をｐjとし、上述のように求められた連番ｌの仮想点Ｋにおける位相を、連番ｌを位相数（１周期分の画像データの数）ｐｈａｓｅで除算した際の剰余として求める。そして、基準時刻ｔstiの位相ｐjから連番ｌの仮想点の位相を除算することで、求められた仮想点Ｋに対する基準時刻ｔstiにおける位相のずれを求める。ここで、この位相のずれを歯車ｇiの求められた連番ｋから減算するとともに、これを位相数ｐｈａｓｅで除算して剰余を求めると、歯車ｇiと歯車ｇjの位相が一致することになり、このままでは、歯車ｇiの歯と歯車ｇjの歯とが重なった状態となる。そこで、位相数ｐｈａｓｅで除算する前に、連番Ｋから上述の位相のずれ量を除算するとともに、解像度の１／２（剰余が出る場合には、上述のガウス関数として小数点以下を切り捨てた数値とする）を足すことで、位相を半周期分ずらした値を歯車ｇiの基準時刻における位相ｐiとする。
【０１２６】
これにより、歯車ｇiと歯車ｇjとが噛み合うように、歯車ｇjの位相ｐjに対して歯車ｇiの位相ｐiが決定される。この状態で、歯車ｇi及び歯車ｇjのそれぞれの所定角度すなわち１周期分の回転移動が同じ時間で行われるものとすることで、噛み合った状態で回転しつづけることになる。
次ぎに、上述のように噛み合った歯車ｇi，ｇjが噛み合った状態を維持するように、図２２のフローチャートに示すように、歯車ｇiの速度と角度を歯車ｇjと噛み合うように設定する処理を行う。
まず、歯車ｇiの上述の通分用の値ｆiを歯車ｇjの通分用の値ｆjと同じにする。
また、歯車ｇiの回転速度の分子ｓiを歯車ｇjの回転速度の分子ｓjと等しくするとともに回転方向を逆とするためいにマイナスの値とする。
【０１２７】
ここで歯車ｇiと歯車ｇjの回転速度の分母ｂi、ｂjは、歯車ｇi，ｇjの歯数ｃi、ｃjに位相数ｐｈａｓｅを乗算した値である仮想点Ｋの総数ｒｓi、ｒｓjに通分用の値ｆi、ｆjを乗算したものとなり、ｆi＝ｆjとした場合に、歯車ｇiの回転速度の分母ｂiと歯車ｇjの回転速度の分母ｂjとの比は、歯車ｇiの歯数ｃiと歯車ｇjの歯数ｃjの比、すなわち、変速比と等しくなる。
また、歯車ｇiの回転速度の分子ｓiと歯車ｇjの回転速度の分子ｓjとは等しい（方向は逆）ので、歯車ｇiと歯車ｇjとは、回転の周速度が等しくなるとともに、１回転にかかる時間が変速比に応じて異なることになり、噛み合った歯車ｇi，ｇjに対応した回転速度で回転することになる。
また、ステップＳ８０の角度ａiを求める式に基づいて角度ａiを求める。すなわち、上述のように求められた歯車ｇjと噛み合う歯車ｇiの位相ｐiに基づいて歯車ｇiの角度ａiを求めることになる。この際には、歯車ｇiの回転速度及び回転角度を表す分数の分母ｂiが上述のように変更されているので、それに対応して噛み合う前の角度を変更する（すなわち、元の角度ａiに元の分母ｂiを乗算して新たな分母ｂiで除算する）とともに、角度を歯車ｇiの位相ｐｈａｓｅが０となるようする。そして、求められた位相０の角度に上述のように求められた位相ｐiに通分用の値ｆiを乗算した値（位相ｐiを分母ｂiに対応させたもの）を加算することで、上述のように歯車ｇiの角度ａiを歯車ｇjと噛み合う位相とする。この段階では、位相ｐｈａｓｅに対応する解像度レベル（ｒｅｓi）の位置合わせとなる。この段階までの調整では、噛み合った状態で、歯車ｇiと歯車ｇjとが表示されるが、歯車ｇiと歯車ｇjとで位相ｐｈａｓｅに対応する画像データの切り替えタイミングにずれが生じ、同じフレームで同時に画像データが切り替えられる可能性が低い。
そこで、さらに、解像度レベル（ｒｅｓi）に通分用の数値ｆiを乗算した回転角度の分母ｂiレベルとなる精度の角度合わせが必要であり、歯車ｇiと噛み合う歯車ｇjの回転角度ａjにおける分母ｂiレベルの角度合わせとして、歯車ｇjの回転角度ａjの現在の回転角度における解像度（位相）単位の回転角度からのずれ分を求め、それに対応して歯車ｇiの角度ａiをさらに微調整する。解像度単位の回転角度とは、回転角度を示す分子の分母ｂiに対して分子がｆiずつずれた角度である。従って、現在の歯車ｇjの回転角度を示す分数の分子ａjをｆjで除算して余りを求めることにより、歯車ｇjの回転角度ａjの解像度（位相）単位の回転角度からのずれ分を求めることができる。なお、ここでは、上述のように噛み合う条件として、歯車ｇiと歯車ｇjとは逆回転しているので、分母ｂiに対して１つの解像度分（１つの位相分）の分子の値（すなわち、ｆi）から、歯車ｇjの角度ａjを１つの解像度分の値ｆjで除算した余りの値を減算し、さらに１減算した値に基づいた微調整分を、上述のように位相０となる歯車ｇiの回転角度の値に噛み合う位相分の値（ｐi×ｆi）を加算した値にさらに加算する。これにより、歯車ｇjに噛み合う歯車ｇiの角度ａiと速度ｓiが決定され、歯車ｇjと歯車ｇiとが噛み合うように表示されるとともに、表示に際して歯車ｇjの画像データと歯車ｇiの画像データとの切り替えタイミングがほぼ同期した状態、すなわち、毎回、高い確率で同じフレームで歯車ｇiと歯車ｇjの画像データが切り替えられる状態となる。
また、ステップＳ５２の場合と同様に、開示時刻ｔedの前で開示時刻ｔedに最も近い描画開始時刻が求められ、求められた時刻が新しい基準時刻ｔstiとされる。そして、基準時刻ｔstiにおける基準角度ａstiが求められた角度ａiとされる（ステップＳ８０）。
【０１２８】
次ぎに、同軸上に固着されるように接続される歯車ｇiの速度と角度を接続先の歯車ｇjと重なるように設定する処理を、図２３のフローチャートを参照して説明する。
この場合は、基本的に歯車ｇjに針ｈiを取り付けた際とほぼ同様の処理が行われる。従って、歯車ｇiは、接続された歯車ｇjの回転に対応して同じ時間で一周回転するので、歯車ｇiの速度の分数ｓi／ｂiは、接続先の歯車ｇjの速度を表す分数ｓj／ｂjと等しくなる。すなわち、歯車ｇiの速度の分数の分子ｓiは、歯車ｇjの速度ｓjに歯車ｇiの歯数ｃiを乗算したものとされ、歯車ｇiの回転速度の分母ｂiの通分用の値ｆiは、接続先歯車ｇjの通分用の値ｆjに接続先歯車ｇjの歯数ｃjを乗算したものとされる。
さらに、編集中の歯車ｇiの速度ｓiと、通分用の値ｆiとの最大公約数をｎとした場合（公約数がある場合）に、ｓi及びｆiは、最大公約数で除算された値となる。すなわち、解像度ｒｓiが乗算されることにより回転速度の分数の分母となるｆiと、回転速度の分数の分子となるｓiとの間で約分が行われる。
【０１２９】
また、歯車ｇiの回転速度の分母ｂiは、上述のように変更された値ｆiに解像度ｒｓiを乗算したものとされる。
なお、上述の処理により、針ｈiの場合と同様に、歯車ｇiの回転速度と、接続先の歯車ｇjの回転速度とは等しくなるが、歯車ｇiと接続先の歯車ｇjとで歯数ｃi，ｃjが異なる場合に、アニメーション用の画像データの切り替わるタイミングが異なるものとなる。
また、ステップＳ８１の角度ａiを求める式に基づいて角度ａiを求める。この場合も、基本的には、上述の歯車に噛み合う歯車の角度を求めた場合と同様に、歯車ｇiの回転速度及び回転角度を表す分数の分母ｂiが上述のように変更されているので、それに対応して噛み合う前の角度を変更する（すなわち、元の角度ａiに元の分母ｂiを乗算して新たな分母ｂiで除算する）とともに、角度を歯車ｇiの位相ｐｈａｓｅが０となるようする。そして、求められた位相０の角度に元の位相ｐiに通分用の値ｆiを乗算した値（位相ｐiを分母ｂiに対応させたもの）を加算することで、位相レベルの角度が決定される。さらに、解像度レベル（ｒｅｓi）に通分用の数値ｆiを乗算した回転角度の分母ｂiレベルとなる精度の角度合わせとして、歯車ｇiの回転角度ａiの現在の角度における解像度（位相）単位の回転角度からのずれ分を求め、求められたずれ分の値を上述の位相レベルの角度に加算する。なお、同軸で回転する二つの歯車は、回転速度さえ一致していれば良く、元々の角度ａiを新しい分母ｂi（すなわちｆi）に対応して変換して整数にしたものを用いれば良い。
また、ステップＳ５２の場合と同様に、開示時刻ｔedの前で開示時刻ｔedに最も近い描画開始時刻が求められ、求められた時刻が新しい基準時刻ｔstiとされる。そして、基準時刻ｔstiにおける基準角度ａstiが求められた角度ａiとされる（ステップＳ８１）。
【０１３０】
また、上述の接続トポロジ的に接続可能な歯車の判定と表示の処理は、図２４のフローチャートに示すように、歯車ｇiに位置的に接続可能な歯車ｇjのうちのステップＳ８２に示す条件を満たす歯車ｇjを除くことにより、位置的及び接続トポロジ的に接続可能な歯車ｈjを求めることができる（ステップＳ８２）。なお、ここで、編集中の歯車ｇiと、接続される歯車ｇjとは異なるものである。さらに、ｇｒｏｏｔiは、編集中の歯車ｇiが属する歯車列において、噛み合いの接続関係を歯車ｇiから双方向に接続関係を辿れる全ての歯車（歯車と針の組合せを含む）のうち、接続先（駆動源に対して上流側となる歯車）が無い唯一の歯車を示すものである。
また、ｇｒｏｏｔjは、編集中の歯車ｇiに接続される歯車ｇjが属する歯車列において、噛み合いの接続関係を歯車ｇjから双方向に接続関係を辿れる全ての歯車（歯車と針の組合せを含む）のうち、接続先（駆動源に対して上流側となる歯車）が無い唯一の歯車を示すものである。
そして、接続トポロジ的に接続不可能な歯車と歯車とは、ｇｒｏｏｔiとｇｒｏｏｔjとが一致する場合と、歯車ｇiの速度ｓiと歯車ｇjの速度ｓjとが両方とも０以外である場合である。すなわち、１つの歯車に二つの歯車から駆動力が伝達されるような接続ができないとともに、歯車列を環状に閉じたい状態に接続することができない。
そして、歯車ｇiに位置的に接続可能な全ての歯車ｇjにおいて、接続の可能性を表示する（ステップＳ８３）。
【０１３１】
また、上述の接続トポロジに応じて歯車の角度と回転速度を再帰的に自動設定する処理は、図２５のフローチャートに示すように、編集中の歯車をｇi、接続相手の歯車をｇjとする（ステップＳ８５）。
次ぎに、接続先の歯車ｇjの速度ｓjが０か否かを判定する（ステップＳ８６）。
ここでは、既に、図１８のフローチャートに示すように、編集中の歯車ｇiが他の歯車７と接続されているので、歯車ｇiの速度ｓiが０でない可能性があるが、歯車ｇjの速度ｓjが０でない場合に、接続トポロジ的に歯車ｇiと歯車ｇjとが接続可能と判定されていることから、歯車ｇiの速度ｓiは０となる。従って、歯車ｇiを歯車ｇjを接続元とする集合ＣＧjの要素とする（ステップＳ８７）。
そして、後述するように歯車ｇiを歯車ｇjに再帰的に接続する（ステップＳ８８）。
【０１３２】
また、歯車ｇjの速度ｓjが０の場合は、歯車ｇjを歯車ｇiを接続元とする集合ＣＧiの要素とする（ステップＳ８９）。
そして、後述するように歯車ｇjを歯車ｇiに再帰的に接続する（ステップＳ９０）。
ここで、歯車ｇiを歯車ｇjに再帰的に接続する方法と、歯車ｇjを歯車ｇiに再帰的に接続する方法とは、基本的に同じなので、以下に、図２６のフローチャートを参照して、歯車ｇiを歯車ｇjに再帰的に接続する方法を説明する。
まず、歯車ｇiの接続先が設定済みでかつ歯車ｇiの接続先が歯車ｇjでないか否かを判定する（ステップＳ９１）。
【０１３３】
歯車ｇiの接続先が設定済みでかつ歯車ｇiの接続先が歯車ｇjでないが真でない場合には、歯車ｇiの接続先歯車Ｐgiを歯車ｇjとする（ステップＳ９３）。
また、歯車ｇiの接続先が設定済みでかつ歯車ｇiの接続先が歯車ｇjでないが真の場合には、歯車ｇjを接続元とする集合ＣＧjに、歯車ｇiの接続先の歯車を設定する。すなわち、編集中の歯車ｇiは、既に歯車ｇj以外の歯車ｇkと接続されており、歯車ｇiに接続された歯車ｇkを歯車ｇjを接続元とする集合ＣＧjの要素とする（ステップＳ９２）。
この場合も、歯車ｇiの接続先を歯車ｇjとする。
次ぎに、歯車ｇiの回転中心と歯車ｇjの回転中心とが一致するか否かを判定する（ステップＳ９４）。
【０１３４】
一致しない場合に噛み合いによる接続と判定し、噛み合いによる接続の場合には、上述のように歯車ｇiの位相を歯車ｇjと噛み合うように設定し（ステップＳ９５）、次いで、歯車ｇiの速度と角度を歯車ｇjと噛み合うように設定する（ステップＳ９６）。歯車ｇiの回転中心と歯車ｇjの回転中心とが一致する場合には、歯車ｇiと歯車ｇjとが同軸上の固着による接続と判定し、歯車ｇiの速度と角度を歯車ｇjと重なるように設定する（ステップＳ９７）。
次ぎに、歯車ｇjが歯車ｇiを接続元とする集合ＣＧiに属するか否かを判定する（ステップＳ９８）。
【０１３５】
そして、歯車ｇjが集合ＣＧiに属さない場合に、集合ＣＧiに属す全ての歯車ｇkについて以下の処理を実行し、歯車ｇjが集合ＣＧiに属す場合に、歯車ｇjを集合ＣＧiから削除し（ステップＳ９９）、集合ＣＧiに属す全ての歯車ｇkについて以下の処理を実行する（ステップＳ１００）。なお、集合ＣＧiに属す全ての歯車ｇkについて以下の処理を実行した場合には、処理を終了する（ステップＳ１０１）。
集合ＣＧiに含まれる歯車ｇkを順次たどって再帰的に歯車ｇiの歯車列として接続していく（ステップＳ１０２）。
以上のような処理によれば、例えば、先に歯車ｇiを接続された歯車ｇkの歯車列には、原車がなく、歯車ｇkより後に歯車ｇiを接続した歯車ｇjが属する歯車列には原車が配置されているような場合に、先に歯車ｇiに接続された歯車ｇkの歯車列と歯車ｇiを、原車がある歯車列の歯車ｇjから順次辿って、歯車ｇkの歯車列、歯車ｇi、歯車ｇjの歯車列を１つの歯車列として接続することが可能となる。
【０１３６】
以上のような本実施形態の回転体画像表示装置及び回転体画像表示プログラムによれば、三角関数や浮動小数点演算等の演算処理が制限されるような携帯電話１等の携帯端末において、回転する歯車の画像を表示画面上に任意に配置して、複数の歯車を噛み合わせたり、同軸上に固着したりして、歯車列を構成して、回転する歯車による多彩の表現を可能とすることができる。すなわち、携帯電話１に優れたコンテンツを提供することができる。また、回転画像表示プログラムや、該プログラムで使用されるデータ等を最低限のものとして、携帯電話１の記憶容量に余裕を与えるとともに、回転画像表示プログラムをインターネット上のコンテンツとしてダウンロードする場合などの通信経費を削減することができる。
【図面の簡単な説明】
【０１３７】
【図１】本発明の実施形態の回転体画像表示装置となる携帯電話を示すブロック図である。
【図２】前記携帯電話の表示画面に回転体画像表示プログラムに基づいて表示される回転体としての歯車と、歯車の噛み合いとピッチ円を説明するための図面である。
【図３】前記携帯電話の記憶領域に記憶される歯車のアニメーション用の画像データを示すものである。
【図４】前記歯車のピッチ円の円周上に配置された仮想点を説明するための図面である。
【図５】携帯電話上で回転画像表示プログラムを実行した場合の表示と操作を説明するための図面である。
【図６】歯車・針の前後配置の決定作業の処理を説明するためのフローチャートである。
【図７】歯車の色の決定作業の処理を説明するためのフローチャートである。
【図８】針の色・形状決定作業の処理を説明するためのフローチャートである。
【図９】歯車の回転速度決定作業の処理を説明するためのフローチャートである。
【図１０】針の角度決定作業の処理を説明するためのフローチャートである。
【図１１】背景色の決定作業の処理を説明するためのフローチャートである。
【図１２】歯車・針の実行表示の処理を説明するためのフローチャートである。
【図１３】歯車・針のセットの更新の処理を説明するためのフローチャートである。
【図１４】歯車・針のセットの描画の処理を説明するためのフローチャートである。
【図１５】歯車の生成の処理を説明するためのフローチャートである。
【図１６】針の生成の処理を説明するためのフローチャートである。
【図１７】編集モードの開始の処理を説明するためのフローチャートである。
【図１８】歯車の接続可能性の判定の処理を説明するためのフローチャートである。
【図１９】位置的に接続可能な歯車の判定と表示の処理を説明するためのフローチャートである。
【図２０】歯車の角度と回転速度を自動設定する処理を説明するためのフローチャートである。
【図２１】互いに噛み合う歯車の位相を合うように設定する処理を説明するためのフローチャートである。
【図２２】互いに噛み合う歯車の速度と角度とを合うように設定する処理を説明するためのフローチャートである。
【図２３】同軸上に配置される歯車同士の速度と角度を合わせるように設定する処理を説明するためのフローチャートである。
【図２４】接続トポロジ的に接続可能な歯車の判定の処理を説明するためのフローチャートである。
【図２５】接続トポロジに応じて歯車の角度と回転速度を再帰的に自動設定する処理を説明するためのフローチャートである。
【図２６】歯車を再帰的に接続する処理を説明するためのフローチャートである。
【符号の説明】
【０１３８】
２        表示部
３        計算処理部（表示制御手段）
４        キー入力部
５        ネットワーク通信部
６        記憶領域（記憶手段、円周座標記憶手段）
７        歯車（回転体）
８        ピッチ円
Ｋ        仮想点
ｒａｄ    半径
【図１】
2005242456.tif 000003
【図２】
2005242456.tif 000004
【図３】
2005242456.tif 000005
【図４】
2005242456.tif 000006
【図５】
2005242456.tif 000007
【図６】
2005242456.tif 000008
【図７】
2005242456.tif 000009
【図８】
2005242456.tif 000010
【図９】
2005242456.tif 000011
【図１０】
2005242456.tif 000012
【図１１】
2005242456.tif 000013
【図１２】
2005242456.tif 000014
【図１３】
2005242456.tif 000015
【図１４】
2005242456.tif 000016
【図１５】
2005242456.tif 000017
【図１６】
2005242456.tif 000018
【図１７】
2005242456.tif 000019
【図１８】
2005242456.tif 000020
【図１９】
2005242456.tif 000021
【図２０】
2005242456.tif 000022
【図２１】
2005242456.tif 000023
【図２２】
2005242456.tif 000024
【図２３】
2005242456.tif 000025
【図２４】
2005242456.tif 000026
【図２５】
2005242456.tif 000027
【図２６】
2005242456.tif 000028