掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
グラフのリアルタイム表示は?・2 (ID:86524)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
くりゅうさんへ。 ねろさんのおっしゃっることそのまま、まねてみました。 (波形は見やすいようにサインカーブに変更しています) 参考にしてください。 ねろさん、ありがとうございます。参考になりました。 Picture1(0)とPicture1(2)の切替時に波形が途切れるの とスケーるグッリドがおかしくなる件は、がんばって何 とか解決してみようとがんばってみます。 -------------------------------------------------------------------- Option Explicit Const TTT = 5 Private Sub Command1_Click() Me.Timer1.Enabled = False End Sub Private Sub Command2_Click() Me.Timer1.Enabled = True End Sub Private Sub Form_Load() Dim n As Integer Me.Width = 10000 'フォーム・ピクチャボックスの大きさ設定 Me.Height = 6720 For n = 0 To 1 Picture1(n).Width = Me.Width Picture1(n).Height = 5550 Picture1(n).Left = 0 Picture1(n).Top = 240 Picture1(0).BackColor = RGB(0, 0, 0) '背景色を黒に設定 Picture1(1).BackColor = RGB(150, 150, 250) '背景色を?に設定 SCALE_DRAW n Next Picture1(1).Left = Picture1(0).Left + Picture1(0).Width Timer1.Interval = 10 Timer1.Enabled = True End Sub Sub SCALE_DRAW(n) Dim OLD_X As Integer, OLD_Y As Integer Picture1(n).AutoRedraw = True Picture1(n).DrawWidth = 1 Picture1(n).DrawStyle = 0 Picture1(n).ForeColor = RGB(50, 110, 50) For OLD_X = 0 To 10000 Step 300 Picture1(n).Line (OLD_X, 0)-(OLD_X, 5550) Next OLD_X For OLD_Y = 0 To 5550 Step 300 If OLD_Y = 2700 Then '水平位置基準線 Picture1(n).DrawWidth = 1.3 '若干太め Picture1(n).DrawStyle = 2 '鎖線 Picture1(n).ForeColor = RGB(0, 220, 0) '明るい色 Else '標準目盛線 Picture1(n).DrawWidth = 1 '標準の太さ Picture1(n).DrawStyle = 0 '目盛標準線 Picture1(n).ForeColor = RGB(50, 110, 50) '目盛標準色 End If Picture1(n).Line (0, OLD_Y)-(10000, OLD_Y) Next OLD_Y Picture1(n).ForeColor = RGB(255, 255, 255) OLD_Y = 0 OLD_X = 0 End Sub Private Sub Timer1_Timer() Draw End Sub Private Sub Draw() Dim Y As Integer Static OLD_X As Integer Static OLD_Y As Integer Static YYY As Integer Static ADJ As Integer ADJ = 0 'Y = Int(Rnd * 3500) + 1000 Y = 1500 * Sin(YYY * 3.14 / 180) + 2700 '描画が端に来たらPictureを切り替える If OLD_X > Picture1(0).Width Then If Picture1(0).Left < Picture1(1).Left Then Picture1(0).Left = Picture1(1).Left + Picture1(1).Width + ADJ Picture1(0).Cls SCALE_DRAW (0) Else Picture1(1).Left = Picture1(0).Left + Picture1(0).Width + ADJ Picture1(1).Cls SCALE_DRAW (1) End If OLD_X = 0 End If '常に右側のPictureに描画 If Picture1(0).Left < Picture1(1).Left Then Picture1(1).Line (OLD_X, OLD_Y)-(OLD_X + TTT, Y) Picture1(0).Left = Picture1(0).Left - TTT Picture1(1).Left = Picture1(0).Left + Picture1(0).Width + ADJ Else Picture1(0).Line (OLD_X, OLD_Y)-(OLD_X + TTT, Y) Picture1(1).Left = Picture1(1).Left - TTT Picture1(0).Left = Picture1(1).Left + Picture1(1).Width + ADJ End If OLD_X = OLD_X + TTT OLD_Y = Y YYY = YYY + 1 If YYY > 360 Then YYY = 0 End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.