Интерполяция неструктурированных 3-мерных данных?

Я уже спрашивал по этому поводу, вот здесь. Но тогда не получилось задать вполне конкретный вопрос. Так вот, повторюсь. Есть набор точек, 3D:
xyz
0.83164676327109123.91259040293521124.2460486461065035e+009
1.10254942326806733.84504678375325514.2460486461065035e+009
1.62694657230330143.65418183057035864.2460486461065035e+009
.........
0.8370776849271087-11.97076860311805804.2380933897388258e+009
-0.0000000000024552-12.00000000000000004.2359237743658228e+009
-0.8370776849320072-11.97076860311771504.2337541589928198e+009
.........


Это какая-то нерегулярная поверхность. Нужно отобразить её. Используется С++.

Чтобы наглядно показать, что нужно, вот примерчик на Python(язык не знаю):
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from scipy.interpolate import griddata

fig = plt.figure(figsize=plt.figaspect(0.5))
ax = fig.gca(projection='3d')
my_data = np.genfromtxt('data.csv', delimiter=',',skiprows=0)
X = my_data[:,0]
Y = my_data[:,1]
Z = my_data[:,2]

xi = np.linspace(X.min(),X.max(),1000)
yi = np.linspace(Y.min(),Y.max(),1000)

zi = griddata((X, Y), Z, (xi[None,:], yi[:,None]), method='cubic')

xig, yig = np.meshgrid(xi, yi)

surf = ax.plot_surface(xig, yig, zi,linewidth=0.5,color='DarkKhaki',alpha=0.50)

plt.show()


И несколько поверхностей:
294d319ff6a893f1d55b45adae9ca1c1.png
e35f02e2197de043e3b87097cccf487b.png
e8fdeae493dab8ca14a47dab18395449.png


Подскажите библиотеку на С/С++(?). Или метод, для его реализации. Количество точек может достигать 10000, но в среднем — до 5000 точек.

P.S: а это случайно не Nearest neighbour weighted interpolation?
  • Вопрос задан
  • 4458 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ни чего не нужно интерполировать. Вам нужен 3d-график.
gnuplot должен подойти.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы