1 |
teddy |
1.1 |
#!/usr/bin/python |
2 |
|
|
|
3 |
|
|
import cgi, Image, sys |
4 |
|
|
from string import atoi |
5 |
|
|
|
6 |
|
|
side= 400 |
7 |
|
|
maxiter= 200 |
8 |
|
|
|
9 |
|
|
form= cgi.FieldStorage() |
10 |
|
|
julia= Image.new("L",(side,side)) |
11 |
|
|
|
12 |
|
|
inx= atoi(form['image.x'].value) |
13 |
|
|
iny= atoi(form['image.y'].value) |
14 |
|
|
side2= side-1 |
15 |
|
|
|
16 |
|
|
c= (inx-285)/142.5 |
17 |
|
|
c= c+(iny-285)*(0+1j)/142.5 |
18 |
|
|
|
19 |
|
|
for x in range(0,side): |
20 |
|
|
for y in range(0,side/2+1): |
21 |
|
|
z= (x-(side/2.0))/(side/3.0) |
22 |
|
|
z= z+(y-(side/2.0))*(0+1j)/(side/3.0) |
23 |
|
|
i= 0 |
24 |
|
|
while i<maxiter and abs(z)<2: |
25 |
|
|
z= z**2+c |
26 |
|
|
i= i+1 |
27 |
|
|
color= ((i**0.5)*40%256) |
28 |
|
|
if i<maxiter: |
29 |
|
|
julia.putpixel((x,y),color) |
30 |
|
|
julia.putpixel((side2-x,side2-y),color) |
31 |
|
|
|
32 |
|
|
print "Content-type: image/png" |
33 |
|
|
print |
34 |
|
|
|
35 |
|
|
julia.save(sys.stdout, "PNG") |
36 |
|
|
|
37 |
|
|
# Local Variables: |
38 |
|
|
# version-control: t |
39 |
|
|
# mode: python |
40 |
|
|
# backup-by-copying: nil |
41 |
|
|
# backup-by-copying-when-mismatch: nil |
42 |
|
|
# kept-old-versions: 50 |
43 |
|
|
# kept-new-versions: 50 |
44 |
|
|
# End: |