def plot_control_mesh(ax, control_points, label=False): """ Plot the control mesh of a NURBS given by its control points. """ dim = control_points.shape[-1] ax = _get_axes(ax, dim) shape = control_points.shape conn, desc = get_tensor_product_conn(nm.array(shape[:-1])) gel = GeometryElement(desc) coors = control_points.reshape((-1, dim)) ax = pd.plot_mesh(ax, coors, conn, gel.edges) pd.plot_points(ax, coors) if label: for ii, cc in enumerate(coors): if dim == 3: cx, cy, cz = cc ax.text(cx, cy, cz, '%d' % ii, color='g', fontsize=12, weight='bold') else: cx, cy = cc ax.text(cx, cy, '%d' % ii, color='g', fontsize=12, weight='bold') return ax
def plot_bezier_mesh(ax, control_points, conn, degrees, label=False): """ Plot the Bezier mesh of a NURBS given by its control points and connectivity. """ dim = control_points.shape[-1] ax = _get_axes(ax, dim) edges = _get_edges(conn.shape[1], nm.asarray(degrees) + 1) ax = pd.plot_mesh(ax, control_points, conn, edges) pd.plot_points(ax, control_points) if label: ax = pd.plot_global_dofs(ax, control_points, conn) return ax
def plot_control_mesh(ax, control_points, label=False): """ Plot the control mesh of a NURBS given by its control points. """ dim = control_points.shape[-1] ax = _get_axes(ax, dim) shape = control_points.shape conn, desc = get_tensor_product_conn(nm.array(shape[:-1])) gel = GeometryElement(desc) coors = control_points.reshape((-1, dim)) ax = pd.plot_mesh(ax, coors, conn, gel.edges) pd.plot_points(ax, coors) if label: for ii, cc in enumerate(coors): ax.text(*cc, s="%d" % ii, color="g", fontsize=12, weight="bold") return ax
def plot_parametric_mesh(ax, knots): """ Plot the parametric mesh of a NURBS given by its knots. """ knots = _get_knots_tuple(knots) dim = len(knots) ax = _get_axes(ax, dim) uknots = [nm.unique(ii) for ii in knots] shape = [len(ii) for ii in uknots] ngrid = nm.mgrid[[slice(ii) for ii in shape]] coors = nm.r_[[uknots[ii][ig].ravel() for ii, ig in enumerate(ngrid)]].T conn, desc = get_tensor_product_conn(nm.array(shape)) gel = GeometryElement(desc) ax = pd.plot_mesh(ax, coors, conn, gel.edges) pd.plot_points(ax, coors) return ax