willi Опубликовано 20 июня, 2018 Поделиться Опубликовано 20 июня, 2018 (изменено) Написал в XE10.1 простой модуль для вывода кривых на TImage в виде графика - есть возможность вывода столбцов для диаграмм, меток с надписями и прочей мелочи. В виде компонента не оформлял... Смысл: вводим массив точек - график сам подбирает область вывода чтобы влезли надписи и выводит с указанными параметрами и стилем кривые (имею в виду зависимости Y от X). Есть комментарии в коде - есть пример для тестов - см. проект https://github.com/willi-spb/arTrassing желательно тестирование, возможно я что-то упустил - сам модуль: https://github.com/willi-spb/arTrassing/blob/master/FMX.arCurveClasses.pas Изменено 20 июня, 2018 пользователем willi Евгений Корепов, Alex7wrt, ENERGY и 4 других 6 1 Цитата Ссылка на комментарий
ENERGY Опубликовано 20 июня, 2018 Поделиться Опубликовано 20 июня, 2018 Какие ж это кривые. Это обычный линейный график. Кривые это - Безье. Цитата Ссылка на комментарий
willi Опубликовано 20 июня, 2018 Автор Поделиться Опубликовано 20 июня, 2018 (изменено) Видимо, пример слишком простой -- Вы правы, между точками интерполяция идет прямыми линиями, но если задать в исходных Y=Func(X) синусоиду или случайный процесс - как назвать график, который получится в итоге - обычно называют "кривой"... Выводить в показ маркеров можно не все значения точек, а выборочно... Изменено 20 июня, 2018 пользователем willi Цитата Ссылка на комментарий
willi Опубликовано 20 июня, 2018 Автор Поделиться Опубликовано 20 июня, 2018 (изменено) Заменил одну кривую графика на функцию синуса: Код: вместо линейной функции точек: Lx:=-20; Ly:=0; for i :=0 to 300 do begin Larea.Curves.Last.Points.Add(TcvPoint.Create(i,Lx,Ly)); Lx:=Lx+2; Ly:=120+50*Sin(Lx*0.04); end; Видно, что для этой данной кривой выводятся не все значения точек, а только указанные... Изменено 20 июня, 2018 пользователем willi ENERGY, Ingalime и Andrey Efimov 3 Цитата Ссылка на комментарий
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.