Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Система рисования. Печать _ Реализация программы построения графиков ( декартовой С.К.)

Автор: Repeat 8.9.2011, 20:36

Здравствуйте !

Поставил себе задачу создать программу построения графиков , на подобии http://school35.ucoz.ru/grapher/grapher_e.htm , только на Qt.

Прочитал кучу статей , форумов по данной теме , только ответа на свой вопрос так и не нашел .

Прошу совета , т.к. в Qt новичок , не могли бы посоветовать с помощью какой библиотеки (qwt , qpainter , plplot ) или какой другой реализовать поставленную задачу (смотрите ссылку выше) ?

Т.е . вводится функция , y=f(x) , и построить ее график в прямоугольной декартовой с.к. . Распознавание функции реализовал с помощью обратной польской записи , а вот с тем как построить
сам график ( что использовать) , как нарисовать оси системы координат , и сетку , и как лучше реализовать само построение графиков , зашел в тупик

Нашел много вариантов , однако из-за плохой осведомленности не знаю на чем остановится , и что лучше подойдет для моей задачи .


Заранее огромное спасибо всем , кто откликнется!

Автор: ruzik 8.9.2011, 21:29

Лично я пользуюсь qwt, все устраивает, никаких особых проблем с вроде пока не возникает

Автор: Sokoloff 9.9.2011, 11:00

Ну или самому рисовать, у http://www.e-reading.org.ua/bookreader.php/136170/Blanshet,_Sammerfild_-_QT_4__programmirovanie_GUI_na_S%2B%2B.html есть прям подходящий пример см. раздел "Двойная буферизация".

Автор: wiz29 9.9.2011, 11:55

Широкий такой вопрос, просто определись, для чего это тебе, если нужно просто решить задачу, то используй по возможности готовые решения, которые тебя устраивают в рамках данной задачи (сэкономишь просто уйму времени), если же цель разобраться с рисовальщиком Qt и возможно какими то алгоритмами (например, размещения подписей осей координат, отнюдь не тривиальная задача, как может показаться) то используй QPainter. Возможно qwt не подойдет для реализации твоей задумки по каким то причинам, нужна более четкая постановка вопроса.

Автор: Repeat 9.9.2011, 19:22

Спасибо , что откликнулись .
Мне нужно главное решить задачу , т . е. реализовать подобное построение графиков (см. пример ) , используя то , что вы мне поможете выбрать.
Главная проблема состоит в том , где лучше вообще реализовывать графики , например сам я могу только по соединить точки функции линиями , или обводить точки маленькими окр-тями , для того , чтобы создать подобие графика . Хочется знать где это можно сделать лучше , имея в расположении функцию , и массив точек функции .
А также , хочется реализовать привычную всем студентам и школьникам, удобную Декартовую С.К. , т . е . 4 четверти , оси X , Y , и сетку с разметкой .

ruzik
Не могли бы Вы обосновать , чем лучше qwt ? лично меня не устраивают оси данной библиотеки по умолчанию , они позволяют рисовать только в 1 четверти .

Sokoloff
Спасибо огромное за ссылку на данный учебник , обыскался я нормального учебника по Qt .

wiz29

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


P.S.

Пишу на Linux Ubuntu , Qt 4.7.2 .

Автор: Sokoloff 9.9.2011, 23:16

Цитата(Repeat @ 9.9.2011, 19:22) *
Спасибо , что откликнулись .
Мне нужно главное решить задачу , т . е. реализовать подобное построение графиков (см. пример ) , используя то , что вы мне поможете выбрать.
...
Не могли бы Вы обосновать , чем лучше qwt ? лично меня не устраивают оси данной библиотеки по умолчанию , они позволяют рисовать только в 1 четверти .

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

Цитата(Repeat @ 9.9.2011, 19:22) *
Sokoloff
Спасибо огромное за ссылку на данный учебник , обыскался я нормального учебника по Qt .

Ну Бланшет и Шлее это классика. Если еще не видели, почитайте еще http://www.forum.crossplatform.ru/index.php?showtopic=368.

Цитата(Repeat @ 9.9.2011, 19:22) *
wiz29
Если можно , могли бы Вы скинуть ссылку на готовые решения подобной моей задачи . Спасибо.

http://habrahabr.ru/blogs/qt_software/82614/.

Автор: Repeat 10.9.2011, 12:27

Цитата(Sokoloff @ 10.9.2011, 0:16) *
Цитата(Repeat @ 9.9.2011, 19:22) *
Спасибо , что откликнулись .
Мне нужно главное решить задачу , т . е. реализовать подобное построение графиков (см. пример ) , используя то , что вы мне поможете выбрать.
...
Не могли бы Вы обосновать , чем лучше qwt ? лично меня не устраивают оси данной библиотеки по умолчанию , они позволяют рисовать только в 1 четверти .

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

Цитата(Repeat @ 9.9.2011, 19:22) *
Sokoloff
Спасибо огромное за ссылку на данный учебник , обыскался я нормального учебника по Qt .

Ну Бланшет и Шлее это классика. Если еще не видели, почитайте еще http://www.forum.crossplatform.ru/index.php?showtopic=368.

Цитата(Repeat @ 9.9.2011, 19:22) *
wiz29
Если можно , могли бы Вы скинуть ссылку на готовые решения подобной моей задачи . Спасибо.

http://habrahabr.ru/blogs/qt_software/82614/.



Данную статью я читал , однако у меня возникли проблемы с установкой библиотеки qwt . установил через центр приложений ubuntu libqwt5-qt4 и libqwt . В QtCreator появились для добавления на форму виджеты qwt , в частности qwtplot . Однако при просто добавлении qwtplot виджета к форме ( т . е . появляются оси , и область рисования) , при попытке собрать проект возникает ошибка , программа прописывает сама файл виджета qwtplot , и подключает там библиотеку "qwtplot.h" , и сама же не узнает прописанную собой библиотеку . Вот и не знаю , как это устранить. Могу скинуть скриншоты , если понадобится .

И еще проблема , как я понял в qwt можно только в I четверти рисовать? Т.е. нельзя ли расположить оси как http://school35.ucoz.ru/grapher/grapher_e.htm.
И нет ли более подробного мануала по qwt ?

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)