IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノンマーケティングジャパン株式会社の特許一覧 ▶ エーアンドエー株式会社の特許一覧

特開2023-93297電子機器、電子機器の制御方法、及びプログラム
<>
  • 特開-電子機器、電子機器の制御方法、及びプログラム 図1
  • 特開-電子機器、電子機器の制御方法、及びプログラム 図2
  • 特開-電子機器、電子機器の制御方法、及びプログラム 図3
  • 特開-電子機器、電子機器の制御方法、及びプログラム 図4
  • 特開-電子機器、電子機器の制御方法、及びプログラム 図5
  • 特開-電子機器、電子機器の制御方法、及びプログラム 図6
  • 特開-電子機器、電子機器の制御方法、及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023093297
(43)【公開日】2023-07-04
(54)【発明の名称】電子機器、電子機器の制御方法、及びプログラム
(51)【国際特許分類】
   G06F 30/20 20200101AFI20230627BHJP
   G06F 30/12 20200101ALI20230627BHJP
   G06F 3/0484 20220101ALI20230627BHJP
【FI】
G06F30/20
G06F30/12
G06F3/0484
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2022104947
(22)【出願日】2022-06-29
(62)【分割の表示】P 2021208595の分割
【原出願日】2021-12-22
(71)【出願人】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(71)【出願人】
【識別番号】501065122
【氏名又は名称】エーアンドエー株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】木原 和信
【テーマコード(参考)】
5B146
5E555
【Fターム(参考)】
5B146AA04
5B146DG02
5B146DG05
5B146DJ11
5E555AA79
5E555BA02
5E555BA70
5E555BB02
5E555BC21
5E555CA02
5E555CB05
5E555CB32
5E555CB46
5E555CC27
5E555DB11
5E555DB56
5E555DC24
(57)【要約】
【課題】移動オブジェクトが曲がって移動すべき箇所に、複数の目的地オブジェクトをより操作性良く配置することができるようになる技術を提供する。
【解決手段】電子機器は、移動オブジェクトと、前記移動オブジェクトの移動の目的地となる目的地オブジェクトとを表示手段に表示するように制御する表示制御手段と、前記目的地オブジェクトを複製元オブジェクトとして選択する選択手段と、第1の位置を指定する操作を受け付ける受付手段と、前記選択手段で選択された複製元オブジェクトに対して、前記指定された第1の位置を基準として回転した向きと位置関係で、前記複製元オブジェクトを複製した複数の複製オブジェクトを配置するように制御する制御手段とを有する。
【選択図】図6
【特許請求の範囲】
【請求項1】
移動オブジェクトと、前記移動オブジェクトの移動の目的地となる目的地オブジェクトとを表示手段に表示するように制御する表示制御手段と、
前記目的地オブジェクトを複製元オブジェクトとして選択する選択手段と、
第1の位置を指定する操作を受け付ける受付手段と、
前記選択手段で選択された複製元オブジェクトに対して、前記指定された第1の位置を基準として回転した向きと位置関係で、前記複製元オブジェクトを複製した複数の複製オブジェクトを配置するように制御する制御手段と
を有することを特徴とする電子機器。
【請求項2】
前記受付手段は、さらに第2の位置と第3の位置を指定する操作を受け付け、
前記制御手段は、前記第1の位置と前記第2の位置に基づく直線と、前記第1の位置と前記第3の位置に基づく直線とのなす角を角度範囲として前記複数の複製オブジェクトを配置するように制御することを特徴とする請求項1に記載の電子機器。
【請求項3】
前記制御手段は、前記第3の位置の指定を受け付ける前に、前記第1の位置と前記第2の位置に基づく直線と、前記第1の位置と現在のポインティング位置とのなす角を角度範囲として、前記複数の複製オブジェクトの配置をプレビュー表示するように制御することを特徴とする請求項2に記載の電子機器。
【請求項4】
ユーザ操作に基づいて指定角度を設定する設定手段をさらに有し、
前記制御手段は、前記角度範囲に、前記指定角度に基づく間隔で前記複数の複製オブジェクトを配置するように制御することを特徴とする請求項2又は3に記載の電子機器。
【請求項5】
前記制御手段は、前記角度範囲を前記指定角度で除算して得られる整数の商と剰余のうちの前記整数の商の数の前記複製オブジェクトを、前記指定角度以上の角度であって、前記角度範囲を前記整数の商の数で除算した結果に基づく角度毎に1つ配置するように制御することを特徴とする請求項4に記載の電子機器。
【請求項6】
前記制御手段は、前記角度範囲を前記指定角度で除算して得られる整数の商と剰余のうちの前記整数の商の数の前記複製オブジェクトを、前記指定角度毎に1つ配置するように制御することを特徴とする請求項4に記載の電子機器。
【請求項7】
前記制御手段は、さらに、前記複数の複製オブジェクトを、ユーザにより指定されたオブジェクトの枠の形状に沿ってトリミングし、前記複数の複製オブジェクトのうちの前記枠の外側部分を削除して内側部分が残るように制御することを特徴とする請求項1乃至6のいずれか1項に記載の電子機器。
【請求項8】
前記制御手段は、前記第1の位置から前記第2の位置へ向かう半直線と、前記第1の位置から前記第3の位置へ向かう半直線とがなす角のうち、正の角と負の角のいずれの角度を前記角度範囲とするかを、ユーザ設定に基づいて切り替えることを特徴とする請求項2乃至6のいずれか1項に記載の電子機器。
【請求項9】
前記複数の複製オブジェクトのそれぞれに対して、前記複製元オブジェクトに近い方から順に前記移動オブジェクトが移動するように、移動の順序情報を関連付けて記憶する処理を行う処理手段をさらに有することを特徴とする請求項1乃至8のいずれか1項に記載の電子機器。
【請求項10】
移動オブジェクトと、前記移動オブジェクトの移動の目的地となる目的地オブジェクトとを表示手段に表示するように制御する表示制御手段と、
前記目的地オブジェクトを複製元オブジェクトとして複製して複数の複製オブジェクトを配置するように制御する制御手段と、
前記複数の複製オブジェクトのそれぞれに対して、前記複製元オブジェクトに近い方から順に前記移動オブジェクトが移動するように、移動の順序情報を関連付けて記憶する処理を行う処理手段と
を有することを特徴とする電子機器。
【請求項11】
前記移動オブジェクトと前記目的地オブジェクトは、図面上におけるオブジェクトであることを特徴とする請求項1乃至10のいずれか1項に記載の電子機器。
【請求項12】
前記図面は、CADソフトで作成される図面であることを特徴とする請求項11に記載の電子機器。
【請求項13】
前記制御手段は、前記移動オブジェクトが前記複数の複製オブジェクトのそれぞれを順に目的地として移動するシミュレーションを行うことを特徴とする請求項1乃至12のいずれか1項に記載の電子機器。
【請求項14】
移動オブジェクトと、前記移動オブジェクトの移動の目的地となる目的地オブジェクトとを表示手段に表示するように制御する表示制御ステップと、
前記目的地オブジェクトを複製元オブジェクトとして選択する選択ステップと、
第1の位置を指定する操作を受け付ける受付ステップと、
前記選択ステップで選択された複製元オブジェクトに対して、前記指定された第1の位置を基準として回転した向きと位置関係で、前記複製元オブジェクトを複製した複数の複製オブジェクトを配置するように制御する制御ステップと
を有することを特徴とする電子機器の制御方法。
【請求項15】
移動オブジェクトと、前記移動オブジェクトの移動の目的地となる目的地オブジェクトとを表示手段に表示するように制御する表示制御ステップと、
前記目的地オブジェクトを複製元オブジェクトとして複製して複数の複製オブジェクトを配置するように制御する制御ステップと、
前記複数の複製オブジェクトのそれぞれに対して、前記複製元オブジェクトに近い方から順に前記移動オブジェクトが移動するように、移動の順序情報を関連付けて記憶する処理を行う処理ステップと
を有することを特徴とする電子機器の制御方法。
【請求項16】
コンピュータを、請求項1乃至13のいずれか1項に記載された電子機器の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
電子機器、その制御方法、及びプログラムに関し、特に、移動オブジェクトを目的地に向かって移動させる制御のための技術に関する。
【背景技術】
【0002】
近年、建築物内にいる人の移動のシミュレーションや、コンサート会場などのイベントに来場した人の移動のシミュレーションを、建築物のCAD(Computer-Aided Design)データの図面上で人を示す移動オブジェクトを移動させて行う仕組みが存在する。特許文献1には、オブジェクトが複数の図面上を移動するシミュレーションを実行可能な情報処理装置において、複数の図面間をオブジェクトが移動可能に接続するための移動領域の対応関係を識別可能に表示することが提案されている。
【0003】
一方、矩形や円などの図形を複製して貼り付けることで、複数の図形を組み合わせて様々なイラストなどを作成する技術が知られている。特許文献2には、図形データを複製して新たな図形を発生させる際に、図形のデータや複製の間隔等を順次変化させながら複製を行うことが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2019-12430号公報
【特許文献2】特開平8-202865号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
人の移動をシミュレーションする場合に、人間が曲がり角を曲がる際に直角に曲がることは不自然である。これに対し、移動オブジェクトの移動先(目的地)となる目的地オブジェクトを、1つの曲がり角に対して、ある程度の角度毎に複数配置させることによって、人の動きを表す移動オブジェクトが弧を描いて曲がり角を曲がる動きを再現することができる。しかし、従来は、1つの曲がり角に対して複数の目的地オブジェクトを配置する操作は煩雑であるという問題があった。例えば、オブジェクトを1つ1つ複製する操作が手間である、曲がり角に対して適切な角度や間隔で配置する操作が手間である、配置した複数の目的地オブジェクトを順に辿るように目的地番号を付与する操作が手間である、配置した複数の目的地オブジェクトを図面に合わせた適切な形状とするのが手間である、といった問題があった。
【0006】
そこで本発明は、上記課題の少なくとも1つに鑑み、移動オブジェクトが曲がって移動すべき箇所に、複数の目的地オブジェクトをより操作性良く配置することができるようになる技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の電子機器は、移動オブジェクトと、前記移動オブジェクトの移動の目的地となる目的地オブジェクトとを表示手段に表示するように制御する表示制御手段と、前記目的地オブジェクトを複製元オブジェクトとして選択する選択手段と、第1の位置を指定する操作を受け付ける受付手段と、前記選択手段で選択された複製元オブジェクトに対して、前記指定された第1の位置を基準として回転した向きと位置関係で、前記複製元オブジェクトを複製した複数の複製オブジェクトを配置するように制御する制御手段とを有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、移動オブジェクトが曲がって移動すべき箇所に、複数の目的地オブジェクトをより操作性良く配置することができる。
【図面の簡単な説明】
【0009】
図1】電子機器の構成の一例を示す図である。
図2】電子機器の制御方法の一例を示すフローチャートである。
図3】オブジェクトを含む図面を示す図である。
図4】プロペラ複製処理を説明するための図である。
図5】移動オブジェクトの移動経路を示す図である。
図6】プロペラ複製処理を示すフローチャートである。
図7】プロペラ複製処理を説明するための図である。
【発明を実施するための形態】
【0010】
図1に、本発明を適用可能な装置の一例としての電子機器100の構成の一例を示す。電子機器100は、パーソナルコンピュータ(以下、PC)などを用いて構成可能なものである。
【0011】
図1において、内部バス150に対してCPU101、メモリ102、不揮発性メモリ103、画像処理部104、ディスプレイ105、操作部106、記録媒体I/F107、外部I/F109、通信I/F110、カメラ部112が接続されている。内部バス150に接続される各部は、内部バス150を介して互いにデータのやりとりを行うことができるようにされている。
【0012】
メモリ102は、例えばRAM(半導体素子を利用した揮発性のメモリなど)からなる。CPU101は、例えば不揮発性メモリ103に格納されるプログラムに従い、メモリ102をワークメモリとして用いて、電子機器100の各部を制御する。不揮発性メモリ103には、画像データや音声データ、その他のデータ、CPU101が動作するための各種プログラムなどが格納される。不揮発性メモリ103は、例えばハードディスク(HD)やROMなどで構成される。
【0013】
画像処理部104は、CPU101の制御に基づいて、不揮発性メモリ103や記録媒体108に格納された画像データや、外部I/F109を介して取得した映像信号、通信I/F110を介して取得した画像データ、撮像された画像などに対して各種画像処理を施す。画像処理部104が行う画像処理には、A/D変換処理、D/A変換処理、画像データの符号化処理、圧縮処理、デコード処理、拡大/縮小処理(リサイズ)、ノイズ低減処理、色変換処理などが含まれる。画像処理部104は、特定の画像処理を施すための専用の回路ブロックで構成しても良い。また、画像処理の種別によっては、画像処理部104を用いずに、CPU101がプログラムに従って画像処理を施すことも可能である。
【0014】
ディスプレイ105は、CPU101の制御に基づいて、画像やGUI(Graphical User Interface)を構成するGUI画面などを表示する。CPU101は、プログラムに従い表示制御信号を生成し、ディスプレイ105に表示するための映像信号を生成してディスプレイ105に出力するように、電子機器100の各部を制御する。ディスプレイ105は、出力された映像信号に基づいて映像を表示する。なお、電子機器100自体が備える構成としては、ディスプレイ105に表示させるための映像信号を出力するためのインターフェースまでとし、ディスプレイ105は、外付けのモニタ(テレビなど)で構成してもよい。
【0015】
操作部106は、キーボードなどの文字情報入力デバイスや、マウスやタッチパネルといったポインティングデバイス、ボタン、ダイヤル、ジョイスティック、タッチセンサ、タッチパッドなどを含む、ユーザ操作を受け付けるための入力デバイスである。なお、タッチパネルは、ディスプレイ105に重ね合わせて平面的に構成され、接触された位置に応じた座標情報が出力されるようにした入力デバイスである。
【0016】
記録媒体I/F107は、メモリーカードやCD、DVDといった記録媒体108が装着可能とされ、CPU101の制御に基づき、装着された記録媒体108からのデータの読み出しや、当該記録媒体108に対するデータの書き込みを行う。外部I/F109は、外部機器と有線ケーブルや無線によって接続し、映像信号や音声信号の入出力を行うためのインターフェースである。通信I/F110は、外部機器やインターネット111などと通信して、ファイルやコマンドなどの各種データの送受信を行うためのインターフェースである。
【0017】
カメラ部112は、光学像を電気信号に変換するCCDやCMOS素子等で構成される撮像素子(撮像センサ)等で構成されるカメラユニットである。カメラ部112には、ズームレンズやフォーカスレンズを含むレンズ群(撮影レンズ)、絞り機能を備えるシャッタ、撮像素子、撮像素子から出力されるアナログ信号をデジタル信号に変換するA/D変換器、撮像系を覆って汚れや破損を防止するバリアを含む。画像処理部104は、カメラ部112で撮像して取得したデータに対し、所定の画素補間、縮小といったリサイズ処理や色変換処理を行う。画像処理部104により得られた演算結果に基づいて、CPU101が露光制御、測距制御、AWB(オートホワイトバランス)処理を行う。カメラ部112で撮像され、画像処理部104で画像処理された表示用の画像データは、ディスプレイ105により表示される。カメラ部112で撮像され、A/D変換器によって一度A/D変換され、メモリ102に蓄積されたデジタル信号をD/A変換器でアナログ変換し、ディスプレイ105に逐次転送して表示することで、ライブビュー表示(LV表示)を行える。ライブビューは、静止画の撮影待機状態、動画の撮影待機状態、動画の記録時に表示可能であり、撮像された被写体像がほぼリアルタイムに表示される。CPU101は、操作部106で行われたユーザ操作に基づく撮影準備指示に応じて、AF(オートフォーカス)処理、AE(自動露出)処理、AWB処理等の動作を開始するように、カメラ部112と画像処理部104を制御する。CPU101は、撮影指示に応じて、本露光して撮像素子からの信号を読み出し、撮像された画像を画像処理部104で画像処理して画像ファイルを生成し、記録媒体108に記録するまでの一連の撮影処理(本撮影)の動作を開始ように制御する。撮影指示は、操作部106に対するユーザ操作によって行うことができる。カメラ部112は、静止画及び動画の撮影が可能である。
【0018】
図2は、電子機器100の制御方法の一例を示すフローチャートである。このフローチャートおける各処理は、CPU101が不揮発性メモリ103に格納されたプログラムをメモリ102に展開して実行することにより実現される。図2の処理を実行可能なCADのソフトウェアの起動指示があると図2の処理か開始される。
【0019】
ステップS201では、CPU101は、ディスプレイ105に対して、初期表示を行うように制御する。
【0020】
ステップS202では、CPU101は、ユーザの操作部106の操作に応じて、ファイルを開くための指示が行われたか否かを判定する。ファイルは、例えば、図3(a)に示すように、図面301のファイルである。図面301は、例えば、CADソフトで作成された図面であり、階段303~305と、踊り場306を有する。さらに、図面301は、移動オブジェクト311~313と、障害物オブジェクト302を有する。移動オブジェクト311~313は、例えば、人オブジェクトである。障害物オブジェクト302は、例えば、机オブジェクトである。階段303は、移動オブジェクト311~313が踊り場306に降りるための階段である。階段304は、移動オブジェクト311~313が踊り場306から下の階に降りるための階段である。階段305は、移動オブジェクト311~313が上の階に昇るための階段である。
【0021】
ファイルを開くための指示が行われた場合には、処理はステップS203に進み、ファイルを開くための指示が行われていない場合には、処理はステップS204に進む。
【0022】
ステップS203では、CPU101は、指示された図面のファイルを不揮発性メモリ103から読み込み、読み込んだファイルの図面をディスプレイ105に表示するように制御する。ディスプレイ105は、例えば、図3(a)の図面301を含むウィンドウを表示する。その後、処理はステップS202に戻る。
【0023】
ステップS204では、CPU101は、ユーザの操作部106の操作に応じて、オブジェクトの配置操作が行われたか否かを判定する。オブジェクトは、例えば、図3(b)の障害物オブジェクト302、移動オブジェクト311~313、又は目的地オブジェクト341,351である。例えば、図3(a)の図面301に対して、図3(b)のオブジェクト341及び351の配置操作が行われる。オブジェクトの配置操作が行われた場合には、処理はステップS205に進み、オブジェクトの配置操作が行われていない場合には、処理はステップS206に進む。
【0024】
ステップS205では、CPU101は、ユーザの操作部106の操作に応じて、オブジェクトを図面上に配置し、オブジェクトが配置された図面をディスプレイ105に表示するように制御する。例えば、CPU101は、図3(b)のオブジェクト341及び351を図面301上に配置し、種別の特定されていない(あるいは初期値の所定種別の)オブジェクト341及び351が配置された図面301をディスプレイ105に表示するように制御する。その後、処理はステップS201に戻る。
【0025】
ステップS206では、CPU101は、ユーザの操作部106の操作に応じて、図面上のオブジェクトが選択されたか否かを判定する。例えば、図3(b)の図面301上の種別の特定されていないオブジェクト341が選択される。図面上のオブジェクトが選択された場合には、処理はステップS207に進み、図面上のオブジェクトが選択されていない場合には、処理はステップS214に進む。
【0026】
ステップS207では、CPU101は、ユーザの操作部106の操作に応じて、選択されたオブジェクトを目的地オブジェクト(目的地図形)に変換する指示がされたか否かを判定する。例えば、CPU101は、ディスプレイ105に対して、図3(a)及び(b)のメニュー321を表示するように制御する。上記の指示は、ユーザがメニュー321内の目的地オブジェクト(目的地図形)323を選択することにより、行われる。選択されたオブジェクトを目的地オブジェクト(目的地図形)に変換する指示がされた場合には、処理はステップS209に進み、選択されたオブジェクトを目的地オブジェクト(目的地図形)に変換する指示がされていない場合には、処理はステップS208に進む。
【0027】
ステップS209では、CPU101は、ディスプレイ105に対して、図3(b)の設定ダイアログ330を表示するように制御する。設定ダイアログ330は、「目的地番号」と「次の目的地」を含む。例えば、移動オブジェクト313が、まず、目的地オブジェクト341に向かって移動し、その後、目的地オブジェクト351に向かって移動するように設定することができる。
【0028】
例えば、オブジェクト341が選択されている場合、「目的地番号」は、オブジェクト341の目的地番号であり、「次の目的地」は、次の目的地オブジェクト351の番号である。
【0029】
次に、ステップS210では、CPU101は、ユーザの操作部106の操作に応じて、設定ダイアログ330の設定変更操作が行われたか否かを判定する。設定ダイアログ330の設定変更操作が行われた場合には、処理はステップS211に進み、設定ダイアログ330の設定変更操作が行われていない場合には、処理はステップS212に進む。
【0030】
ステップS211では、CPU101は、ユーザの操作部106の操作に応じて、設定ダイアログ330の設定変更を行う。例えば、CPU101は、オブジェクト341が選択されている場合、「目的地番号」に1を設定し、「次の目的地」に100を設定することができる。また、CPU101は、オブジェクト351が選択されている場合、「目的地番号」に100を設定し、「次の目的地」に200を設定することができる。その後、処理はステップS212に進む。
【0031】
ステップS212では、CPU101は、ユーザの操作部106の操作に応じて、OKボタンがクリックされたか否かを判定する。OKボタンがクリックされた場合には、処理はステップS213に進み、OKボタンがクリックされていない場合には、処理はステップS210に戻る。
【0032】
ステップS213では、CPU101は、ステップS211での設定を判定して、ステップS206で選択したオブジェクトを、目的地オブジェクト(目的地図形)に変換する。例えば、CPU101は、種別の特定されていなかったオブジェクト341及び351の種別を目的地オブジェクト(目的地図形)に変換する。その後、処理はステップ202に戻る。これによってオブジェクトの表示形態も、種別未特定に対応する表示形態から、目的地オブジェクトに対応する表示形態となり、目的地オブジェクトであることが識別可能な見た目になる。
【0033】
ステップS208では、CPU101は、選択されたオブジェクトに対して、ユーザの操作に応じたその他の処理を行う。例えば、CPU101は、選択したオブジェクトを移動オブジェクト311~313のような移動オブジェクト(ひと図形)に変換したり、選択したオブジェクトをオブジェクト302のような障害物オブジェクト(障害物図形)に変換する。その後、処理はステップS202に戻る。
【0034】
ステップS214では、CPU101は、ユーザの操作部106の操作に応じて、図面301上の目的地オブジェクト(目的地図形)(例えば図3(b)のオブジェクト341や351)が選択されたか否かを判定する。目的地オブジェクトが選択された場合には、処理はステップS215に進み、目的地オブジェクトが選択されていない場合には、処理はステップS218に進む。
【0035】
ステップS215では、CPU101は、ユーザの操作部106の操作に応じて、メニュー321に含まれる複数のメニュー項目のうち、プロペラ複製322(プロペラ複製を指示するためのメニュー項目)が選択されたか否かを判定する。プロペラ複製322が選択された場合には、処理はステップS216に進み、プロペラ複製322が選択されていない場合には、処理はステップS217に進む。プロペラ複製322のうち、左側のアイコンは、操作(クリックまたはタッチ)することにより、選択している目的地オブジェクトのプロペラ複製(後述する処理)を指示できる機能アイコンである。プロペラ複製を指示するための操作アイコンであることがユーザに分かりやすいように、同一の図形が扇状に複数配置されたモチーフとなっている。
【0036】
ステップS216では、CPU101は、ステップS214で選択された目的地オブジェクトに対して、プロペラ複製処理を行う。例えば、CPU101は、図3(b)の目的地オブジェクト341が選択された場合には、目的地オブジェクト341を複製元オブジェクトとして選択し、図4(a)のように、複製元オブジェクト341を複製した複数の複製オブジェクト342及び343を配置するように制御する。また、CPU101は、図3(b)の目的地オブジェクト351が選択された場合には、目的地オブジェクト351を複製元オブジェクトとして、図4(a)のように、複製元オブジェクト351を複製した複数の複製オブジェクト352~357を配置するように制御する。その後、処理はステップS202に戻る。ステップS216の処理の詳細は図6を用いて後述する。
【0037】
図5(a)は、図3(b)のように、目的地オブジェクト341及び目的地オブジェクト351が設定された場合の移動オブジェクト311~313の移動経路501及び502の例を示す図である。CPU101は、シミュレーションの実行時には、移動オブジェクトを、ある目的地オブジェクトから次の目的地オブジェクトまでの最短の経路(最短距離)で移動させる。そのため、目的地オブジェクト341から、次に目的地オブジェクト351に移動する場合には、移動経路501に続いて移動経路502で示すような経路で移動する。この場合、移動オブジェクトは、図示の通り移動経路501から移動経路502へ、直角に曲がることとなる。しかし、移動オブジェクト311~313のように、人間の動きをシミュレーションするための移動オブジェクトである場合、人間が曲がり角を曲がる際に、直角に曲がることは不自然である。
【0038】
図5(b)は、図4(a)のように、目的地オブジェクト341~343及び目的地オブジェクト351~357が設定された場合の移動オブジェクト311~313の移動経路511~514の例を示す図である。移動オブジェクト311~313は、目的地オブジェクト341~343を介して、目的地オブジェクト351に移動するため、最短の移動経路511~514で移動する。目的地オブジェクト341~343は、90°の曲がり角に対して、ある程度の角度毎に、複数の目的地オブジェクトが配置されている。これにより、移動オブジェクト311~313は、目的地オブジェクト341~343の曲がり角に対して、弧を描くような自然な移動経路511~513で、移動することができる。
【0039】
以上、目的地オブジェクト341~343について説明したが、目的地オブジェクト351~357についても同様である。
【0040】
しかし、ユーザが、1つの曲がり角に対して、複数の目的地オブジェクト351~357を手動で配置する操作は煩雑である。例えば、目的地オブジェクト351を複製元として、目的地オブジェクト352~357を1つ1つ複製する操作が手間である。また、曲がり角に対して、適切な角度や間隔で目的地オブジェクト351~357を配置する操作が手間である。また、配置した複数の目的地オブジェクト351~357を順に辿るように、目的地番号を付与する操作が手間である。また、配置した複数の目的地オブジェクト351~357を踊り場306の形状に合わせた適切な形状とするのが手間である。
【0041】
図2のステップS216では、CPU101は、上記の手間を省くため、目的地オブジェクト341を複製元オブジェクトして、複製した目的地オブジェクト342及び343を配置するように制御する。また、CPU101は、上記の手間を省くため、目的地オブジェクト351を複製元オブジェクトして、複製した目的地オブジェクト352~357を配置するように制御する。ステップS216の処理の詳細は、後に、図6を参照しながら説明する。
【0042】
例えば、目的地オブジェクト341~343の「目的地番号」は、それぞれ、1~3に設定される。目的地オブジェクト341~343の「次の目的地」は、それぞれ、2、3、100に設定される。
【0043】
また、目的地オブジェクト351~357の「目的地番号」は、それぞれ、100~106に設定される。目的地オブジェクト351~357の「次の目的地」は、それぞれ、101~106、200に設定される。
【0044】
これにより、移動オブジェクト311~313は、目的地番号を辿り、目的地オブジェクト341から、目的地オブジェクト342~343と目的地オブジェクト351~356を介して、目的地オブジェクト357に到達するように移動することが可能になる。
【0045】
ステップS217では、CPU101は、ユーザの操作部106の操作に応じて、ステップS214で選択した目的地オブジェクトに対して、その他の処理を行う。その後、処理はステップS202に戻る。
【0046】
ステップS218では、CPU101は、ユーザの操作部106の操作に応じて、ファイル保存の指示があるか否かを判定する。ファイル保存の指示がある場合には、処理はステップS219に進み、ファイル保存の指示がない場合には、処理はステップS220に進む。
【0047】
ステップS219では、CPU101は、上記の編集後の図面301のファイルを不揮発性メモリ103に保存する。保存後のファイルは、ステップS203で読み込み可能である。その後、処理はステップS202に戻る。
【0048】
ステップS220では、CPU101は、ユーザの操作部106の操作に応じて、解析実行(シミュレーションの実行)の指示があるか否かを判定する。解析実行の指示がある場合には、処理はステップS221に進み、解析実行の指示がない場合には、処理はステップS222に進む。
【0049】
ステップS221では、CPU101は、図面301の解析処理を行い、ディスプレイ105に対して、移動オブジェクト311~313が目的地オブジェクトに向けて移動するシミュレーションを表示するように制御する。このシミュレーションは、例えば、建築物内にいる人の移動のシミュレーションや、コンサート会場などのイベントに来場した人の移動のシミュレーションである。移動オブジェクト311~314は、それぞれ、移動速度を設定可能である。その後、処理はステップS202に戻る。
【0050】
図3(b)の図面301の場合、CPU101は、移動オブジェクト311~313が、設定された移動速度で、目的地オブジェクト341を介して、目的地オブジェクト351に移動するように、移動経路501及び502で移動するシミュレーションの表示を制御する。
【0051】
また、図4(a)の図面301の場合、CPU101は、移動オブジェクト311~313が、設定された移動速度で、目的地オブジェクト341~343及び目的地オブジェクト351~356を介して、目的地オブジェクト357に移動するように、移動経路511~514で移動するシミュレーションの表示を制御する。前述の通り、図3(b)の場合に比べて図4(a)のような図面の方が曲がり角で弧を描いて移動する自然な移動オブジェクトの動きをシミュレーションすることができる。このシミュレーションは、例えば、障害物オブジェクト302のある部屋にいる人物(人オブジェクト311~313に対応)が、火災などの緊急時に、階段303、304を通って階下へ適切に避難できるかといった避難シミュレーションである。シミュレーションでの人オブジェクトの動作は動画として観察することができ、このシミュレーション動画中での人オブジェクトの動きを見て、人の動きに淀みや無理な移動が発生しないかを検証したうえで、図面の設計に変更を加えたりすることができる。
【0052】
ステップS222では、CPU101は、ユーザの操作部106の操作に応じて、図2のフローチャートの処理の終了の指示(例えばCADソフトを閉じる指示)があるか否かを判定する。終了の指示がある場合には、CPU101は、図2のフローチャートの処理を終了し、終了の指示がない場合には、処理はステップS202に戻る。
【0053】
図6は、図2のステップS216のプロペラ複製処理の詳細を示すフローチャートである。このフローチャートおける各処理は、CPU101が不揮発性メモリ103に格納されたプログラムをメモリ102に展開して実行することにより実現される。
【0054】
ステップS601では、CPU101は、ディスプレイ105に対して、図4(b)の生成ダイアログ400を表示するように制御する。生成ダイアログ400は、ユーザ操作に応じて設定される設定項目として、分割方法401と、角度402と、枠を指定403と、逆回転404を含む。
【0055】
次に、ステップS602では、CPU101は、ユーザの操作部106の操作に応じて、生成ダイアログ400に対する設定変更操作が行われたか否かを判定する。生成ダイアログ400に対する設定変更操作が行われた場合には、処理はステップS603に進み、生成ダイアログ400に対する設定変更操作が行われていない場合には、処理はステップS604に進む。
【0056】
ステップS603では、CPU101は、ユーザの操作部106を用いた生成ダイアログ400に対する操作に応じて、プロペラ複製処理に関する設定変更を行う。設定された内容を、不揮発性メモリ103に記録する(設定を保存する)。例えば、CPU101は、生成ダイアログ400において、分割方法401と、角度402と、枠を指定403と、逆回転404を設定することができる。その後、処理はステップS604に進む。
【0057】
分割方法401は、設定値として「等間隔」と「角度固定」のいずれかを設定可能である。角度402は、ユーザが任意の角度を入力可能であり、例えば、30°に設定される。枠を指定403は、チェックによる有無の設定が可能である。逆回転404は、チェックによる有無の設定が可能である。
【0058】
ステップS604では、CPU101は、ユーザの操作部106の操作に応じて、生成ダイアログ400のOKボタン405がクリックされたか否かを判定する。OKボタン405がクリックされた場合には、生成ダイアログ400を非表示として、処理はステップS605に進む。OKボタン405がクリックされていない場合には、処理はステップS602に戻る。
【0059】
ステップS605では、CPU101は、ユーザの操作部106のマウスの操作に応じて、図面301上で1回目のクリックが行われたか否かを判定する。例えば、図7(a)の目的地オブジェクト701の回転の中心の位置P1がクリックされる。目的地オブジェクト701は、複製元オブジェクトであり、例えば、図4(a)の目的地オブジェクト341又は351に対応する。1回目のクリックが行われた場合には、処理はステップS606に進み、1回目のクリックが行われていない場合には、処理はステップS605に戻る。
【0060】
ステップS606では、CPU101は、ステップS605でクリックされた位置P1の座標を取得し、メモリ102に記憶(保持)する。
【0061】
次に、ステップS607では、CPU101は、ユーザの操作部106のマウスの十字カーソル(ポインティング位置を示す表示アイテム)の移動操作に応じて、ディスプレイ105に対して、マウスの十字カーソルの位置Pc(ポインティング位置)を基に、位置P1と位置Pcとを通る直線P1Pcを表示するように制御する。なお、本実施形態ではポインティング位置をマウスで指示する例を説明するが、タッチ操作によってタッチパネルにタッチした位置をポインティング位置として指定する場合にも適用可能である。
【0062】
次に、ステップS608では、CPU101は、ユーザの操作部106のマウスの操作に応じて、図面301上で2回目のクリックが行われたか否かを判定する。例えば、図7(a)の目的地オブジェクト701の基準線上の位置P2がクリックされる。2回目のクリックが行われた場合には、処理はステップS609に進み、2回目のクリックが行われていない場合には、処理はステップS607に戻る。
【0063】
ステップS609では、CPU101は、ステップS608でクリックされた位置P2の座標を取得し、メモリ102に記憶(保持)する。
【0064】
次に、ステップS610では、CPU101は、ユーザの操作部106のマウスの十字カーソルの移動操作に応じて、位置P1から位置P2へ向かう直線P1P2と、位置P1からマウスの十字カーソルの位置Pcへ向かう直線P1Pcを取得する。そして、CPU101は、直線P1P2と直線P1Pcとがなす角の角度θ1を取得する。
【0065】
次に、ステップS611では、CPU101は、ステップS603で設定された分割方法401と角度402と逆回転404の設定内容に応じて、角度θ1に基づいて、図7(a)のように、目的地オブジェクト701を複製元オブジェクトとして、目的地オブジェクトを複製する場合の、目的地オブジェクト(複製オブジェクト)の数を算出する。
【0066】
逆回転404の有無の設定は、角度θ1が正の角の角度と負の角の角度のいずれであるのかを示す設定である。逆回転404の無しの設定の場合、角度θ1は、正の角の角度であり、直線P1P2から直線P1Pcへ半時計回り方向に回転した角度である。逆回転404の有りの設定の場合、角度θ1は、負の角の角度であり、直線P1P2から直線P1Pcへ時計回り方向に回転した角度である。
【0067】
まず、分割方法401が等間隔に設定されている場合を説明する。例えば、逆回転404が無しに設定され、角度402が30°に設定され、角度θ1が62°である場合を考える。以下、角度402を角度φとして表す。
【0068】
この場合、CPU101は、角度(角度範囲)θ1(例えば62°)を角度φ(例えば30°)で除算して得られる整数の商(例えば2)と剰余(例えば2)のうちの整数の商の数の複製オブジェクトを、角度φ以上の角度であって、角度θ1を上記の整数の商の数で除算した結果に基づく角度毎(例えば31°毎)に1つ配置するように制御する。この例で生成される2つの複製オブジェクトは、31°の複製オブジェクトと、62°の複製オブジェクトである。この場合、ステップS611では、CPU101は、上記の整数の商の数(例えば2)を、複製オブジェクトの数として算出する。
【0069】
次に、分割方法401が角度固定に設定されている場合を説明する。例えば、逆回転404が無しに設定され、角度402が30°に設定され、角度θ1が62°である。以下、角度402を角度φとして表す。
【0070】
この場合、CPU101は、角度θ1(例えば62°)を角度φ(例えば30°)で除算して得られる整数の商(例えば2)と剰余(例えば2)のうちの整数の商の数の複製オブジェクトを、角度φ毎(例えば30°毎)に1つ配置するように制御する。この例で生成される2つの複製オブジェクトは、30°の複製オブジェクトと、60°の複製オブジェクトである。この場合、ステップS611では、CPU101は、上記の整数の商の数(例えば2)を、複製オブジェクトの数として算出する。
【0071】
次に、ステップS612では、CPU101は、図2のステップS214で選択した目的地オブジェクトを複製元オブジェクトとするプロペラ複製を行った場合のプレビュー表示を行う。例えば、ステップS214で目的地オブジェクト701が選択された場合、CPU101は、目的地オブジェクト701を複製元オブジェクトとする。図7(a)のように、CPU101は、分割方法401に応じて、角度θ1を角度範囲とし、角度φに基づく間隔で、複製元オブジェクト701に対して、位置P1を基準として回転した向きと位置関係で、複製元オブジェクト701を複製した複数の複製オブジェクト712~716を配置し、複数の複製オブジェクト712~716の配置をプレビュー表示するように制御する。プレビュー表示と複製が実際に行われた状態とが識別できるように、プレビュー表示である図7(a)においては複製オブジェクト712~716の表示形態は例えば白抜きであり、実際に複製が行われた後の表示形態(例えば図7(b)のような斜線で塗りつぶした確定状態の表示形態)とは異なる。
【0072】
上記と同様に、分割方法401が等間隔に設定されている場合、CPU101は、角度(角度範囲)θ1(例えば62°)を角度φ(例えば30°)で除算して得られる整数の商(例えば2)と剰余(例えば2)のうちの整数の商の数の複製オブジェクトを、角度φ以上の角度であって、角度θ1を上記の整数の商の数で除算した結果に基づく角度毎(例えば31°毎)に1つ配置するように制御する。
【0073】
また、分割方法401が角度固定に設定されている場合、CPU101は、角度(角度範囲)θ1(例えば62°)を角度φ(例えば30°)で除算して得られる整数の商(例えば2)と剰余(例えば2)のうちの整数の商の数の複製オブジェクトを、角度φ毎(例えば30°毎)に1つ配置するように制御する。
【0074】
次に、ステップS613では、CPU101は、ユーザの操作部106のマウスの操作に応じて、図面301上で3回目のクリックが行われたか否かを判定する。例えば、図7(b)の最後尾の複製オブジェクトの基準線上の位置P3がクリックされる。3回目のクリックが行われた場合には、処理はステップS614に進み、3回目のクリックが行われていない場合には、処理はステップS610に戻る。
【0075】
ステップS614では、CPU101は、ステップS613でクリックされた位置P3の座標を取得し、メモリ102に記憶(保持)する。
【0076】
次に、ステップS615では、CPU101は、位置P1から位置P2へ向かう直線P1P2と、位置P1から位置P3へ向かう直線P1P3を取得する。そして、CPU101は、直線P1P2と直線P1P3とがなす角の角度θ2を取得する。
【0077】
次に、ステップS616では、CPU101は、ステップS603で設定された分割方法401と角度402と逆回転404の設定内容に応じて、角度θ2に基づいて、目的地オブジェクト701を複製元オブジェクトとして複製した場合の、複製される目的地オブジェクト(複製オブジェクト)の数を算出する。ステップS616の処理は、ステップS611の処理に対して、角度θ1の代わりに角度θ2を用いた処理であり、その他の処理については同様である。
【0078】
次に、ステップS617では、CPU101は、図2のステップS214で選択した目的地オブジェクトを複製元オブジェクトとするプロペラ複製処理を実行する。例えば、ステップS214で目的地オブジェクト701が選択された場合、CPU101は、目的地オブジェクト701を複製元オブジェクトとする。図7(b)のように、CPU101は、分割方法401に応じて、角度θ2を角度範囲とし、角度φに基づく間隔で、複製元オブジェクト701に対して、位置P1を基準として回転した向きと位置関係で、複製元オブジェクト701を複製した複数の複製オブジェクト702~708を配置し、複数の複製オブジェクト702~708の配置を確定表示するように制御する。ステップS617の処理は、ステップS612の処理に対して、角度θ1の代わりに角度θ2を用いた処理であり、プレビュー表示の代わりに確定表示をする処理であり、その他の処理については同様である。複製オブジェクト702~708は、目的地オブジェクトとして確定され、確定状態の表示形態で表示される。
【0079】
次に、ステップS618では、CPU101は、複数の複製オブジェクト702~708のそれぞれに対して、複製元オブジェクト701に近い方から順に移動オブジェクト311~313が移動するように、複製オブジェクト702~708の目的地番号を設定する処理を行う。例えば、複製元の目的地オブジェクトの目的地番号に100が設定されている場合、目的地オブジェクト701に一番近い複製オブジェクト702には連番となる101が設定される。続いて複製オブジェクト703~708にも同様に、近い順に連番となるように、それぞれ、目的地番号102~107が設定される。複製元オブジェクト701と複製オブジェクト702~707の「次の目的地」は、それぞれ、101~107に設定される。複製元の目的地オブジェクトから一番遠い複製オブジェクト708の「次の目的地」には、図面301の既存の目的地オブジェクトのうち、複製オブジェクト708の目的地番号よりも大きい目的地番号のうち、最小の目的地番号が検索され、その番号が設定される。例えば目的地番号107より大きい最小の目的地番号が200であった場合には、200が設定される。すなわち、目的地オブジェクト701~708の「次の目的地」は、それぞれ、101~107、200が設定される。
【0080】
次に、ステップS619では、CPU101は、図4(b)の枠を指定403が有りに設定されているか否かを判定する。枠を指定403が有りに設定されている場合には、処理はステップS620に進み、枠を指定403が無しに設定されている場合には、図6のフローチャートの処理が終了する。
【0081】
ステップS620では、CPU101は、図7(c)のように、トリミング枠720が指定されたか否かを判定する。CPU101は、ユーザの操作部106の操作に応じて、トリミング枠720を指定することができる。トリミング枠720は、予め図面上に配置していたオブジェクトであるものとする。例えば、図4(a)の踊り場306の外枠に対応する形状のオブジェクトを配置しておき、トリミング枠として指定することができる。トリミング枠720が指定された場合には、処理はステップS621に進み、トリミング枠720が指定されていない場合には、処理はステップS620に戻る。
【0082】
ステップS621では、CPU101は、複数の目的地オブジェクト701~708を、トリミング枠720の形状に沿ってトリミングし、図7(d)のように、複数の目的地オブジェクト701~708のうちのトリミング枠720の外側部分を削除して内側部分が残るように制御する。このように、既存のオブジェクトに合わせてトリミングすることで、例えば、図4(a)の目的地オブジェクト351~357のように図面に合わせた形状の目的地オブジェクトを生成して配置することができる。その後、図6のフローチャートの処理が終了する。
【0083】
次に、効果について説明する。CPU101は、範囲角度θ2と指定角度φが決まれば、いくつの複製オブジェクトを複製すべきかと、それぞれその位置にどの向きで配置すべきかを自動的に決定して、複数の複製オブジェクトを複製することができる。そのため、複数の複製オブジェクトを1つ1つ複製する操作の手間を削減でき、曲がり角に対して適切な角度や間隔で、複数の複製オブジェクトを配置する操作の手間を削減できる。
【0084】
また、CPU101は、複数の複製した複製オブジェクトに順序を付けて目的地番号を自動付与することができる。そのため、配置した複数の目的地オブジェクトを順に辿るような目的地番号を、複数の目的地オブジェクトの1つ1つに対して付与する操作をしなくてよい。その分の手間が削減できる。
【0085】
また、CPU101は、複数の複製元オブジェクトと複数の複製オブジェクトとをトリミング枠に沿ってトリミングすることができる。これにより、複製元オブジェクトと複数の複製オブジェクトを、図面の形状に合わせた適切な形状とする手間を削減できる。すなわち、上述した例のように、CPU101は、まず、図7(b)の複製オブジェクト702~708を配置し、図7(d)のトリミング枠720の外側を削除し、図面301の踊り場306の形状に合わせることができる。
【0086】
なお、ステップS618では、プロペラ状に複製した複数の複製オブジェクト702~708を順に辿るように目的地番号を付与したが、目的地番号の自動付与は、プロペラ状以外の配置で複製した場合にも適用可能である。例えば、直線状の範囲に複製した複製オブジェクトを所定の条件に従った間隔を置いて複数配置する場合にも適用可能である。この場合にも、複数の複製オブジェクトのそれぞれには、複製元のオブジェクトから近い方から順に移動オブジェクトが移動するような目的地番号を付与する。
【0087】
また、例えば、複製元オブジェクトを複製し、クリックされた任意の複数の位置に複製した複製オブジェクトを配置していく場合にも適用可能である。具体的には、クリックされた1点目の位置に、複製元オブジェクトの次の移動先となるように目的地番号を付与した1つ目の複製オブジェクトを複製し、クリックされた2点目の位置に、1つ目の複製オブジェクトの次の移動先となるように目的地番号を付与した2つ目の複製オブジェクトを複製し、3点目以降も同様にして、順次目的地番号を付与した複製オブジェクトを配置していく、といったように適用可能である。このようにすることで、配置した複数の複製オブジェクトを順に辿るような目的地番号を、複数の複製オブジェクトの1つ1つに付与する操作をしなくてよい。その分の手間が削減できる。
【0088】
なお、CPU101が行うものとして説明した上述の各種制御は1つのハードウェアが行ってもよいし、複数のハードウェア(例えば、複数のプロセッサや回路)が処理を分担することで、装置全体の制御を行ってもよい。
【0089】
また、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
【0090】
また、上述した実施形態においては、本発明を図1の電子機器100に適用した場合を例にして説明したが、これはこの例に限定されず、オブジェクトを表示するように制御する電子機器であれば適用可能である。すなわち、本発明は、パーソナルコンピュータやPDA、携帯電話端末や携帯型の画像ビューワ、ディスプレイを備えるプリンタ装置、デジタルフォトフレーム、音楽プレーヤー、ゲーム機、電子ブックリーダーなどに適用可能である。
【0091】
(他の実施形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【0092】
なお、上述の実施形態は、何れも本発明を実施するにあたっての具体例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されない。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0093】
100 電子機器、101 CPU、102 メモリ、103 不揮発性メモリ、104 画像処理部、105 ディスプレイ、106 操作部、107 記録媒体I/F、108 記録媒体、109 外部I/F、110 通信I/F、111 インターネット、112 カメラ部、150 内部バス
図1
図2
図3
図4
図5
図6
図7