Skeda:Torus cycles.svg

Nga testwiki
Kërceni tek navigimi Kërceni tek kërkimi
Skedari origjinal (skedë SVG, fillimisht 512 × 780 pixel, madhësia e skedës: 46 KB)

Kjo skedë është nga Wikimedia Commons dhe mund të përdoret nga projektet e tjera. Përshkrimi në faqen përshkruese të skedës është treguar më poshtë.

Përmbledhje

Përshkrimi
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
Burimi Punë e juaja
Autori Krishnavedala
Versione tjera
SVG genesis
InfoField
 The SVG code is valid.
 This plot was created with Matplotlib.
Kodi burimor
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')

Licencim

Unë, krijuesi i kësaj pune, e publikoj këtu në bazë të licensës në vijim:
Creative Commons CC-Zero Kjo skedë është bërë e mundur nën Creative Commons CC0 1.0 Universal Public Domain Dedication.
Personi që lidhi një punë me këtë vepër ia ka dedikuar punën public domain duke shmangur të gjitha të drejtat e tij apo të saj për punën në mbarë botën nën ligjin e të drejtës së autorit, duke përfshirë të gjitha të drejtat e lidhura dhe fqinje, deri në masën e lejuar me ligj. Ju mund ta kopjoni, modifikoni, shpërndani dhe të kryeni pune, madje edhe për qëllime komerciale, të gjitha pa kërkuar leje.

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

përshkruan

14 prill 2014

Historiku i skedarit

Kliko mbi një datë/orë për ta parë skedarin siç është shfaqur në atë kohë.

Data/OraMiniaturaPërmasatPërdoruesiKoment
e tanishme14 prill 2014 17:38Miniaturë për versionin duke filluar nga 14 prill 2014 17:38512 × 780 (46 KB)wikimediacommons>Krishnavedala

faqe lidhet tek kjo skedë: