リアルタイムに更新するグラフの描画
リアルタイムに更新するグラフの描画
こんにちは.
3度目の書き込みとなります.
ジョイステッィック等のセンサから信号電圧を読み取り,
その結果を縦軸が電圧,横軸が時間のグラフとして,
リアルタイムで描画したいと考えています.
CかC++が良いです.
そこで質問なのですがCかC++を用いた場合に,
リアルタイムで更新されるグラフを描画する方法としてどのようなものが有りますでしょうか?
3度目の書き込みとなります.
ジョイステッィック等のセンサから信号電圧を読み取り,
その結果を縦軸が電圧,横軸が時間のグラフとして,
リアルタイムで描画したいと考えています.
CかC++が良いです.
そこで質問なのですがCかC++を用いた場合に,
リアルタイムで更新されるグラフを描画する方法としてどのようなものが有りますでしょうか?
Re: リアルタイムに更新するグラフの描画
Win32 API、DXライブラリ、OpenGLなどの方法が考えられます。
対象のOSは何ですか?
対象のOSは何ですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: リアルタイムに更新するグラフの描画
すみません追記です.
どのような方法があるかというか,
・ どの方法が一般的か
・ どの方法を学んでおくべきか
ということを一番知りたいです.
だから方法の数を知りたいわけではなく,
オススメの方法を知りたいです.
どのような方法があるかというか,
・ どの方法が一般的か
・ どの方法を学んでおくべきか
ということを一番知りたいです.
だから方法の数を知りたいわけではなく,
オススメの方法を知りたいです.
Re: リアルタイムに更新するグラフの描画
>みけCAT様
追記書いている間にかぶってしまいました.
OSは,Windows7の32ビットです.
開発環境はVisual studio 2008 Express editionを利用しています.
追記書いている間にかぶってしまいました.
OSは,Windows7の32ビットです.
開発環境はVisual studio 2008 Express editionを利用しています.
Re: リアルタイムに更新するグラフの描画
「リアルタイムで更新」は、どのくらいのリアルタイムを必要としていますか?
10分、5分、1分、30秒、10秒、1秒、100ms、20ms、10ms、1ms、1μs、1nsなどなど…
10分、5分、1分、30秒、10秒、1秒、100ms、20ms、10ms、1ms、1μs、1nsなどなど…
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: リアルタイムに更新するグラフの描画
そうですねー
そこまで具体的には考えてませんでした.
今回利用するAIOデバイスは
http://www3.contec.co.jp/B2B/ConIWCatPr ... ct_Id=1664
でして,
A/D変換速度 10μsec/ch(max.);
とのことです.
4ch読み込もうと考えておりますので最速で40μsec
ただそこまでの速さは必要はないのです
アニメとかは1秒で30フレームでしたっけ(33ms)
そう考えると100msくらいで更新できれば十分だと思います.
そこまで具体的には考えてませんでした.
今回利用するAIOデバイスは
http://www3.contec.co.jp/B2B/ConIWCatPr ... ct_Id=1664
でして,
A/D変換速度 10μsec/ch(max.);
とのことです.
4ch読み込もうと考えておりますので最速で40μsec
ただそこまでの速さは必要はないのです
アニメとかは1秒で30フレームでしたっけ(33ms)
そう考えると100msくらいで更新できれば十分だと思います.
Re: リアルタイムに更新するグラフの描画
でしたら、DXライブラリを使えばいいと思います。田中 さんが書きました:ただそこまでの速さは必要はないのです
アニメとかは1秒で30フレームでしたっけ(33ms)
そう考えると100msくらいで更新できれば十分だと思います.
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: リアルタイムに更新するグラフの描画
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: リアルタイムに更新するグラフの描画
>みけ様
やはりDXライブラリですか.
あれは使いやすくていいですね.
ちなみにもう少し早い処理が必要な場合(1msとか),
何が良かったのでしょうか?
>ソフト屋様
ご紹介ありがとうございます.
確認してみます.
やはりDXライブラリですか.
あれは使いやすくていいですね.
ちなみにもう少し早い処理が必要な場合(1msとか),
何が良かったのでしょうか?
>ソフト屋様
ご紹介ありがとうございます.
確認してみます.
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: リアルタイムに更新するグラフの描画
PCが毎秒60回の画面更新しか出来ませんので、専用のハードウェアが必要になります。田中 さんが書きました: ちなみにもう少し早い処理が必要な場合(1msとか),
何が良かったのでしょうか?
つまりオシロとかを使うしか無いです。
【補足】
まぁ、人間も秒1000回は視認できませんけどね。
それでも1ms周期の処理はWindowsOSなどの非リアルタイムOSには向きません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: リアルタイムに更新するグラフの描画
正確に言えばモニターの機器の仕様に準じます。田中 さんが書きました:>ソフト屋様
PCの画面の更新速度は60hzなんですね
知りませんでした,勉強になります
高価なゲーマー用の120hzを超えるものもあります。
普通に売っているのは60hzです。
「【ゲーマー必見】120Hz、144Hz対応モニターの価格表 | びすた無限のオンラインゲームブログ」
http://vistainfinity.blog.fc2.com/blog-entry-200.html
240hzのモニターもある様です。
【補足の補足】 高価といえるほどの値段ではなくなって来てましたね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: リアルタイムに更新するグラフの描画
>ソフト屋様
人の目の時間分解能は約50ms~100ms程度
(ソース:http://mh.rgr.jp/memo/mz0386.htm)
らしいですね.
>それでも1ms周期の処理はWindowsOSなどの非リアルタイムOSには向きません。
周期が処理に対して大きくなれば,非リアルタイムOSでも良いのですよね?
人の目の時間分解能は約50ms~100ms程度
(ソース:http://mh.rgr.jp/memo/mz0386.htm)
らしいですね.
>それでも1ms周期の処理はWindowsOSなどの非リアルタイムOSには向きません。
周期が処理に対して大きくなれば,非リアルタイムOSでも良いのですよね?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: リアルタイムに更新するグラフの描画
10msまで視認できるなら、それを超えている方が滑らかに見えるということでしょう。
240まで行くと自己満足のような。
>周期が処理に対して大きくなれば,非リアルタイムOSでも良いのですよね?
WindowsPCで実用的なサンプリング周期は10msより大きい必要が有ると思います。
常時別のプロセスがバックグラウンドで走っているので、それが周期を阻害する場合もあります。
WindowsUpdateとかがバックグラウンドで走るとロギングを落としそうです。
何も操作していないPCだとしても1ms周期で何週間もロギングが実用レベル出来るのかは疑問です。
Windowsなどはそれが向いていないから、リアルタイムOS(RTOS)が、そのために存在するんですけどね。
デジタル計測機器とか、家電とか、車載マイコンはRTOSが走っています。
240まで行くと自己満足のような。
>周期が処理に対して大きくなれば,非リアルタイムOSでも良いのですよね?
WindowsPCで実用的なサンプリング周期は10msより大きい必要が有ると思います。
常時別のプロセスがバックグラウンドで走っているので、それが周期を阻害する場合もあります。
WindowsUpdateとかがバックグラウンドで走るとロギングを落としそうです。
何も操作していないPCだとしても1ms周期で何週間もロギングが実用レベル出来るのかは疑問です。
Windowsなどはそれが向いていないから、リアルタイムOS(RTOS)が、そのために存在するんですけどね。
デジタル計測機器とか、家電とか、車載マイコンはRTOSが走っています。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: リアルタイムに更新するグラフの描画
100ms周期程度ならWin32 APIのほうが良いのではないでしょうか。
描画命令も豊富にあって線種に凝ったりもできますし、同じコードを使って印刷も可能です。
おおむかしにWin32 APIでゲーム作った経験から秒間60コマでも十分対応できるはず。
DXライブラリだと、VSYNCより速くても遅くても不都合が出ると思います。
センサのサンプリングを並行して処理するならなおさら。
ちなみにアニメは劇場用で滑らかに動いているときでも秒間24コマ、日本のテレビアニメだと秒間8コマも多くあります。
ゲームでフレームレートが高い必要があるのは、ユーザーの操作に対する反応速度の問題です。
アニメーションが滑らかに見えるかどうかとは(まったく関係がないわけではありませんが)根っこが異なります。
描画命令も豊富にあって線種に凝ったりもできますし、同じコードを使って印刷も可能です。
おおむかしにWin32 APIでゲーム作った経験から秒間60コマでも十分対応できるはず。
DXライブラリだと、VSYNCより速くても遅くても不都合が出ると思います。
センサのサンプリングを並行して処理するならなおさら。
ちなみにアニメは劇場用で滑らかに動いているときでも秒間24コマ、日本のテレビアニメだと秒間8コマも多くあります。
ゲームでフレームレートが高い必要があるのは、ユーザーの操作に対する反応速度の問題です。
アニメーションが滑らかに見えるかどうかとは(まったく関係がないわけではありませんが)根っこが異なります。