Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

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

Anna | 24.06.2014 | нет комментариев

Я теснее спрашивал по этому поводу, вот тут. Но тогда не получилось задать абсолютно определенный вопрос. Так вот, повторюсь. Есть комплект точек, 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

Это какая-то нерегулярная поверхность. Необходимо отобразить её. Применяется С .
Дабы наглядно показать, что необходимо, вот примерчик на 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()

И несколько поверхностей:
image

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

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB