Ejemplo n.º 1
0
def view_form(form):
    """ View thrust network with compas VtkViewer.

    Parameters
    ----------
    form : obj
        FormDiagram to view thrust network.

    Returns
    -------
    None

    """

    viewer = VtkViewer(datastructure=form)
    viewer.setup()
    viewer.start()
Ejemplo n.º 2
0
def plotvoxels(values, U, vdx, indexing=None):
    """ Plot values as voxel data.

    Parameters
    ----------
    values : array
        Normalised data at nodes.
    U : array
        Nodal co-ordinates.
    vdx : float
        Representative volume size for a voxel.

    Returns
    -------
    None

    """

    U = np.array(U)
    x = U[:, 0]
    y = U[:, 1]
    z = U[:, 2]
    xmin, xmax = min(x), max(x)
    ymin, ymax = min(y), max(y)
    zmin, zmax = min(z), max(z)
    X = np.linspace(xmin, xmax, (xmax - xmin) / vdx)
    Y = np.linspace(ymin, ymax, (ymax - ymin) / vdx)
    Z = np.linspace(zmin, zmax, (zmax - zmin) / vdx)
    Xm, Ym, Zm = np.meshgrid(X, Y, Z)
    # Zm, Ym, Xm = meshgrid(X, Y, Z, indexing='ij')

    f = abs(np.asarray(values))
    Am = np.squeeze(griddata(U, f, (Xm, Ym, Zm), method='linear',
                             fill_value=0))
    Am[np.isnan(Am)] = 0

    voxels = VtkViewer(data={'voxels': Am})
    voxels.setup()
    voxels.start()

    return Am
Ejemplo n.º 3
0
    n = 50
    a = linspace(-1, 1, n)
    xm, ym, zm = meshgrid(a, a, a)

    # Test points

    x = xm.ravel()
    y = ym.ravel()
    z = zm.ravel()

    r = x**2 + y**2 + z**2
    lg = r < 0.05
    xs = x[lg][:, newaxis]
    ys = y[lg][:, newaxis]
    zs = z[lg][:, newaxis]

    points = hstack([xs, ys, zs])
    print(points.shape)

    # Distances

    distances = closest_distance_field_numba(xm, ym, zm, points)

    # View

    data = {'voxels': distances}
    viewer = VtkViewer(data=data)
    viewer.setup()
    viewer.start()