t = numpy.linspace(0, 2.0 * numpy.pi, nb + 1) rb = numpy.ones(len(t)) #1.0 + 0.1*numpy.cos(3.0*t) ub = rb * numpy.cos(t) vb = rb * numpy.sin(t) for i, j in enumerate(boundary): #L[j,:] = 0.0 #L[j,j] = 1.0 uv[j, 0] = ub[i] uv[j, 1] = vb[i] # solve #uv = numpy.linalg.solve(L, uv) uv = scipy.sparse.linalg.spsolve(Ls, uv) # make halfedge mesh for plot mesh = lhe.pydata_to_SurfaceMesh(uv, f2v) # plot fig, ax = plt.subplots() lhe.plot_mesh(mesh, ax, faces=False, halfedges=False, vertices=False, v2h=False, v2f=False, count_from_1=False) ax.set_aspect('equal') plt.show()
f2v.extend(values) print ' ok.' if False: fig, ax = plt.subplots() for f in f2v: v = f[:] + [f[0]] x = [xy[i][0] for i in v] y = [xy[i][1] for i in v] ax.plot(x, y, 'k-') ax.set_aspect('equal') plt.show() # MAKE HALFEDGE DS print 'make halfedge DS...' mesh = lhe.pydata_to_SurfaceMesh(xy, f2v) print ' ok.' if False: print[v.edge for v in mesh.verts] fig, ax = plt.subplots() lhe.plot_mesh(mesh, ax, faces=False, edges=True, halfedges=False, vertices=False, boundaries=False, v2h=True, v2f=False, count_from_1=False)
obj = bpy.data.objects['nefertitiobj'] me = obj.data scene.objects.active = obj obj.select = True """ bpy.ops.object.modifier_add(type='SUBSURF') obj.modifiers['Subsurf'].subdivision_type = 'SIMPLE' bpy.ops.object.modifier_apply(apply_as='DATA', modifier='Subsurf') bpy.ops.object.modifier_add(type='TRIANGULATE') obj.modifiers['Triangulate'].quad_method = 'SHORTEST_DIAGONAL' bpy.ops.object.modifier_apply(apply_as='DATA', modifier='Triangulate') """ vco, f2v = lbu.mesh_to_pydata(me) mesh = lhe.pydata_to_SurfaceMesh(vco, f2v) bpy.ops.object.mode_set(mode='EDIT') bpy.ops.mesh.select_all(action='DESELECT') bpy.ops.mesh.select_mode(type='VERT') bpy.ops.object.mode_set(mode='OBJECT') boundary_loops = lhe.get_boundary_loops(mesh) """ # draw boundary loops thickness = obj.dimensions.length*1e-3 for iloop, loop in enumerate(boundary_loops): lbu.pydata_to_polyline([me.vertices[ivert].co for ivert in loop], name='boundary_loop_'+str(iloop), thickness=thickness, resolution_u=24,
print 'read data...' if False: pth = ROOT + 'GitHub/FFTsurf/test/demo_EoS_brep/' iface = 5 strf = format(iface, '03') tri = numpy.loadtxt(pth + 'brepmesh/tri_' + strf + '.dat', dtype=int) - 1 xyz = numpy.loadtxt(pth + 'brepmesh/xyz_' + strf + '.dat', dtype=float) else: pth = ROOT + 'Téléchargements/ne_50m_admin/' land = 'bolivia' #'bolivia_mali_iceland' xyz = numpy.loadtxt(pth + land + '_xy.dat') tri = numpy.loadtxt(pth + land + '_tri.dat', dtype=int) print ' ok.' print 'make halfedge DS...' mesh = lhe.pydata_to_SurfaceMesh(xyz[:, 0:2], tri) print ' ok.' import matplotlib.pyplot as plt fig, ax = plt.subplots() print 'plot...' lhe.plot_mesh(mesh, ax, faces=False, edges=False, halfedges=True, vertices=False, boundaries=False, v2h=False, v2f=False,