リアルタイムに更新するグラフの描画

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
田中

リアルタイムに更新するグラフの描画

#1

投稿記事 by 田中 » 11年前

こんにちは.
3度目の書き込みとなります.

ジョイステッィック等のセンサから信号電圧を読み取り,
その結果を縦軸が電圧,横軸が時間のグラフとして,
リアルタイムで描画したいと考えています.
CかC++が良いです.

そこで質問なのですがCかC++を用いた場合に,
リアルタイムで更新されるグラフを描画する方法としてどのようなものが有りますでしょうか?

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: リアルタイムに更新するグラフの描画

#2

投稿記事 by みけCAT » 11年前

Win32 API、DXライブラリ、OpenGLなどの方法が考えられます。
対象のOSは何ですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

田中

Re: リアルタイムに更新するグラフの描画

#3

投稿記事 by 田中 » 11年前

すみません追記です.

どのような方法があるかというか,
・ どの方法が一般的か
・ どの方法を学んでおくべきか
ということを一番知りたいです.

だから方法の数を知りたいわけではなく,
オススメの方法を知りたいです.

田中

Re: リアルタイムに更新するグラフの描画

#4

投稿記事 by 田中 » 11年前

>みけCAT様

追記書いている間にかぶってしまいました.

OSは,Windows7の32ビットです.
開発環境はVisual studio 2008 Express editionを利用しています.

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: リアルタイムに更新するグラフの描画

#5

投稿記事 by みけCAT » 11年前

「リアルタイムで更新」は、どのくらいのリアルタイムを必要としていますか?
10分、5分、1分、30秒、10秒、1秒、100ms、20ms、10ms、1ms、1μs、1nsなどなど…
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

田中

Re: リアルタイムに更新するグラフの描画

#6

投稿記事 by 田中 » 11年前

そうですねー
そこまで具体的には考えてませんでした.

今回利用するAIOデバイスは
http://www3.contec.co.jp/B2B/ConIWCatPr ... ct_Id=1664
でして,
A/D変換速度 10μsec/ch(max.);
とのことです.
4ch読み込もうと考えておりますので最速で40μsec

ただそこまでの速さは必要はないのです
アニメとかは1秒で30フレームでしたっけ(33ms)
そう考えると100msくらいで更新できれば十分だと思います.

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: リアルタイムに更新するグラフの描画

#7

投稿記事 by みけCAT » 11年前

田中 さんが書きました:ただそこまでの速さは必要はないのです
アニメとかは1秒で30フレームでしたっけ(33ms)
そう考えると100msくらいで更新できれば十分だと思います.
でしたら、DXライブラリを使えばいいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: リアルタイムに更新するグラフの描画

#8

投稿記事 by softya(ソフト屋) » 11年前

こういうライブラリもありますよ。
「三輪空司研究室 群馬大学理工学研究院電子情報部門 」
http://www.el.gunma-u.ac.jp/~miwalab/mlib.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

田中

Re: リアルタイムに更新するグラフの描画

#9

投稿記事 by 田中 » 11年前

>みけ様
やはりDXライブラリですか.
あれは使いやすくていいですね.

ちなみにもう少し早い処理が必要な場合(1msとか),
何が良かったのでしょうか?

>ソフト屋様
ご紹介ありがとうございます.
確認してみます.

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: リアルタイムに更新するグラフの描画

#10

投稿記事 by softya(ソフト屋) » 11年前

田中 さんが書きました: ちなみにもう少し早い処理が必要な場合(1msとか),
何が良かったのでしょうか?
PCが毎秒60回の画面更新しか出来ませんので、専用のハードウェアが必要になります。
つまりオシロとかを使うしか無いです。

【補足】
まぁ、人間も秒1000回は視認できませんけどね。
それでも1ms周期の処理はWindowsOSなどの非リアルタイムOSには向きません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

田中

Re: リアルタイムに更新するグラフの描画

#11

投稿記事 by 田中 » 11年前

>ソフト屋様
PCの画面の更新速度は60hzなんですね
知りませんでした,勉強になります

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: リアルタイムに更新するグラフの描画

#12

投稿記事 by softya(ソフト屋) » 11年前

田中 さんが書きました:>ソフト屋様
PCの画面の更新速度は60hzなんですね
知りませんでした,勉強になります
正確に言えばモニターの機器の仕様に準じます。
高価なゲーマー用の120hzを超えるものもあります。
普通に売っているのは60hzです。

「【ゲーマー必見】120Hz、144Hz対応モニターの価格表 | びすた無限のオンラインゲームブログ」
http://vistainfinity.blog.fc2.com/blog-entry-200.html
240hzのモニターもある様です。

【補足の補足】 高価といえるほどの値段ではなくなって来てましたね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

田中

Re: リアルタイムに更新するグラフの描画

#13

投稿記事 by 田中 » 11年前

>ソフト屋様

人の目の時間分解能は約50ms~100ms程度
(ソース:http://mh.rgr.jp/memo/mz0386.htm
らしいですね.


>それでも1ms周期の処理はWindowsOSなどの非リアルタイムOSには向きません。
周期が処理に対して大きくなれば,非リアルタイムOSでも良いのですよね?

田中

Re: リアルタイムに更新するグラフの描画

#14

投稿記事 by 田中 » 11年前

>ソフト屋様

なるほど.
ゲーマーともなるとそこまでこだわるんですね.
恐るべし・・・

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: リアルタイムに更新するグラフの描画

#15

投稿記事 by softya(ソフト屋) » 11年前

10msまで視認できるなら、それを超えている方が滑らかに見えるということでしょう。
240まで行くと自己満足のような。

>周期が処理に対して大きくなれば,非リアルタイムOSでも良いのですよね?

WindowsPCで実用的なサンプリング周期は10msより大きい必要が有ると思います。
常時別のプロセスがバックグラウンドで走っているので、それが周期を阻害する場合もあります。
WindowsUpdateとかがバックグラウンドで走るとロギングを落としそうです。
何も操作していないPCだとしても1ms周期で何週間もロギングが実用レベル出来るのかは疑問です。
Windowsなどはそれが向いていないから、リアルタイムOS(RTOS)が、そのために存在するんですけどね。

デジタル計測機器とか、家電とか、車載マイコンはRTOSが走っています。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: リアルタイムに更新するグラフの描画

#16

投稿記事 by ISLe » 11年前

100ms周期程度ならWin32 APIのほうが良いのではないでしょうか。
描画命令も豊富にあって線種に凝ったりもできますし、同じコードを使って印刷も可能です。
おおむかしにWin32 APIでゲーム作った経験から秒間60コマでも十分対応できるはず。

DXライブラリだと、VSYNCより速くても遅くても不都合が出ると思います。
センサのサンプリングを並行して処理するならなおさら。


ちなみにアニメは劇場用で滑らかに動いているときでも秒間24コマ、日本のテレビアニメだと秒間8コマも多くあります。

ゲームでフレームレートが高い必要があるのは、ユーザーの操作に対する反応速度の問題です。
アニメーションが滑らかに見えるかどうかとは(まったく関係がないわけではありませんが)根っこが異なります。

閉鎖

“C言語何でも質問掲示板” へ戻る