English: Laguerre-Gaussian transverse mode patterns.
Bigger and better version created with the help of the Python script below
Русский: моды оптического резонатора с круглыми зеркалами
#!/usr/bin/env python
import sys
import Image
from math import *
from scipy.special.orthogonal import genlaguerre
size = 320
I_0 = 1.
w = size/4.
p = int(sys.argv[1])
l = int(sys.argv[2])
def linear_to_sRGB(l):
# Formula from http://www.w3.org/Graphics/Color/sRGB
if l <= 0.00304:
l = 12.92*l
else:
l = 1.055*pow(l,1.0/2.4) - 0.055
return 255.0*l
# First, let's make a floating-point image of the raw intensities.
raw = Image.new('F', (size,size))
high = 0
for x in range(1, size, 2):
for y in range(1, size, 2):
r = hypot(x,y)
phi = atan2(x,y)
rho = 2*r**2/w**2
I = I_0 * rho**l * (genlaguerre(p,l)(rho))**2 \
* (cos(l*phi))**2 * exp(-rho)
if I > high: high = I
raw.putpixel((size/2+(x-1)/2,size/2+(y-1)/2), I)
raw.putpixel((size/2+(x-1)/2,size/2-(y+1)/2), I)
raw.putpixel((size/2-(x+1)/2,size/2+(y-1)/2), I)
raw.putpixel((size/2-(x+1)/2,size/2-(y+1)/2), I)
print 'row ' + str((x+1)/2) + ' of ' + str(size/2) + ' complete'
# Now, let's normalize them and export them as sRGB.
cooked = Image.new('L', (size,size))
for x in range(size):
for y in range(size):
I = raw.getpixel((x,y))/high
cooked.putpixel((x,y), linear_to_sRGB(I))
print 'row ' + str(x+1) + ' of ' + str(size) + ' complete'
DrBob in der Wikipedia auf Englisch, der Urheberrechtsinhaber dieses Werkes, veröffentlicht es hiermit unter der folgenden Lizenz:
Es ist erlaubt, die Datei unter den Bedingungen der GNU-Lizenz für freie Dokumentation, Version 1.2 oder einer späteren Version, veröffentlicht von der Free Software Foundation, zu kopieren, zu verbreiten und/oder zu modifizieren; es gibt keine unveränderlichen Abschnitte, keinen vorderen und keinen hinteren Umschlagtext.
Der vollständige Text der Lizenz ist im Kapitel GNU-Lizenz für freie Dokumentation verfügbar.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue
verbreitet werden – vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden
neu zusammengestellt werden – abgewandelt und bearbeitet werden
Zu den folgenden Bedingungen:
Namensnennung – Du musst angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade dich oder deine Nutzung besonders.
{{BotMoveToCommons|en.wikipedia}} {{Information |Description={{en|Laguerre-Gaussian transverse mode patterns. Bigger and better version created with the help of this Python script: #!/usr/bin/env python import sys import Image from math import *