Код: Выделить всё
curves =
[[[ 163.73873901 163.79016113 195.15170288]
[ 163.75410461 163.74798584 195.00090027]
[ 163.82121277 163.3908844 193.4805603 ]
...
[ 136.28196716 134.58721924 5.28508425]
[ 136.14976501 134.63981628 5.04161263]
[ 135.96887207 134.7321167 4.71693945]],
...
[[ 163.73873901 163.79016113 195.15170288]
[ 163.75410461 163.74798584 195.00090027]
[ 163.82121277 163.3908844 193.4805603 ]
...
[ 129.41056824 143.86738586 101.12477112]
[ 129.30464172 143.82444763 100.86767578]
[ 128.98980713 143.91737366 100.56091309]]]
Это как дерево, все кривые идут от корня ко всем ветвям.
Когда я это делаю:
Код: Выделить всё
for curve in curves:
x = curve[:, 0]
y = curve[:, 1]
z = curve[:, 2]
tck, u = splprep([x,y,z], s=0) # scipy.interpolate.splprep
unew = np.linspace(0, 1, 100)
out = splev(unew, tck)
ax.plot(out[0], out[1], out[2], label=f'B-spline Curve {idx+1}')
splprep возвращает ValueError: недопустимые входные данные.
Я знаю, что это ошибка, которая возникает, когда функция splprep обнаруживает точки, в которых входные данные повторяются (можно запустить splprep только с другой кривой), но количество кривых неизвестно, и мне нужно «for», чтобы контролировать количество выполнений.
как это исправить? ти!
Подробнее здесь: https://stackoverflow.com/questions/792 ... lid-inputs
Мобильная версия