File:Poincare-sphere_stokes.svg
De Wikipedia, l'encyclopédie encyclopedia
Fichier d’origine (Fichier SVG, nominalement de 600 × 600 pixels, taille : 4 kio)
Ce fichier et sa description proviennent de Wikimedia Commons.
Description
DescriptionPoincare-sphere stokes.svg |
English: Drawing of a Poincaré sphere, which illustrates the space of possible polarisations of electromagnetic waves. The sphere is drawn with three great circles and labels for six basic polarisations H (linear horizontal), V (linear vertical), D (linear diagonal), A (linear antidiagonal), R (right-hand circular) and L (left-hand circular). Additionally the coordinate system of Stokes vectors with components S₁, S₂ and S₃ is drawn in the center of the sphere.
Deutsch: Zeichnung einer Poincaré-Kugel, die den Raum der möglichen Polarisationen elektromagnetischer Wellen darstellt. Die Kugel ist mit drei Großkreisen gezeichnet und mit Zeichen für die sechs Basispolarisationen H (linear horizontal), V (linear vertikal), D (linear diagonal), A (linear antidiagonal), R (rechtshändig zirkular) and L (linkshändig zirkular). Zusätzlich befindet sich im Zentrum der Kugel das Koordinatensystem aus Stokesvektorkomponenten S₁, S₂ and S₃. |
Date | |
Source | Travail personnel |
Auteur | Geek3 |
Autres versions | Poincare-sphere_arrows.svg (with additional small images of the polarisation vectors) |
Source Code
The image is created by the following source-code. Requirements:
python3 source code:
# -*- coding: utf-8 -*-
try:
import svgwrite as svg
except ImportError:
print('You need to install svgwrite: http://pypi.python.org/pypi/svgwrite/')
# documentation at http://pythonhosted.org/svgwrite/
exit(1)
from math import *
def to_xyz(theta, phi, r=1):
return r * sin(theta) * cos(phi), r * sin(theta) * sin(phi), r * cos(theta)
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)
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))
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
doc = svg.Drawing('poincare-sphere_stokes.svg', profile='full', size=size)
doc.set_desc('poincare-sphere_stokes.svg', '''Drawing of a poincare-sphere with polarisations H, V, D, A, R and L, and a coordinate system of Stokes-Vectors S1, S2 and S3
rights: GNU Free Documentation license,
Creative Commons Attribution ShareAlike license''')
# settings
dash = '8,6'
col = 'black'
r = 240
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_d = 'M -4,0 L 2,-3 L 1,0 L 2,3 L -4,0 z'
arrow1 = doc.marker(id='arrow1', orient='auto', overflow='visible')
arrow1.add(doc.path(d=arrow_d, fill=col, stroke='none',
transform='rotate(180) scale(0.7)'))
doc.defs.add(arrow1)
arrow2 = doc.marker(id='arrow2', orient='auto', overflow='visible')
arrow2.add(doc.path(d=arrow_d, fill=col, stroke='none',
transform='scale(0.7)'))
doc.defs.add(arrow2)
arrow3 = doc.marker(id='arrow3', orient='auto', overflow='visible')
arrow3.add(doc.path(d='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', fill=col, stroke='none',
transform='scale(0.8) rotate(180)'))
doc.defs.add(arrow3)
# make a group for the sphere
sphere = doc.g(transform='translate(300, 300)', fill='none', stroke=col, stroke_width='2')
sphere['font-family'] = 'DejaVu Sans'
sphere['font-size'] = '42px'
doc.add(sphere)
# back ellipses
sphere.add(doc.path(d=ellipse_path(0, 0, tilt),
stroke_dasharray=dash, stroke=col))
sphere.add(doc.path(d=ellipse_path(pi/2, phi, tilt, True),
stroke_dasharray=dash, stroke=col))
sphere.add(doc.path(d=ellipse_path(pi/2, phi+pi/2, tilt),
stroke_dasharray=dash, stroke=col))
# draw coordinate axes
sphere.add(doc.circle(center=(0, 0), r=5, fill=col, stroke='none'))
for i in range(3):
xyz = [0, 0, 0]
xyz[i] = 0.3 * r
x, y, z = xyz
x, y, z = rotx(x*cp + y*sp, y*cp - x*sp, z, tilt)
line = doc.line(start=(0, 0), end=('%f' % x, '%f' % y), stroke=col)
line['marker-end'] = arrow3.get_funciri()
sphere.add(line)
# the six defined points
pts = []
for x,y,z in [[0,0,-1], [0,0,1], [0,-1,0], [0,1,0], [-1,0,0], [1,0,0]]:
x, y, z = rotx(r * (x*cp + y*sp), r * (y*cp - x*sp), r * z, tilt)
if z >= 0:
continue
pts.append((x, y))
sphere.add(doc.circle(center=('%f' % x, '%f' % y), r=6,
fill=col, stroke='none'))
# V label
sphere.add(doc.text('V', text_anchor='middle',
transform='translate(144, -86)', stroke='none', fill=col))
# Stokes-Vector labels
sphere.add(doc.text('P₁', text_anchor='middle',
transform='translate(-56, 33)', stroke='none', fill=col))
sphere.add(doc.text('P₂', text_anchor='middle',
transform='translate(63, -2)', stroke='none', fill=col))
sphere.add(doc.text('P₃', text_anchor='middle',
transform='translate(-29, -59)', 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'))
# the six defined points
for x,y,z in [[0,0,-1], [0,0,1], [0,-1,0], [0,1,0], [-1,0,0], [1,0,0]]:
x, y, z = rotx(r * (x*cp + y*sp), r * (y*cp - x*sp), r * z, tilt)
if z < 0:
continue
pts.append((x, y))
sphere.add(doc.circle(center=('%f' % x, '%f' % y), r=6,
fill=col, stroke='none'))
# H, D, A, R, L labels
sphere.add(doc.text('H', text_anchor='middle',
transform='translate(-144, 115)', stroke='none', fill=col))
sphere.add(doc.text('D', text_anchor='middle',
transform='translate(272, 52)', stroke='none', fill=col))
sphere.add(doc.text('A', text_anchor='middle',
transform='translate(-272, -26)', stroke='none', fill=col))
sphere.add(doc.text('R', text_anchor='middle',
transform='translate(0, -261)', stroke='none', fill=col))
sphere.add(doc.text('L', text_anchor='middle',
transform='translate(0, 291)', stroke='none', fill=col))
# front ellipses
sphere.add(doc.path(d=ellipse_path(0, 0, tilt, True)))
sphere.add(doc.path(d=ellipse_path(pi/2, phi, tilt)))
sphere.add(doc.path(d=ellipse_path(pi/2, phi+pi/2, tilt, True)))
# circle edge
sphere.add(doc.circle(center=(0, 0), r=str(r)))
doc.save()
Conditions d’utilisation
Vous avez la permission de copier, distribuer et modifier ce document selon les termes de la GNU Free Documentation License version 1.2 ou toute version ultérieure publiée par la Free Software Foundation, sans sections inaltérables, sans texte de première page de couverture et sans texte de dernière page de couverture. Un exemplaire de la licence est inclus dans la section intitulée GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
- Vous êtes libre :
- de partager – de copier, distribuer et transmettre cette œuvre
- d’adapter – de modifier cette œuvre
- Sous les conditions suivantes :
- paternité – Vous devez donner les informations appropriées concernant l'auteur, fournir un lien vers la licence et indiquer si des modifications ont été faites. Vous pouvez faire cela par tout moyen raisonnable, mais en aucune façon suggérant que l’auteur vous soutient ou approuve l’utilisation que vous en faites.
Cette image a été promue au rang d'image de qualité d'après les critères du Guide des images.
العربية ∙ جازايرية ∙ беларуская ∙ беларуская (тарашкевіца) ∙ български ∙ বাংলা ∙ català ∙ čeština ∙ Cymraeg ∙ Deutsch ∙ Schweizer Hochdeutsch ∙ Zazaki ∙ Ελληνικά ∙ English ∙ Esperanto ∙ español ∙ eesti ∙ euskara ∙ فارسی ∙ suomi ∙ français ∙ galego ∙ עברית ∙ हिन्दी ∙ hrvatski ∙ magyar ∙ հայերեն ∙ Bahasa Indonesia ∙ italiano ∙ 日本語 ∙ Jawa ∙ ქართული ∙ 한국어 ∙ kurdî ∙ Lëtzebuergesch ∙ lietuvių ∙ македонски ∙ മലയാളം ∙ मराठी ∙ Bahasa Melayu ∙ Nederlands ∙ Norfuk / Pitkern ∙ polski ∙ português ∙ português do Brasil ∙ rumantsch ∙ română ∙ русский ∙ sicilianu ∙ slovenčina ∙ slovenščina ∙ shqip ∙ српски / srpski ∙ svenska ∙ தமிழ் ∙ తెలుగు ∙ ไทย ∙ Tagalog ∙ Türkçe ∙ toki pona ∙ українська ∙ vèneto ∙ Tiếng Việt ∙ 中文 ∙ 中文(简体) ∙ 中文(繁體) ∙ +/− |
Éléments décrits dans ce fichier
dépeint
Valeur sans élément de Wikidata
31 août 2014
image/svg+xml
Historique du fichier
Cliquer sur une date et heure pour voir le fichier tel qu'il était à ce moment-là.
Date et heure | Vignette | Dimensions | Utilisateur | Commentaire | |
---|---|---|---|---|---|
actuel | 31 août 2014 à 19:49 | 600 × 600 (4 kio) | Geek3 | fixing labels | |
31 août 2014 à 19:31 | 600 × 600 (4 kio) | Geek3 | Poincare Sphere with Stokes vectors |
Utilisation du fichier
Aucune page n’utilise ce fichier.
Usage global du fichier
Les autres wikis suivants utilisent ce fichier :
- Utilisation sur vi.wikipedia.org
- Không–thời gian
- Không gian đa chiều
- Đa tạp
- Điểm (hình học)
- Không gian afin
- Không gian Euclid
- Đa vũ trụ
- Số chiều Hausdorff
- Siêu phẳng
- Chiều
- Không gian ba chiều
- Bản mẫu:Chủ đề chiều
- Không gian bốn chiều
- Siêu mặt
- Không gian một chiều
- Bậc tự do
- Không gian hai chiều
- Không gian năm chiều
- Không gian không chiều
- Không gian xạ ảnh
- Chiều (không gian vectơ)
Métadonnées
Ce fichier contient des informations supplémentaires, probablement ajoutées par l'appareil photo numérique ou le numériseur utilisé pour le créer.
Si le fichier a été modifié depuis son état original, certains détails peuvent ne pas refléter entièrement l'image modifiée.
Titre court | poincare-sphere_stokes.svg |
---|---|
Titre de l’image | Drawing of a poincare-sphere with polarisations H, V, D, A, R and L, and a coordinate system of Stokes-Vectors S1, S2 and S3
rights: GNU Free Documentation license, Creative Commons Attribution ShareAlike license |
Largeur | 600 |
Hauteur | 600 |