Всем привет.
Меня зовут Сергей.
Пишу программу для института. Она должна в конечном итоге выводить,исходя из введенных данных, определенные графики. Хочется сделать окно с графиком настраиваемым: чтобы можно было изменять шрифт, цвет, размер толщину линий, добавлять координатную сетку. Так вот сам вопрос в чем: можно ли сделать послойное формирование изображения графика, а-ля фотошоп: отдельно слой координатной сетки с прозрачными участками, слой графиков с прозрачностью, и т.п. Чтобы при изменении например, шрифта не перерисовывать заново весь график, а изменить только один слой, и заново сложить слои. Или же это слишком мудрено и перерисовать все будет быстрее и проще? Сам я только начинаю в lazarus'e и не знаю таких тонкостей. Буду рад советам.
Графика в Lazarus
Модератор: Модераторы
Гы-гы...
Всем проставляешься в честь знакомства?
Так было бы желание. Думаю, что на что-то больше Jasc'а не стоит замахиваться, но фотожоп - нормально.
Ведь не корель. Осилите, наверное.
Лет через 50.
Альфа-канал...
А как представляется "перерисовка слоя"? Результат, всё-равно, - полная перерисовка.
В любом случае, это, очень грубо говоря, сведётся к записи пикселей в буфер (ну или координат, если график векторный).
Лично, по-моему (чтобы кто бы не подумал
), это - мудрёно. 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.:
Если, конечно, вы займётесь и сделаете такое и выложите, лучше бесплатно, наверняка многие вам будут благодарны.
Меня зовут Сергей.
Всем проставляешься в честь знакомства?
а-ля фотошоп
Так было бы желание. Думаю, что на что-то больше Jasc'а не стоит замахиваться, но фотожоп - нормально.
Ведь не корель. Осилите, наверное.
Лет через 50.
отдельно слой координатной сетки с прозрачными участками, слой графиков с прозрачностью, и т.п.
Альфа-канал...
Чтобы при изменении например, шрифта не перерисовывать заново весь график, а изменить только один слой, и заново сложить слои.
А как представляется "перерисовка слоя"? Результат, всё-равно, - полная перерисовка.
В любом случае, это, очень грубо говоря, сведётся к записи пикселей в буфер (ну или координат, если график векторный).
Или же это слишком мудрено и перерисовать все будет быстрее и проще? Сам я только начинаю в lazarus'e и не знаю таких тонкостей.
Лично, по-моему (чтобы кто бы не подумал
Вероятно, если реализовывать такой компонент, то он может быть востребован.
Но окончание его разработки может прийтись как-раз на окончание института.
Слои в фотошопе сделаны исключительно для удобства пользователя, и производительность самого фотошопа они вряд ли улучшают.
Не факт, что расчёт всего этого будет быстрее, чем просто перерисовка графика.
И не факт, что он будет тратить меньше ресурсов. Ещё вопрос ресурсы чего он будет тратить?
Перерисовка, конечно, занимает время. Но, обычно, это не очень критично, если частота обновления графика невысока.
Как вариант, возможно перерисовывать только изменившуюся область графика.
Не слой, а квадратную область, в которую входят изменившиеся элементы.
С другой стороны, использование слоёв, вероятно - удобно.
Но, опять же, реализовать прозрачность, полупрозрачность, интерфейс ко всему этому...
Возможно, но сложно.
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.:
Если, конечно, вы займётесь и сделаете такое и выложите, лучше бесплатно, наверняка многие вам будут благодарны.
- coyot.rush
- постоялец
- Сообщения: 309
- Зарегистрирован: 14.08.2009 08:59:48
может просто использовать уже готовый Advanced Grapher http://freesoft.ru/?id=5558 сам использовал эту программку кода нужно было делать курсовик 
Всем спасибо за советы.
Боюсь Advanced Grapher не подойдет, необходимо рисовать графики для оптимизации трехкомпонентных систем (симплексную решетку). По всей видимости, поступлю следующим образом: при изменении одной из характеристик буду перерисовывать весь график. А по поводу разработки послойного наложения изображения обязательно подумаю, желание есть двигаться вперед. И конечно это будет бесплатный проект.
World is the OpenSource.
Боюсь Advanced Grapher не подойдет, необходимо рисовать графики для оптимизации трехкомпонентных систем (симплексную решетку). По всей видимости, поступлю следующим образом: при изменении одной из характеристик буду перерисовывать весь график. А по поводу разработки послойного наложения изображения обязательно подумаю, желание есть двигаться вперед. И конечно это будет бесплатный проект.
World is the OpenSource.
Кстати, вот дополнительные компоненты для диаграмм:
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
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
Странник
Зачем изобретать велосипед? Уже давно существует и не плохо развивается библиотека Cairo, которая много где используется
Зачем изобретать велосипед? Уже давно существует и не плохо развивается библиотека Cairo, которая много где используется
