![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Построение сглаженных графиков [D5, WinXP]
ASMiD © (2004-08-26 18:43:00)Господа!
Не подскажет-ли кто-нибудь ссылку.
Необходимо по точкам построить сглаженный график.
REA (2004-08-27 09:47:00) [1]Тренды тоже всякие можно
MBo (2004-08-27 07:32:00) [2]PolyBezier,конечно, рисует кривые, но вот сами эти кривые сначала нужно рассчитать - а как именно - зависит от того, что имеется в виду под словами "построить сглаженный график".
Вполне возможно, что подойдут сплайны (их много видов, в зависимости от задачи) или еще какие-нибудь из методов интерполяции.
wicked (2004-08-26 19:32:00) [3]хм... обещают, что нарисует....
только смущает надпись -
Requirements
Windows NT/2000 or later: Requires Windows NT 3.1 or later.
Windows 95/98/Me: Unsupported.
не то, чтобы я ратую за использование win9x/ME, но спецификация программы, гласящая "только WinNT", имхо сильно снижает её ценность...
TUser (2004-08-26 19:28:00) [4]Хотя, нет. Признаю ошибку. PolyBezier рисует, конечно, много кривый, а преимущества PolyDraw состоят в возможности рисовать несколько отдельных фигур, комбинировании крБ с прямыми линиями, и непрорисовке одного пикселя дважды.
TUser (2004-08-26 19:25:00) [5]
> функция PolyBezier?...
Сам не работал, но насколько я понял сегодня в метро уважаемого Юаня, PolyBelizer рисует крБ. А PolyDraw принимает массив из многих точек и рисует сразу много кривых. + еще прямые. Т.е. для каждой точки там можно задать тип, например, начать крБ, нарисовать в эту точку прямую линию и т.д. В данном случае, PolyDraw позволит нарисовать все кривые сразу, просто переслав в нее массив точек. Не запомнил точно - может она опорные точки требует, но их легко рассчитать.
Причем хорошо то, что эта ф-ция гарантирует, что никакой пиксел не будет прорисовываться дважды.
TUser (2004-08-26 19:25:00) [6]
> PolyBelizer
PolyBezier, конечно.
wicked (2004-08-26 19:12:00) [7]
> Аппроксимируй его кривыми Безье. Тебе нужна ф-ция PolyDraw.
> См. нее в SDK. Про сами кр.Б. - много где есть. Неплохо
> описано у Ф.Юаня, с примерами.
функция PolyBezier?...
wicked (2004-08-26 19:12:00) [8]в смысле далеко читать не надо - в мсдн про PolyBezier много чего написано...
TUser (2004-08-26 19:02:00) [9]2[2]
???
lipskiy (2004-08-26 19:01:00) [10]Можно использовать рекурсивный фильтр:
Xout = KXin + (1-K)Xout
K - коеф. рекурсии, от 0 до 1, в данном случае равен примерно 0.1
Этим фильтром нужно пройти отдельно по каждой координате последовательно все точки
TUser (2004-08-26 18:58:00) [11]Аппроксимируй его кривыми Безье. Тебе нужна ф-ция PolyDraw. См. нее в SDK. Про сами кр.Б. - много где есть. Неплохо описано у Ф.Юаня, с примерами.