LINUX.ORG.RU

[C++] Работа с диаграммами

 


0

1

Не подскажете что либо для работы с диаграмами? Желательно в свяке с qt. Нарисовать надо гистограмму со столбцами в виде конусов. (чтото типа http://it.kgsu.ru/MSExcel/images/ris91_1.jpg). Смотрел в сторону qwt но он вроде такого не умеет..


А почему в виде конусов, если не секрет? Наглядность диаграммы от этого только проигрывает.

stormy
()
Ответ на: комментарий от stormy

смотрел еще mathgl plplot & qwtplot3d они умеют рисовать 3D графики но чегото похожего на 3д гистограммы я в примерах не увидел...

Stvad
() автор топика
Ответ на: комментарий от Stvad

возможно можно наследоваться от qwtplot3d и добавить функциональности

Vernat ★★
()

MathGL Вас спасет;-)

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

AIv ★★★★★
()
Ответ на: комментарий от aho

Это Вы не умеете в нем такого;-). Если у гнуплота нет конусов как диаграмм, строите конуса как параметризованные фигуры например и включаете pm3d - будет тыц в тыц как нужно ТС-у.

AIv ★★★★★
()
Ответ на: комментарий от AIv

> Это Вы не умеете в нем такого;-)

не прикидывайтесь идиотом, в gnuplot можно хоть руками каждый отрезок нарисовать, от этого gnuplot не становится универсальным

aho
()
Ответ на: комментарий от aho

не прикидывайтесь идиотом, в gnuplot можно хоть руками каждый отрезок нарисовать, от этого gnuplot не становится универсальным

эм... именно поэтому он и является универсальным, если же Вам нужен инструмент, который умеет строить именно конуса, то это уже специализированное средство

shty ★★★★★
()
Ответ на: комментарий от shty

> эм... именно поэтому он и является универсальным

по такой логике - cairo универсальная библиотека для построения диаграмм

aho
()
Ответ на: комментарий от aho

> эм... именно поэтому он и является универсальным

по такой логике - cairo универсальная библиотека для построения диаграмм

всё так, но только не для «построения диаграмм», а для рендеринга векторной графики

shty ★★★★★
()
Ответ на: комментарий от aho

Лучше прикидываться идиотом (типа как я), чем быть идиотом (типа как Вы ;-)).

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

MathGL лучше (в частности быстрее) гнуплота строит поверхности, и думаю со временем она таки гнуплот вытеснит из некоторых ниш (уже вытеснила) + есть привязки к большинству актуальных ЯП. MathGL тоже универсальна.

Есть узкоспециализированные средства для построения диаграмм, типа ехеля для манагеров, к-е умеют строить конусы и пирамидки, но никто в здравом уме и твердой памяти ими пользоваться тут не будет.

AIv ★★★★★
()
Ответ на: комментарий от shty

> всё так, но только не для «построения диаграмм», а для рендеринга векторной графики

ну дык и называйте gnuplot тогда также, потому как вручную обрабатывать исходные данные, рассчитывать параметры и пр. - это не то, что люди ожидают от библиотеки для построения диаграмм

aho
()
Ответ на: комментарий от AIv

> Лучше прикидываться идиотом (типа как я), чем быть идиотом (типа как Вы ;-)).

ты уже тут давно - все прекрасно знают кто из нас идиот

Вы заявили что гнуплот не умеет строить картинки требуемые ТС-у, я Вам описал как это в гнуплоте делается


и ты опять подтвердил свой статус - потому-что только дебил предложит человеку, желающему купить дом, прикупить кирпичей для его постройки

aho
()
Ответ на: комментарий от shty

> ибо универсальность предполагает больший охват, а специализация глубину проработки

+100500. Если кайра (не знаю что это) умеет строить оси с метками и проч (одной командой) и строить графики ф-й (одной командой) - то это универсальный графопостроитель. А лепить фиговины заточенные для построения диаграмм мне представляется избыточным - любой нормальный универсальный графопостроитель может быть настроен на любые диаграммы легким движением руки, можно это оформить в скрипт и вперед...

AIv ★★★★★
()
Ответ на: комментарий от aho

> всё так, но только не для «построения диаграмм», а для рендеринга векторной графики

ну дык и называйте gnuplot тогда также, потому как вручную обрабатывать исходные данные, рассчитывать параметры и пр. - это не то, что люди ожидают от библиотеки для построения диаграмм

да это пожалуйста, я не возражаю

просто Ваше высказывание:

от этого gnuplot не становится универсальным

было не совсем корректным

shty ★★★★★
()
Ответ на: комментарий от aho

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

Но убеждать тебя в в чем либо мне откровенно лень - у тебя с логикой проблемы, да и мнение твое меня не интересует. Побудь-ка в моем игнор листе пока не научишься вести себя в обсчетсве (хотя бы не хамить незнакомым дядям).

AIv ★★★★★
()
Ответ на: комментарий от aho

> было не совсем корректным

корректным - я имел ввиду именно построение диаграмм, а не «рисование»

извините, но я не бабаванга

shty ★★★★★
()
Ответ на: комментарий от AIv

> а ты его послал куда то в новую зеландию

ну да - предложить таскать за собой консольную тулзу, с написанием руками всей логики, это ппц как правильное решение

да и мнение твое меня не интересует


внезапно, ага

хотя бы не хамить незнакомым дядям


я просто честный человек - когда вижу идиота( это было видно по твоим топикам про С++ ) с непомерным ЧСВ, так ему и говорю, что он такой есть

aho
()
Ответ на: комментарий от shty

> извините, но я не бабаванга

потому я и уточнил :)

aho
()

В gnuplot навскидку это делается так

set pm3d
set parametric
set ticslevel 0
set hidden3d
unset key
set isosamples 40
set view 80, 6

R=1 
fx(u,v,x0) = x0+sin(u)*v*R
fy(u,v,y0) = y0+cos(u)*v*R
fz(u,v,z0) = z0*(1-v)

splot [0:2*pi][0:1] fx(u,v,1), fy(u,v,0), fz(u,v,3), fx(u,v,5), fy(u,v,0), fz(u,v,4), fx(u,v,9), fy(u,v,0), fz(u,v,5)

pause -1

Зарамочное оформление и вывод в нужный формат строятся уже под задачу, строка начинающаяся со splot генерится из С++.

AIv ★★★★★
()
Ответ на: комментарий от AIv

еще раз внимательно посмотри, что нужно ТС

aho
()
Ответ на: комментарий от Stvad

> смотрел еще mathgl plplot & qwtplot3d они умеют рисовать 3D графики но чегото похожего на 3д гистограммы я в примерах не увидел...

В чистом виде нет (график редкий). Можно набрать из конусов mglGraph::Cone(), только их высоту/радиус придется считать вручную.

abalakin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.