|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
что-то типа такого (см. вложение)
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard |
#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 Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 30.08.2012 в 02:32. |
#20
|
||||
|
||||
Цитата:
|
#21
|
|||
|
|||
Цитата:
|
#22
|
||||
|
||||
Можно, смотри выше.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#23
|
|||
|
|||
Цитата:
|
#24
|
||||
|
||||
Я для себя писал и для автора bass, на Дельфи не планировал переделывать, хотя это и не сложно.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#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
|
||||
|
||||
Если график на рисунке устраивает, я перепишу с ассемблера на Дельфи.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#30
|
|||
|
|||
Цитата:
|