Графика в Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Графика в Lazarus

Сообщение Странник » 16.06.2010 18:46:35

Всем привет.
Меня зовут Сергей.
Пишу программу для института. Она должна в конечном итоге выводить,исходя из введенных данных, определенные графики. Хочется сделать окно с графиком настраиваемым: чтобы можно было изменять шрифт, цвет, размер толщину линий, добавлять координатную сетку. Так вот сам вопрос в чем: можно ли сделать послойное формирование изображения графика, а-ля фотошоп: отдельно слой координатной сетки с прозрачными участками, слой графиков с прозрачностью, и т.п. Чтобы при изменении например, шрифта не перерисовывать заново весь график, а изменить только один слой, и заново сложить слои. Или же это слишком мудрено и перерисовать все будет быстрее и проще? Сам я только начинаю в lazarus'e и не знаю таких тонкостей. Буду рад советам.
Странник
незнакомец
 
Сообщения: 8
Зарегистрирован: 16.06.2010 18:36:02

Re: Графика в Lazarus

Сообщение А.Н. » 16.06.2010 23:18:42

Гы-гы... :)

Меня зовут Сергей.

Всем проставляешься в честь знакомства?

а-ля фотошоп

Так было бы желание. Думаю, что на что-то больше Jasc'а не стоит замахиваться, но фотожоп - нормально.
Ведь не корель. Осилите, наверное.
Лет через 50.

отдельно слой координатной сетки с прозрачными участками, слой графиков с прозрачностью, и т.п.

Альфа-канал... :mrgreen:

Чтобы при изменении например, шрифта не перерисовывать заново весь график, а изменить только один слой, и заново сложить слои.

А как представляется "перерисовка слоя"? Результат, всё-равно, - полная перерисовка.
В любом случае, это, очень грубо говоря, сведётся к записи пикселей в буфер (ну или координат, если график векторный).

Или же это слишком мудрено и перерисовать все будет быстрее и проще? Сам я только начинаю в lazarus'e и не знаю таких тонкостей.

Лично, по-моему (чтобы кто бы не подумал :) ), это - мудрёно. Lazarus тут не при чём.
Вероятно, если реализовывать такой компонент, то он может быть востребован.
Но окончание его разработки может прийтись как-раз на окончание института.

Слои в фотошопе сделаны исключительно для удобства пользователя, и производительность самого фотошопа они вряд ли улучшают.
Не факт, что расчёт всего этого будет быстрее, чем просто перерисовка графика.
И не факт, что он будет тратить меньше ресурсов. Ещё вопрос ресурсы чего он будет тратить?
Перерисовка, конечно, занимает время. Но, обычно, это не очень критично, если частота обновления графика невысока.
Как вариант, возможно перерисовывать только изменившуюся область графика.
Не слой, а квадратную область, в которую входят изменившиеся элементы.

С другой стороны, использование слоёв, вероятно - удобно.
Но, опять же, реализовать прозрачность, полупрозрачность, интерфейс ко всему этому...
Возможно, но сложно.

P.S.:
К тому же, вы ведь поискали в этих ваших интернетах?
Мне стало интересно и я поискал. Не конкретно для lazarus. Так, просто сходные компоненты.
Среди этого, например, нет того, что вам нужно:
http://www.citforum.ru/programming/comp/comp03.shtml
http://www.flex-graphics.com/ru/
http://www.tmssoftware.com/site/diagram.asp
http://www.mindfusion.eu/diagramlite.html
http://zedgraph.org/wiki/index.php?title=Main_Page
?

Здесь на форуме тоже есть компоненты для диаграмм и графиков.

P.P.S.:
Если, конечно, вы займётесь и сделаете такое и выложите, лучше бесплатно, наверняка многие вам будут благодарны. :)
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: Графика в Lazarus

Сообщение Odyssey » 16.06.2010 23:38:14

Возможно, стоит взглянуть на TAChart и PlotPanel, оба компонента для Lazarus.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Графика в Lazarus

Сообщение coyot.rush » 17.06.2010 00:06:16

может просто использовать уже готовый Advanced Grapher http://freesoft.ru/?id=5558 сам использовал эту программку кода нужно было делать курсовик 8)
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Re: Графика в Lazarus

Сообщение Странник » 17.06.2010 09:25:32

Всем спасибо за советы.
Боюсь Advanced Grapher не подойдет, необходимо рисовать графики для оптимизации трехкомпонентных систем (симплексную решетку). По всей видимости, поступлю следующим образом: при изменении одной из характеристик буду перерисовывать весь график. А по поводу разработки послойного наложения изображения обязательно подумаю, желание есть двигаться вперед. И конечно это будет бесплатный проект.
World is the OpenSource.
Странник
незнакомец
 
Сообщения: 8
Зарегистрирован: 16.06.2010 18:36:02

Re: Графика в Lazarus

Сообщение А.Н. » 17.06.2010 09:51:02

Кстати, вот дополнительные компоненты для диаграмм:
viewtopic.php?f=5&t=2400&st=0&sk=t&sd=a&start=45#p39117

К слову о слоях. Есть такая библиотечка, называется CrossGL:
http://www.mail-archive.com/fpc-pascal@ ... 15162.html
http://www.crossgl.com/cgl_about.htm
http://www.crossgl.com/cgl_features.htm
http://www.crossgl.com/asc_screenshots.htm
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: Графика в Lazarus

Сообщение Mr.Smart » 17.06.2010 10:50:31

Странник
Зачем изобретать велосипед? Уже давно существует и не плохо развивается библиотека Cairo, которая много где используется :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 42

Рейтинг@Mail.ru