OpenGL — 3D — график из набора точек

Собственно, есть набор точек, например:
x y z
0.8316467632710912 3.9125904029352112 4.2460486461065035e+009
1.1025494232680673 3.8450467837532551 4.2460486461065035e+009
1.6269465723033014 3.6541818305703586 4.2460486461065035e+009
... ... ...
0.8370776849271087 -11.9707686031180580 4.2380933897388258e+009
-0.0000000000024552 -12.0000000000000000 4.2359237743658228e+009
-0.8370776849320072 -11.9707686031177150 4.2337541589928198e+009
... ... ...


нужно построить график (чистый OpenGL или Qt). Проблема в том, что я не уверен — нужно ли как-то сортировать данные, а если не сортировать — наверное, нужно интерполировать…

Может кто знает, как это сделать или, может, подскажет какую-то C/C++ библиотеку для интерполяции(аппроксимация также подойдёт, думаю) 3d функций. Или, может, есть что-либо как-раз для этого сдучая?

Спасибо.
  • Вопрос задан
  • 9643 просмотра
Пригласить эксперта
Ответы на вопрос 3
becks
@becks
Так в чем собственно у вас проблема, что вы хотите получить?
Загвоздка в инструментах для построения 3D графиков на Qt? Посмотрите на этот qwtplot3d.sourceforge.net/

Нужно ли сортировать\интерполировать\аппроксимировать или нет, уже решать вам исходя из вашей задачи, что нужно получить, на каком интервале, может вам важна последовательность точек?.. Или ваши точки достаточно неравномерно разбросаны и вам не хватает «гладкости»?
Ответ написан
@Eddy_Em
Если сглаживание не нужно, то можно сделать триангуляцию и построить «как есть».
А еще можно B-сплайнами интерполировать данные, чтобы перейти от неравномерной сетке к равномерной, а потом уже построить простейшую триангуляцию (по тройкам соседних пикселей, делается это элементарно). Но вот только построение B-сплайнов на неравномерной сетке — отнюдь не тривиальная задача.

Рекомендую все-таки элементарщину: триангуляцию + построение. В любом случае, без триангуляции не обойтись (т.к. все равно придется сначала упорядочить данные).

Если задача не учебная, можно, например, mathGL использовать, чтобы не городить велосипеды. А если она вообще одноразовая, то и gnuplot подойдет.
Ответ написан
namespace
@namespace
Разработчик C++/Python
ИМХО Qt это не самое лучшее решение в данном случае. Не смотря на то, что я ужасно его люблю и много над ним работаю — графики рисовать мы не умеем. QWT — говенный, натив — сложно.

На вашем месте, пока разработчики Qt не сделают нормальное «scientific drawings», я бы использовал другой инструмент.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы