![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 06.11.2010
Сообщений: 1
|
![]()
Доброго всем времени суток.
Дано: Функция x=a*exp(-t*(1/b))*sin(wt). Задаётся интервал времени t. Выполняется цикл расчёта x(t) для 60 значений t (где t выводится в реальном времени). Значение t c одновременно подсчитанным x выводится в Memo1. График же (Series1.AddXY(t,a*exp(-t*(1/b))*sin(w*t),'',clRed))) внесённый в этот цикл, строится в самом конце, после завершения цикла. Вопрос: 1) Как осуществить построение каждой точки в процессе выполнения цикла с тем же интервалом t. 2) Как программно (напр. нажав кнопку) прервать цикл. |
![]() |
![]() |
![]() |
#2 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]() Цитата:
Код:
Цитата:
|
||
![]() |
![]() |
![]() |
#3 |
Регистрация: 02.10.2012
Сообщений: 5
|
![]()
Помогите пожалуйста понять поведение компонента TChart.
Цель: построение "двигающего" графика в реальном времени. Проба 1: procedure TForm1.Timer1Timer(Sender: TObject); begin Form1.Series1.Add(random(1000),'',c lred); Form1.Edit3.Text:=inttostr(Form1.Se ries1.count); end; При данном коде рисуется график, в поле добавляются новые точки, сам график сжимается отображая все точки графика. Теперь делаю так чтобы при добавлении новой точки, удалялась самая первая точка, тем самым желая отобразить на экране только необходимое количество точек и получить "движение" графика в реальном времени. Проба 2: procedure TForm1.Timer1Timer(Sender: TObject); begin Form1.Series1.Add(random(1000),'',c lred); Form1.Series1.Delete(Form1.Series1. FirstValueIndex); Form1.Edit3.Text:=inttostr(Form1.Se ries1.count); end; Но желаемого результата нет. Происходит следующая ситуация: Цикл №1: - Добавляется новая точка - Удаляется первая точка - Количество точек не изменяется - график смещается на одну точку влево Цикл №2: - НЕ (!) добавляется новая точка на экране - Удаляется первая точка на экране - Количество точек не изменяется (в свойстве Count) - график НЕ смещается, а перемаштабируется по оси Х по имеющимся точкам на экране. Остальные циклы идентичны Циклу№2. После каждого цикла количество точек на экране уменьшается и в итоге остается одна вертикальная линия. Почему так происходит не понимаю ![]() |
![]() |
![]() |
![]() |
#4 |
Регистрация: 02.10.2012
Сообщений: 5
|
![]()
В принципе я уже сам нашел выход, при использовании метода AddXY вместо Add все начинает работать как положено
![]() Почему же при Add не работает остается непонятным... |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Издеваемся над виндой в реальном времени | Fainder | Свободное общение | 12 | 15.03.2010 15:22 |
Построение графика [Delphi] | StudeHt | Помощь студентам | 7 | 23.12.2009 21:11 |
Построение графика в Delphi | сер4ей | Помощь студентам | 0 | 25.04.2009 15:15 |
переброс данных из Excel в Delphi в реальном режиме времени | Машутка | Общие вопросы Delphi | 3 | 27.09.2008 07:19 |