Immaggine:Sphere (parameters r, d).svg
![Immaggine:Sphere (parameters r, d).svg](http://178.128.105.246/content-http-upload.wikimedia.org/wikipedia/commons/thumb/f/f6/Sphere_%28parameters_r%2C_d%29.svg/600px-Sphere_%28parameters_r%2C_d%29.svg.png)
File òriginâle (file into formâto SVG, dimenscioìn nominâli 600 × 600 pixel, dimenscioìn do file: 7 KB)
Sto file chi o vêgne da Wikimedia Commons e o peu êse dêuviòu da âtri progètti. Chi de sótta ti ti peu védde a descriçión pigiâ da-a pàgina de descriçión do file.
Detàggi
DescriçiónSphere (parameters r, d).svg |
English: A figure showing radius and diameter of a sphere. |
Dæta | 2019-08-26T05:42Z |
Vivàgna |
Questo file deriva da: Poincare-sphere stokes.svg di Geek3 |
Aotô | Steven Baltakatei Sandoval |
Source Code
The image is created by the following source-code. Requirements:
python3 source code:
# -*- coding: utf-8 -*-
# This python3 code uses `svgwrite` to create an `svg` (Scalable
# Vector Graphics) file illustrating a sphere with radius and diameter
# depicted. The code was adapted from code available at
# https://commons.wikimedia.org/wiki/File:Poincare-sphere_stokes.svg
# to illustrate a Poincaré sphere, a geometric model important to
# describe polarisations of electromagnetic waves.
# This code is a derivative of Poincare-sphere stokes.svg ([[:File:Poincare-sphere_stokes.svg]]) by Geek3 (https://commons.wikimedia.org/wiki/User:Geek3) used under the CC BY 3.0 license ([[:File:Poincare-sphere_stokes.svg]]). This code is licensed under CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/) by Steven Baltakatei Sandoval.
try:
import svgwrite as svg
except ImportError:
print('You need to install svgwrite: https://pypi.org/project/svgwrite/')
# documentation at https://svgwrite.readthedocs.io/en/master/
exit(1)
from math import *
# define function to convert spherical coordinates (theta,phi,radius) into cartesian coordinates (x,y,z)
def to_xyz(theta, phi, r=1):
return r * sin(theta) * cos(phi), r * sin(theta) * sin(phi), r * cos(theta)
# define function to convert cartesian coordinates (x,y,z) into spherical coordinates (theta,phi,radius)
def to_theta_phi_r(x, y, z):
return atan2(z, sqrt(x**2 + y**2)), atan2(x, y), sqrt(x**2+y**2+z**2)
# define function to rotate (?) given cartesian coordinates (x,y,z) by angle (a) in radians.
def rotx(x, y, z, a):
y, z = cos(a) * y + sin(a) * z, cos(a) * z - sin(a) * y
return x, y, z
def ellipse_path(theta, phi, tilt, flip=False):
t, p, r2 = to_theta_phi_r(*rotx(*(to_xyz(theta, phi, 1) + (tilt,))))
a = abs(r)
b = abs(r * sin(t))
# Construct Path Command string. Commands include `M` ('moveto') and `A` ('elliptical-arc'.
# reference: https://svgwrite.readthedocs.io/en/master/classes/path.html
return 'M %f,%f A %f,%f %f %i,%i %f,%f' % (-r*cos(p), -r*sin(p),
a, b, p*180/pi, 0, {True:1, False:0}[flip], r*cos(p), r*sin(p))
# document
size = 600, 600 #600px = 450pt
doc = svg.Drawing('sphere_(param_r,d).svg', profile='full', size=size)
doc.set_desc('sphere_(param_r,d).svg', '''Drawing of a sphere with radius r and diameter d.
rights: GNU Free Documentation license,
Creative Commons Attribution ShareAlike 4.0 license''')
# settings
dash = '8,6'
col = 'black'
r = 220
tilt = radians(-70)
phi = radians(-25)
cp, sp = cos(phi), sin(phi)
# background
doc.add(doc.rect(id='background', profile='full', insert=(0, 0), size=size, fill='white', stroke='none'))
# arrow markers
arrow_e = 'M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z'
arrow3 = doc.marker(id='arrow3', orient='auto', overflow='visible')
arrow3.add(doc.path(d=arrow_e, fill=col, stroke='none',
transform='scale(0.8) rotate(180)'))
doc.defs.add(arrow3)
arrow4 = doc.marker(id='arrow4', orient='auto', overflow='visible')
arrow4.add(doc.path(d=arrow_e, fill=col, stroke='none',
transform='scale(0.8)'))
doc.defs.add(arrow4)
# make a group for the sphere and define SVG Presentation Attributes (See 'https://svgwrite.readthedocs.io/en/master/attributes/presentation.html')
sphere = doc.g(transform='translate(300, 300)', fill='none', stroke=col, stroke_width='2')
#sphere['font-family'] = 'DejaVu Sans'
sphere['font-family'] = 'Linux Libertine O'
sphere['font-size'] = '80px'
sphere['font-style'] = 'italic'
doc.add(sphere)
# back ellipses
sphere.add(doc.path(d=ellipse_path(0, 0, tilt),
stroke_dasharray=dash, stroke=col)) # horizontal back
sphere.add(doc.path(d=ellipse_path(pi/2, phi, tilt, True),
stroke_dasharray=dash, stroke=col)) # vertical back 1
sphere.add(doc.path(d=ellipse_path(pi/2, phi+pi/2, tilt),
stroke_dasharray=dash, stroke=col)) # vertical back 2
# draw center point
sphere.add(doc.circle(center=(0, 0), r=5, fill=col, stroke='none'))
# draw radius line
radius_angle = radians(-227)
radius_line = doc.line(start=(0, 0), end=(0.99*r*cos(radius_angle),0.99*r*sin(radius_angle)), stroke=col)
radius_line['marker-end'] = arrow3.get_funciri()
sphere.add(radius_line)
# draw radius label, r
radius_label_pos_x = str(-0.25*r)
radius_label_pos_y = str(0.22*r)
radius_label_transform_str = "translate(" + radius_label_pos_x + ", " + radius_label_pos_y + ")"
sphere.add(doc.text('r', text_anchor='middle',
transform=radius_label_transform_str, stroke='none', fill=col))
# sphere surface
grad1 = doc.defs.add(doc.radialGradient(id='grad1',
center=(0.375, 0.15), r=0.75, gradientUnits='objectBoundingBox'))
grad1.add_stop_color(offset=0, color='#ffffff', opacity=0.3)
grad1.add_stop_color(offset=1, color='#dddddd', opacity=0.3)
sphere.add(doc.circle(center=(0, 0), r=str(r),
fill='url(#grad1)', stroke='none'))
grad2 = doc.defs.add(doc.radialGradient(id='grad2',
center=(0.45, 0.45), r=0.575, gradientUnits='objectBoundingBox'))
grad2.add_stop_color(offset=0.6, color='#cccccc', opacity=0)
grad2.add_stop_color(offset=0.8, color='#cccccc', opacity=0.2)
grad2.add_stop_color(offset=1, color='#333333', opacity=0.2)
sphere.add(doc.circle(center=(0, 0), r=str(r),
fill='url(#grad2)', stroke='none'))
# front ellipses
sphere.add(doc.path(d=ellipse_path(0, 0, tilt, True))) #horizontal front
sphere.add(doc.path(d=ellipse_path(pi/2, phi, tilt))) #vertical front 1
sphere.add(doc.path(d=ellipse_path(pi/2, phi+pi/2, tilt, True))) #vertical front 2
# circle edge
sphere.add(doc.circle(center=(0, 0), r=str(r)))
# diameter line
diam_line = doc.line(start=(-0.995*r, -r*1.05), end=(0.995*r,-r*1.05), stroke=col)
diam_line['marker-start'] = arrow4.get_funciri()
diam_line['marker-end'] = arrow3.get_funciri()
sphere.add(diam_line)
# left diameter line limit
diam_line_llim = doc.line(start=(-1.005*r, -0.15*r), end=(-1.005*r,-1.20*r), stroke=col)
sphere.add(diam_line_llim)
# right diameter line limit
diam_line_rlim = doc.line(start=(1.005*r, -0.15*r), end=(1.005*r,-1.20*r), stroke=col)
sphere.add(diam_line_rlim)
# draw diameter label, d
diameter_label_pos_x = str(-0.00*r)
diameter_label_pos_y = str(-1.075*r)
diameter_label_transform_str = "translate(" + diameter_label_pos_x + ", " + diameter_label_pos_y + ")"
sphere.add(doc.text('d', text_anchor='middle',
transform=diameter_label_transform_str, stroke='none', fill=col))
doc.save()
Licénsa
![w:it:Creative Commons](http://178.128.105.246/content-https-upload.wikimedia.org/wikipedia/commons/thumb/7/79/CC_some_rights_reserved.svg/90px-CC_some_rights_reserved.svg.png)
![atribuçión](http://178.128.105.246/content-https-upload.wikimedia.org/wikipedia/commons/thumb/1/11/Cc-by_new_white.svg/24px-Cc-by_new_white.svg.png)
![condivìddi a-o mæximo mòddo](http://178.128.105.246/content-https-upload.wikimedia.org/wikipedia/commons/thumb/d/df/Cc-sa_white.svg/24px-Cc-sa_white.svg.png)
- Ti t'ê lìbero:
- de condivìdde – de copiâ, distriboî e trasmétte 'st'òpera chi
- de modificâ – de adatâ l'òpera
- A-e condiçioìn chi de sótta:
- atribuçión – Ti ti dêvi atriboî a paternitæ de l'òpera, indicâ o link a-a licénsa, e indicâ se són stæti fæti di cangiaménti ascì. Ti ti pêu fâ coscì inte 'n mòddo raxonévole e de mòddo da no sugerî che quélli ch'à dæto a licénsa sostêgnan ti ò a manêa inta quæ ti t'adêuvi l'òpera.
- condivìddi a-o mæximo mòddo – Se ti càngi, trasfórmi ò svilùppi o materiâle ti dêvi distriboî i tò contribûti segóndo 'na licénsa pægia ò conpatìbile a l'òriginâle.
Didascalie
creatore italian
Valô a brettio ma sensa un elemento Wikidata
stato del copyright italian
coperto da diritti d'autore italian
tipo di file italian
image/svg+xml
Cronologîa do file
Sciàcca in sce 'n grùppo dæta/ôa pe védde comm'o l'êa o file into moménto indicòu.
Dæta/Ôa | Miniatûa | Dimenscioìn | Uténte | Coménti | |
---|---|---|---|---|---|
prezénte | 07:57, 26 agó 2019 | ![]() | 600 × 600 (7 KB) | Baltakatei | User created page with UploadWizard |
Utilìzzo do file
A pàgina chi de sótta a contêgne di ligàmmi a sto file chi:
Utilìzzo globâle do file
Quésto file o l'é dêuviou da 'ste âtre wiki ascì:
- Dêuviòu inte pàgine de bg.wikipedia.org chi de sótta:
- Dêuviòu inte pàgine de de.wikiversity.org chi de sótta:
- Dêuviòu inte pàgine de eu.wikipedia.org chi de sótta:
- Dêuviòu inte pàgine de fr.wikipedia.org chi de sótta:
- Dêuviòu inte pàgine de it.wikipedia.org chi de sótta:
- Dêuviòu inte pàgine de nl.wikipedia.org chi de sótta:
- Dêuviòu inte pàgine de ru.wiktionary.org chi de sótta:
- Dêuviòu inte pàgine de sv.wiktionary.org chi de sótta:
Metadata
Sto file chi o contêgne de informaçioìn de ciù, mìsse fòscia da-a fòtocàmera ò da-o scàner dêuviòu pi-â sò creaçión ò digitalizaçión. Sò-u file o l'é stæto cangiòu, çèrti detàggi poriéivan no corispónde a-i cangiaménti fæti.
Tìtolo cùrto | Sphere (parameters r, d) |
---|---|
Tìtolo de l'inmàgine | Drawing of a sphere with radius r and diameter d.
rights: GNU Free Documentation license, Creative Commons Attribution ShareAlike 4.0 license |
Larghéssa | 600 |
Ertéssa | 600 |