Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2008, 15:19   #1
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию Опять Chart

В Delphi нужно построить график y=сумма по i=(от 0 до Q-1) Ai*cos(Wi*t+fi)

Ai-амплитуда и-того сигнала
Wi-частота и-того сигнала
fi-фаза и-того сигнала
t-длина сигнала
Q-кол-во гармонических составляющих

составляющие добавляются кнопкой при нажатии которой в модальном окне задаются амплитуда, частота и фаза нового сигнала, хранятся в многомерном массиве

Пробовал делать сам через Chart не получается сделать сумму, только одну составляющую
Если кто может помочь с данной темой буду очень признателен
BigBB вне форума Ответить с цитированием
Старый 24.04.2008, 17:24   #2
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию

Че никто не знает как ето сделать?
BigBB вне форума Ответить с цитированием
Старый 24.04.2008, 17:48   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
не получается сделать сумму, только одну составляющую
y=сумма по i=(от 0 до Q-1) Ai*cos(Wi*t+fi)
В переводе означает:
Код:
y:=0;
for i:=0 to Q-1 do
begin
y:=y+A[i]*cos(W[i]*t+F[i]);
// А вот тут готовьте к выводу значения Y в Chart (заполняйте массив)
end;

Последний раз редактировалось mihali4; 24.04.2008 в 20:19.
mihali4 вне форума Ответить с цитированием
Старый 24.04.2008, 18:08   #4
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию

составляющие добавляются кнопкой при нажатии которой в модальном окне задаются амплитуда, частота и фаза нового сигнала, хранятся в многомерном массиве, т.е. при получении данных из етого окна i увеличивается на единичку, и в ззависимости сколько яраз добавлял составляющие, такое значение примет i, составляющих произвольное кол-во. Про цикл я и сам догадался только не знаю как ето дело привязать к етому окну с вводом параметров

Последний раз редактировалось BigBB; 24.04.2008 в 18:13.
BigBB вне форума Ответить с цитированием
Старый 24.04.2008, 18:11   #5
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Сообщение от BigBB Посмотреть сообщение
делал так не работает!!Почему-то
Ну чтож:
1. Показывайте код.
2. С чево Вы взяли что программа не работает?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 24.04.2008, 19:47   #6
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию

Делал так:
заполняю массив:
Код:
procedure TForm1.Button2Click(Sender: TObject);

begin
If  form2.ShowModal = mrOk then
Begin
arr1[i]:=StrToFloat(Form2.Combobox1.Text);
arr2[i]:=StrToFloat(Form2.Combobox2.Text);
arr3[i]:=StrToFloat(Form2.Combobox3.Text);
form1.ListBox1.Items.Add(Form1.Combobox1.Text+'*cos(2*pi*'+Form1.Combobox2.Text+'+'+Form1.Combobox3.Text+')');
q:=q+1;
End;
далее пытаюсь строить:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var g,w:real;
begin
g:=0.01;
w:=StrToFloat(Form1.Edit10.Text);
h:=0;
y:=0;
while h <= w do
  begin
   for i:=0 to q-1 do
  begin
 y:=y+arr1[i]*cos(arr2[i]*h+arr3[i]);
 Chart1.Series[0].AddXY(h,y);
 h:=h+g;
  end;
  end;
end;
Когда задаю амплитуду=1 частоту=1(получаю циклическую 2pi*1) и фазу 0 получаю картинку
видимо я туплю объясните пожалуйста, я в программировании не силен
Изображения
Тип файла: jpg Untitled-1.jpg (20.3 Кб, 172 просмотров)
BigBB вне форума Ответить с цитированием
Старый 25.04.2008, 08:59   #7
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
Восклицание

Обратите внимание пожалуйста на эту тему ибо помощь действительно нужна! Сам не могу разобраться
BigBB вне форума Ответить с цитированием
Старый 26.04.2008, 16:08   #8
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию

To Карась and mihali4: ну что я привел код, объясните пожалуйста. что я не так делаю
BigBB вне форума Ответить с цитированием
Старый 26.04.2008, 19:00   #9
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Неочень понятно. Нужно каждый раз рисовать график, но его праметры берутся из массива?

Глянь.... меняется амплитуда и цвет.
Вложения
Тип файла: rar Project1.rar (156.6 Кб, 19 просмотров)
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 26.04.2008, 21:48   #10
BigBB
Пользователь
 
Регистрация: 24.04.2008
Сообщений: 20
По умолчанию

Тема в том, что мне не нужно отдельные графики сигнала с разными характеристиками, а нужна их сумма,т.е. задается не сколько сигналов с разными амплитудами частотами и фазами, эти сигналы складываются и получается один сложный сигнал, график которого мне и надо нарисовать. Но при том изначальное кол-во складываемых графиков не известно.
BigBB вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
И опять мэйлы.. Опять... Pusher PHP 6 28.06.2008 03:08
Chart оси lenivec Общие вопросы Delphi 1 09.02.2008 11:37
Компонент Chart. Небесный Общие вопросы Delphi 17 09.02.2008 08:48
Рисование в Chart SunKnight Общие вопросы Delphi 3 07.02.2008 09:16
Точки в Chart yulia Компоненты Delphi 3 26.09.2007 22:22