Пример #1
0
    def xfrac(idx):
        theta = (idx * dt) % twopi
        frac = theta / twopi
        return frac

    for i in range(n + 1):
        tc0.append(xfrac(i))
        tc1.append(1.0)
        tc0.append(xfrac(i))
        tc1.append(0.0)
        tc0.append(xfrac(i + 1))
        tc1.append(0.0)
        tc0.append(xfrac(i))
        tc1.append(1.0)
    tc = np.array((tc0, tc1)).T
    wc = cyl.texcoord2worldcoord(tc)

    if 1:
        fig = plt.figure()
        ax = fig.add_subplot(111, projection='3d')
        ax.plot(
            wc[:, 0],
            wc[:, 1],
            wc[:, 2],
        )
        ax.set_xlabel('x')
        ax.set_ylabel('y')
        ax.set_zlabel('z')
    fig.savefig('cyl.svg')
Пример #2
0
    cyl = Cylinder(base=vec3(0,0,0), axis=vec3(0,0,1), radius=0.5)
    tc0 = []
    tc1 = []
    n = 32
    twopi = 2*np.pi
    dt = twopi/n

    def xfrac(idx):
        theta = (idx*dt)%twopi
        frac = theta/twopi
        return frac

    for i in range(n+1):
        tc0.append( xfrac(i) ); tc1.append( 1.0 )
        tc0.append( xfrac(i) ); tc1.append( 0.0 )
        tc0.append( xfrac(i+1) );  tc1.append( 0.0 )
        tc0.append( xfrac(i) );  tc1.append( 1.0 )
    tc = np.array( (tc0, tc1) ).T
    wc = cyl.texcoord2worldcoord(tc)

    if 1:
        fig = plt.figure()
        ax = fig.add_subplot(111, projection='3d')
        ax.plot( wc[:,0],
                 wc[:,1],
                 wc[:,2], )
        ax.set_xlabel('x')
        ax.set_ylabel('y')
        ax.set_zlabel('z')
    fig.savefig('cyl.svg')
Пример #3
0
        v3, faces = generate_text_cube()
        observer_pos_all = np.repeat(observer_pos, v3.shape[1], axis=1)

        wc = cyl.get_first_surface(observer_pos_all.T, v3.T)
        tc = cyl.worldcoord2texcoord(wc)
    elif mode == 'edge':
        observer_pos_all = np.repeat(observer_pos,
                                     verts_world1.shape[1],
                                     axis=1)
        wc = cyl.get_first_surface(observer_pos_all.T, verts_world1.T)
        tc = cyl.worldcoord2texcoord(wc)

    rez = 512
    V, U = np.mgrid[0:1:rez * 1j, 0:1:rez * 1j]
    tc_grid = np.array([U.ravel(), V.ravel()]).T
    dense_geom = cyl.texcoord2worldcoord(tc_grid)
    diff = dense_geom - observer_pos[:, 0]
    #oVec = normalize(diff)
    oVec = diff
    oVec = diff + 1

    geom_image = np.zeros((rez, rez, 3))
    if 0:
        geom_image[:, :, 0].flat = diff[:, 0]
        geom_image[:, :, 1].flat = diff[:, 1]
        geom_image[:, :, 2].flat = diff[:, 2]

    elif 0:
        geom_image[:, :, 0].flat = U.flat
        geom_image[:, :, 1].flat = 0
        geom_image[:, :, 2].flat = 0
Пример #4
0
    mode = 'cubemap'
    if mode=='cubemap':
        v3, faces = generate_text_cube()
        observer_pos_all = np.repeat( observer_pos, v3.shape[1], axis=1)

        wc = cyl.get_first_surface( observer_pos_all.T, v3.T )
        tc = cyl.worldcoord2texcoord( wc )
    elif mode=='edge':
        observer_pos_all = np.repeat( observer_pos, verts_world1.shape[1], axis=1)
        wc = cyl.get_first_surface( observer_pos_all.T, verts_world1.T )
        tc = cyl.worldcoord2texcoord( wc )

    rez = 512
    V,U = np.mgrid[0:1:rez*1j,0:1:rez*1j]
    tc_grid = np.array([U.ravel(),V.ravel()]).T
    dense_geom = cyl.texcoord2worldcoord(tc_grid)
    diff = dense_geom-observer_pos[:,0]
    #oVec = normalize(diff)
    oVec = diff
    oVec = diff+1

    geom_image = np.zeros( (rez,rez,3) )
    if 0:
        geom_image[:, :, 0].flat = diff[:,0]
        geom_image[:, :, 1].flat = diff[:,1]
        geom_image[:, :, 2].flat = diff[:,2]

    elif 0:
        geom_image[:, :, 0].flat = U.flat
        geom_image[:, :, 1].flat = 0
        geom_image[:, :, 2].flat = 0