コード例 #1
0
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()
コード例 #2
0
            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)
コード例 #3
0
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,
コード例 #4
0
ファイル: test_halfedge.py プロジェクト: summereasy/Code
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,