Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

Тестирование компонента для Delphi и C++Builder   Найти похожие ветки 

 
BreakPoint ©   (2006-09-19 23:13) [0]

Приглашаю всех желающих принять участие в тестировании компонента для вывода 2D графиков. Хотелось бы услышать Ваше мнение о удобстве компонента. Критика приветствуется.
Проект не коммерчесий и коммерческим не будет.

Предоставляет возможность работы с любым из 5 типов (Extended, Double, Single, Integer, SmallInt)
TPlotter работает в минимум 15 раз быстрее, чем TChart
Позволяет напрямую работать с массивами данных
Имеет Run-time и Design-time редактор компонента
Прост в использовании
Позволяет использовать пользовательскую разметку осей
Имеет открытый исходный код

Скачать можно здесь:
http://f5soft.com/downloads/download.php?id=f5packBDS_full

В поставку входят пакеты для Delphi 7,2006 и Builder 6,2006.


 
DimaBr   (2006-09-20 09:13) [1]

В принципе существенные приемущества перед TChart на первый взгляд не замечено.
1. Смешно выглядит при заброске на форму (размеры от TPanel)
2. Глянув в DFM - о ужас, default свойств нет.
3. Окно редактора при максимилизации выглядит странно.
4. Использование ТLabelEdit (в редакторе) приводит к EConvertError
5. На белом фоне кнопок выравнивания плохо видно какая нажата.


 
BreakPoint ©   (2006-09-20 11:09) [2]

Существенные преимущества: скорость до 30 раз быстрее, так что компонент можно использовать для вывода с высокоскоростных АЦП в реальном времени (добавление и вывод 500000 точек всего 0.047 сек на Р4-2.4. Для сравнения TChart - 1.3 сек). Плюс можно выбирать тип данных, а в TChart фиксировано Double.

1. Шутка нанайка! Скоро исправлю.
2. Пока не понятно какие значения будут чаще всего использоватся. К тому же очень много свойств отвечающих за геометрию.
3. Оно вообще не должно ресайзиться, недосмотр, извиняюсь.
4. Пока небыло времени дописать обработку исключителшьных ситуаций. (и в ближайшее время к сожалению не будет)
5. Учту.


 
MBo ©   (2006-09-20 11:36) [3]

Приведи пример, как сделать аналогично:

 N := 100;
 for i := 0 to N - 1 do
   Series1.AddXY(i, Sin(i));


 
BreakPoint ©   (2006-09-20 15:28) [4]

Данная реализация неэффективна с точки зрения быстродействия, т.к. вызывать метод класса для каждой точки нерационально. Поэтому в TPlotter такой реализация нет. Кроме того в в реальных приложениях необходимо вывести данные, которые уже находятся в памяти (буфер АЦП, даные с решателя), именно для этого и разрабатывался TPlotter.

var X, Y: TValueArray;
const N=100;
...
setLenght(X, N);
setLenght(Y, N);
for i := 0 to N-1 do
begin
 X[i] := i;
 Y[i] := i*i;
end;
Plotter.AddFunction(X, Y);
Plotter.Apply;

TPlotter не клон TChart. Он предназначен для других целей (скорость, большие массивы, часто изменяющиеся данные) поэтому и принципы работы отличаются. Но я подумаю над расширением функциональности в сторону более приземленных задач.


 
Stanislav ©   (2006-09-20 15:36) [5]

А он диаграммы Гантта не рисует?


 
BreakPoint ©   (2006-09-20 15:44) [6]

Пока нет. Но я планирую расширение сферы применения.


 
Stanislav ©   (2006-09-20 15:49) [7]

BreakPoint ©   (20.09.06 15:44) [6]

Было бы хорошо. Если бы еще и с БД работал...
Немогу найти нормальный объеккт для рисования диаграммы Гантта.


 
MBo ©   (2006-09-20 16:16) [8]

>Данная реализация неэффективна с точки зрения быстродействия, т.к. вызывать метод класса для каждой точки нерационально

Это понятно, я просто пример хотел увидеть.
Однако и с таким поточечным добавлением TeeChart7 обеспечивает  одинаковую с Plotter скорость примерно до 10 000 точек, далее тормозится, уступая на 100 тыс. точек примерно в 4 раза, а на миллионе - в 7-8 раз.
А метод AddArray дает на миллионе точек почти такую же скорость, как и Plotter.
Отмечу, что тысячи и более точек на график выводить бессмысленно. Должна проводиться предварительная обработка с отрисовкой выборки или специально подготовленных данных (например, сглаженных, или обязательным выводом пиков, если это важно)


 
MBo ©   (2006-09-20 16:26) [9]

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


 
BreakPoint ©   (2006-09-20 16:50) [10]

по скорости я сравнивал с TeeChart из стандартной поставки Delphi7. Вполне возможно что в новых версиях скорость повысилась.

> Отмечу, что тысячи и более точек на график выводить бессмысленно.
>  Должна проводиться предварительная обработка с отрисовкой
> выборки или специально подготовленных данных

Совершенно верно. Такая обработка уже включена в TPlotter. Поэтому можно смело связывать буфер АЦП с TPlotter, без предварительной обработки. Более того, в TPlotter реализован режим прямого доступа к данным (см. Manual->DirectMode), и использование одной оси X для нескольких функций (см. Manual->Альтернативные способы задания функций
) что существенно повышает быстродействие.
P.S. А где можно TeeChart7 взять, для сравнения.


 
DimaBr   (2006-09-21 08:39) [11]


>  А где можно TeeChart7 взять, для сравнения.

http://www.fixdown.com/soft/18393.htm



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.061 c
2-1159510933
vodvorezlaya
2006-09-29 10:22
2006.10.15
Как сделать закрытие формы по нажатию Esc?


15-1158920960
Сергей М.
2006-09-22 14:29
2006.10.15
Проблема с загрузкой ресурса в "мобилу" c использованием WAP


15-1158676295
Unknown user
2006-09-19 18:31
2006.10.15
Интерполяция/аппроксимация алгоритмы


11-1135150285
Lari
2005-12-21 10:31
2006.10.15
Перехват нажатия кнопки в заголовке программы


2-1159360924
Alex_C
2006-09-27 16:42
2006.10.15
Как скрыть каретку в Memo?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский