построения графика в реальном времени

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Домовенок_Кузя
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 05.07.2009 (Вс) 16:43

построения графика в реальном времени

Сообщение Домовенок_Кузя » 05.07.2009 (Вс) 16:46

Здравствуйте!
Помогите оптимизировать код построения графика
Нужно строить график входящие данные/время
Длинна графика 28800 значении после этого сохранить данные
По идеи прога должна строить график непрерывно в течении месяца
А у меня через 10 мин уже загрузка проца 90%
Вот что у меня получилось
Вложения
graf.zip
(14.46 Кб) Скачиваний: 83

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: построения графика в реальном времени

Сообщение alibek » 05.07.2009 (Вс) 17:22

Какой смысл выводить 28 тысяч значений, если выводится все-равно будет не больше тысячи пикселов?
Lasciate ogni speranza, voi ch'entrate.

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Re: построения графика в реальном времени

Сообщение JohnK » 05.07.2009 (Вс) 17:31

Я бы сделал так. Построение достигается за счет сдвига картинки:
Код: Выделить всё

Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, _
ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc _
As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Public Const SRCCOPY = &HCC0020

Private Sub Graph_traf(inBytes As Long)
Dim i As Long
Dim zzz As Double

zzz = (inBytes - old_Val) / 1000

Pic1.Line (Pic1.ScaleWidth - 1, Pic1.ScaleHeight)-(Pic1.ScaleWidth - 1, Pic1.ScaleHeight - zzz), &HFF00&

For i = 2 To Pic1.ScaleWidth
  BitBlt Pic1.hDC, i, 1, 1, Pic1.Height, Pic1.hDC, i + 1, 1, SRCCOPY
Next i

Pic1.Line (Pic1.ScaleWidth - 1, Pic1.ScaleHeight)-(Pic1.ScaleWidth - 1, 0), &H4000&

old_Val = inBytes
End Sub

Private Sub Timer1_Timer()
Call Graph_traf(Get_traf)
End Sub

Private Sub Form_Load()
  cur_offset = 1
  Pic1.ScaleMode = 3 'Pixel
  Pic1.AutoRedraw = True
End Sub



Набросал на скорую руку. Но думаю смысл понятен.
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: построения графика в реальном времени

Сообщение Хакер » 05.07.2009 (Вс) 18:01

JohnK, ты не слышал про ScrollDC, да?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Домовенок_Кузя
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 05.07.2009 (Вс) 16:43

Re: построения графика в реальном времени

Сообщение Домовенок_Кузя » 05.07.2009 (Вс) 20:22

alibek писал(а):Какой смысл выводить 28 тысяч значений, если выводится все-равно будет не больше тысячи пикселов?

я понимаю что можно просто построить PicMomentGraf.ScaleWidth\3 значений (3-растояние между точками) а потом двигать график(первую запись стереть+ передвынуть все записи на 1 вперед+добавить новую запись в конец)- тоже самое будет если в моем примере поставить
GrafCount = PicMomentGraf.ScaleHeight, но я незнаю как потом скролить эти все 28 тысяч значений
Хакер смотрел я в API-Guide пример по ScrollDC но чето несильно понял как его к моей проге прикрутить

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: построения графика в реальном времени

Сообщение Хакер » 05.07.2009 (Вс) 20:24

Я не к тебе обращался, говоря о ScrollDC.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Re: построения графика в реальном времени

Сообщение JohnK » 05.07.2009 (Вс) 21:04

Хакер, когда-то давно, помню с ним игрался. Сейчас даже и забыл за него...
Вот пример ScrollDC

PS. Почему-то всегда чешутся руки изобрести велосипед... :)
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

Домовенок_Кузя
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 05.07.2009 (Вс) 16:43

Re: построения графика в реальном времени

Сообщение Домовенок_Кузя » 06.07.2009 (Пн) 0:41

Хакер если ты обращался только к JohnK то и писал бы ему в личку

все, разобрался...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: построения графика в реальном времени

Сообщение Хакер » 06.07.2009 (Пн) 0:44

Наверное не тебе указывать другим пользователям (тем более, администрации) как им к кому обращаться.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Mail.ru [бот] и гости: 82

    TopList