小编Tia*_*nho的帖子

如何将n,y,z坐标数组转换为numpy中的3D路径

给定三个X,Y和Z坐标的1D阵列,如何使用numpy转换为3D网格路径?

我设法使用numpy(即没有for循环)为2D做这个:

import numpy

def path_2d_numpy(x, y):
    m1, m2 = numpy.meshgrid(x, y)
    m1[1::2] = m1[1::2,::-1]
    r = numpy.append(m1, m2)
    r.shape = 2,-1
    return r.T

from matplotlib import lines
from matplotlib import pyplot

def plot_path_2d(path):
    x, y = path.T
    pyplot.plot(x, y, '-ro', lw=3)
    pyplot.show()

x = numpy.linspace(4, 1, 4)
y = numpy.linspace(1, 5, 5)
path = path_2d_numpy(x, y)
plot_path_2d(path)
Run Code Online (Sandbox Code Playgroud)

哪个输出:

2D网格路径

...但是无法为3D做到这一点.显示纯python解决方案(即没有numpy):

import numpy

def path_3d(x, y, z):
    nb_points =len(x)*len(y)*len(z)
    path = numpy.empty((nb_points, 3))

    xord, yord, i = True, True, 0
    for …
Run Code Online (Sandbox Code Playgroud)

python 3d numpy mesh path

9
推荐指数
1
解决办法
1160
查看次数

如何查找boost运行时版本

我正在编写一个使用boost的C++库.

在这个库中,我想包含有关用于编译库的二进制版本的boost版本的信息.我可以使用宏BOOST_VERSION,这很好.

我还想确定哪个是boost的运行时版本,所以我可以与用于编译我的库的boost版本进行比较.显然我不能使用宏,因为它会在编译时给我硬编码版本,而不是在运行时.

我需要的是一个boost函数(比如boost::get_version()).有没有办法在提升中做到这一点?

c++ boost

5
推荐指数
2
解决办法
1098
查看次数

标签 统计

3d ×1

boost ×1

c++ ×1

mesh ×1

numpy ×1

path ×1

python ×1