![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
Цитата:
Код:
WavInfo: TWavInfo; KX, KY: Extended; i, X, Y, DY, Chanel: Integer; Код:
procedure TForm1.Button_WAVgraphClick(Sender: TObject);
begin
KX := 1; // Коэффициент пропорциональности по абсциссе
KY := 0.01; // Коэффициент пропорциональности по ординате
DY := Height div 2; // Смещение по ординате
Chanel := 0; // Номер рисуемого канала
Repaint;
for i := Low(WavInfo.Samples) to High(WavInfo.Samples) do
begin
X := Trunc(KX * i);
Y := Trunc(KY * Smallint(WavInfo.Samples[i, Chanel]) + DY);
end;
end;
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
PaintBox1.Canvas.MoveTo(X, DY);
PaintBox1.Canvas.LineTo(X, Y);
end;Код:
procedure TForm1.Button_WAVgraphClick(Sender: TObject); и Код:
procedure TForm1.PaintBox1Paint(Sender: TObject); |
|
#17
|
||||
|
||||
|
что-то типа такого (см. вложение)
|
|
#18
|
|||
|
|||
|
Цитата:
Код:
var
WavInfo: TWavInfo;
KX, KY: Extended;
i, X, Y, DY, Chanel: Integer;
begin
KX := 1; // Коэффициент пропорциональности по абсциссе
KY := 0.01; // Коэффициент пропорциональности по ординате
DY := Height div 2; // Смещение по ординате
Chanel := 0; // Номер рисуемого канала
Repaint;
for i := Low(WavInfo.Samples) to High(WavInfo.Samples) do
begin
X := Trunc(KX * i);
Y := Trunc(KY * Smallint(WavInfo.Samples[i, Chanel]) + DY);
Canvas.MoveTo(X, DY);
Canvas.LineTo(X, Y);
end;
end;Код:
procedure TForm1.Button_WAVgraphClick(Sender: TObject); Код:
procedure TForm2.PaintBox1Paint(Sender: TObject); Код:
procedure TForm1.Button_WAVgraphClick(Sender: TObject);
begin
Randomize;
for i:=1 to 1024 do
PointArray[i-1]:=Random(PaintBox1.Height);
PaintBox1.Repaint;
end;Код:
procedure TForm1.PaintBox1Paint(Sender: TObject);
var
i:integer;
DX:integer;
begin
DX:=1;
PaintBox1.Canvas.MoveTo(0,0);
for i:=0 to 1023 do
begin
PaintBox1.Canvas.LineTo(DX*i,PointArray[i]);
PaintBox1.Canvas.MoveTo(DX*i,0);
end;
end; |
|
#19
|
||||
|
||||
|
Садисты, использовать TChart, брр.
![]() Собственно сама программа. Следует рассматривать её как учебный пример, а не как законченный продукт. histogram.rar Последний раз редактировалось angvelem, 30.08.2012 в 02:32. |
|
#20
|
||||
|
||||
|
Цитата:
![]() |
|
#21
|
|||
|
|||
|
Цитата:
|
|
#22
|
||||
|
||||
|
Можно, смотри выше.
|
|
#23
|
|||
|
|||
|
Цитата:
|
|
#24
|
||||
|
||||
|
Я для себя писал и для автора bass, на Дельфи не планировал переделывать, хотя это и не сложно.
|
|
#25
|
||||
|
||||
|
А у тебя рисование по клику на Button_WAVgraph должно работать? Тогда зачем разделяешь? Рисование должно проходить в одном цикле с подсчетом X и Y, а у тебя рисует только первую точку и последнюю - весь цикл проходит отдельно от рисования. Или сохраняй точки в массив, как в примере cotseec.
|
|
#26
|
||||
|
||||
|
Цитата:
Цитата:
![]() |
|
#27
|
|||
|
|||
|
Я бы хотел немного теории: в чем измеряются вот эти самые колебания wav? И в общем: расскажите про этот график. Чем отличается график одноканального от двухканального wav? И почему мы используем именно двумерный массив? И что за значения подразумеваются под X и Y? И еще: что это за цифры, по которым и строится график?
Left-0 Right-0 Left-2 Right-2 Left-7 Right-7 Left-16 Right-16 Left-30 Right-30 Left-47 Right-47 Left-67 Right-67 Left-88 Right-88 Left-108 Right-108 Left-128 Right-128 Left-150 Right-150 Left-175 Right-175 Left-202 Right-202 Left-229 Right-229 ... Заранее благодарен за ответы! |
|
#28
|
|||
|
|||
|
Н, пожалуйста, помогите мне! Поймите, что времени у меня не много, всего до зимы, а работы еще много. Так помогите мне построить этот график и гистограмму. Я очень вас прошу !
|
|
#29
|
||||
|
||||
|
Если график на рисунке устраивает, я перепишу с ассемблера на Дельфи.
|
|
#30
|
|||
|
|||
|
Цитата:
|