File originale (file in formato SVG, dimensioni nominali 512 × 780 pixel, dimensione del file: 46 KB)

Logo di Commons
Logo di Commons
Questo file e la sua pagina di descrizione (discussione · modifica) si trovano su Wikimedia Commons (?)

Dettagli

Descrizione
English: Homology cycles on a torus. Radius of magenta circle is and radius of red circle is . Image created in python and subsequently cropped and rotated manually using a text editor.
Data
Fonte Opera propria
Autore Krishnavedala
Altre versioni
SVG sviluppo
InfoField
 
Il codice sorgente di questo file SVG è valido.
 
Questa grafica vettoriale è stata creata con Matplotlib.
Codice sorgente
InfoField

Python code

Source code
from mpl_toolkits.mplot3d import axes3d
from matplotlib.patches import Circle
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.art3d as art3d
import numpy as np

R, r = 15, 5

def get_x(phi, theta):
    global r, R
    return (R + r * np.cos(phi)) * np.cos(theta)

def get_y(phi, theta):
    global r, R
    return (R + r * np.cos(phi)) * np.sin(theta)

def get_z(phi, theta):
    global r
    return r * np.sin(phi)

if __name__ == "__main__":
    fig = plt.figure(figsize=(10,10))
    ax = fig.add_subplot(111, projection='3d')

    ph = th = np.linspace (-np.pi, np.pi,30)
    phi, theta = np.meshgrid (ph, th)

    x = np.array([get_x(p,t) for p,t in zip(np.ravel(phi), np.ravel(theta))])
    X = x.reshape(phi.shape)
    y = np.array([get_y(p,t) for p,t in zip(np.ravel(phi), np.ravel(theta))])
    Y = y.reshape(phi.shape)
    z = np.array([get_z(p,t) for p,t in zip(np.ravel(phi), np.ravel(theta))])
    Z = z.reshape(phi.shape)
    C1 = Circle( (R,0), radius=r, fc='none', ec='red')
    C2 = Circle( (0,0), radius=R, fc='none', ec='magenta')

    ax.plot_wireframe(X, Y, Z, color='#CCCCCC')
    ax.add_patch(C1)
    ax.add_patch(C2)
    art3d.pathpatch_2d_to_3d(C1, z=0, zdir='y')
    art3d.pathpatch_2d_to_3d(C2, z=r, zdir='z')

    ax.set_xlim3d(-20,20)
    ax.set_ylim3d(-20,20)
    ax.set_zlim3d(-20,20)
    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    ax.set_zlabel('Z')
    ax.set_axis_off()

    ax.view_init(elev=30, azim=-45)
    plt.show()
    plt.savefig('torus.svg', bbox_inches='tight', pad_inches=.15, \
        bbox_extra_artists=[C1,C2], transparent='true')

Licenza

Io, detentore del copyright su quest'opera, dichiaro di pubblicarla con la seguente licenza:
Creative Commons CC-Zero Questo file è reso disponibile nei termini della licenza Creative Commons CC0 1.0 Universal.
La persona che ha associato un'opera con questo atto legale ha donato tale opera nel pubblico dominio rinunciando a tutti i diritti sull'opera in tutto il mondo, inclusi tutti i diritti connessi o altri diritti simili, per quanto permesso dalla legge. Puoi copiare, modificare, distribuire ed utilizzare l'opera, anche a fini commerciali, senza chiedere alcun permesso.

Didascalie

Aggiungi una brevissima spiegazione di ciò che questo file rappresenta

Elementi ritratti in questo file

raffigura

Cronologia del file

Fare clic su un gruppo data/ora per vedere il file come si presentava nel momento indicato.

Data/OraMiniaturaDimensioniUtenteCommento
attuale17:38, 14 apr 2014Miniatura della versione delle 17:38, 14 apr 2014512 × 780 (46 KB)Krishnavedala

La seguente pagina usa questo file:

Utilizzo globale del file

Anche i seguenti wiki usano questo file:

Metadati