ここから本文です

質問番号:16,452,540 の続き。

mlc********さん

2008/5/1216:55:06

質問番号:16,452,540 の続き。

描画対象は
void Form1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e){ Graphics^ }
となっていまして、timer1_Tick( ){ } の中に「Form1->Refresh(); 」の1行をいれましたが、「';'が'->'の前にありません」とエラーコメントが出てきます。オブジェクト名が「Form1」では正しくないのでしょうか。

補足あっ。「this->Refresh(); 」で行きました。ただし、赤点の移動はできましたが、軌跡が残りません。水平の直線なら左端から伸ばしていけばよいのですが、オシログラフにしたいので垂直にも揺らして軌跡を残したいのです。もう少しお付き合いお願いできますか。

閲覧数:
325
回答数:
1

違反報告

ベストアンサーに選ばれた回答

coo********さん

編集あり2008/5/1222:22:24

Form1 だとクラス名になります。
Form1::Refresh(); でもいけますが、 this->Refresh(); の方が良いと思います。

※補足します。 考え方の説明になります。
今回の様にリフレッシュを行ないかつ軌跡を残したい場合、全ての点を再描画する必要があります。
私がよくやる方法は、X 軸分の配列を生成し、その配列に Y 軸のデータを放り込み保持させます。
再描画時にループをまわし、データが線になるように DrawLine で描画していきます。

質問した人からのコメント

2008/5/14 21:40:51

成功 X軸分の配列を作ってY軸のデータを保持させておき、ループを廻して描画する方法で軌跡を描くことができました。ありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる