| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > стандартный TChart свои метки на сериях |
| Автор: PupaJr 27.5.2013, 17:37 | ||||||
| Добрый день. Рисую несколько серий на стандартном чарте. Надо на них измерить затухающие колебания синусоиды по осям - нарисовать что-то типо размерных линий как на чертежах нажатием на самой канве - тык 1 точка, тык 2 точка и появилвсь линия между точками. При этом при масштабировании надо чтобы линия и точки масштабировались следом, также перемещались... Понятно надо - onmousemove, onclick, calcY...
А обратно из данных новую точку на канве нет..
пытаюсь нарисовать иничего не выходит.
|
| Автор: Beltar 27.5.2013, 20:49 |
| А включить разметочные линии в отдельные серии? Рисовать по канвасу графика занятие попахивающее мазохизмом, т. к. надо все изменения мониторить. |
| Автор: PupaJr 28.5.2013, 06:49 |
| Спасибо, но это не информативно, нужно так как на приложенном рисунке, и при масштабировании всё двигалось вместе с графиком - тоесть надо сначала поймать данные по клику - это легго получается из координат мыши получаем данные в сериях, а потом при изменении масштаба или перемещении графика уже из запомненных данных получать новую точку на канве для новой прорисовки стрелок в процедуре "автердрав". Другого пути пока не вижу... П.С. уведомление на почту не пришло - что есть ответ... ( ![]() |
| Автор: Beltar 28.5.2013, 19:02 |
| Я себе делал свой велосипед в виде многосерийного графика с автомасштабированием по выделенным зонам мышкой у которого для каждой серии могли добавляться еще прямоугольники. В принципе ничего там сложного нет, могу выложить, а там можно и переделать, это может быть проще, чем воевать с чЯйным-чартом. Помимо прочего он оптимизирован на сверхбольшие серии данных. Уровень совместимости по языку D2005 и выше, а если удалить объявления инлайнов, то пойдет и на D7. Особенность - обязательная сортировка точек по X перед отрисовкой, но она элементарно отключается. |
| Автор: PupaJr 29.5.2013, 07:14 |
| Спасибо, я на D6 сижу пока... как гарантия того что проект будет работать и на стрых ОС без всяких там обновлений. Спасибо за помощь, но проект уже весь сделан со стандартным TChart... и он легко у меня печатается... а вот для "наглядности" хотел бы сделать эти "стрелки".. Странно вот одно, почему не работает Series1.CalcXPosValue(strtotime(xx))- со шкалой времени... или я не правильно пользуюсь нахождением точки на канве из точки по оси (времени).. даёт почемуто отрицательное число... |
| Автор: PupaJr 4.6.2013, 16:27 | ||
Вот сделал сам ![]() нахожу точку и рисую, а в afterdraw просто повторяю проделаную здесь процедуру
вопрос решён ) |