Главная страница
    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.042 c
2-1159465605
Merry
2006-09-28 21:46
2006.10.15
FastReport


15-1159191619
Megabyte
2006-09-25 17:40
2006.10.15
Форматирование из физической БД в диаграмму


2-1159174243
KyRo
2006-09-25 12:50
2006.10.15
Как сделать прозрачным лейбл


15-1159027855
alpha5
2006-09-23 20:10
2006.10.15
Не ставится компонент


15-1158845862
TUser
2006-09-21 17:37
2006.10.15
С днем рождения, 70 лет





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский