1 |
#!/usr/bin/python |
2 |
|
3 |
base = [(142,142), (426,142), (285,389), (142,142)] |
4 |
|
5 |
def normal(kord1,kord2): |
6 |
x1,y1= kord1 |
7 |
x2,y2= kord2 |
8 |
x3= 0.5*(x2-x1+(y2-y1)*pow(3,0.5))+x1 |
9 |
y3= 0.5*(y2-y1-(x2-x1)*pow(3,0.5))+y1 |
10 |
return x3, y3 |
11 |
|
12 |
def transform(inbase): |
13 |
outbase= [] |
14 |
for it in range(len(inbase)-1): |
15 |
(x1,y1)= inbase[it] |
16 |
(x2,y2)= inbase[it+1] |
17 |
xplus, yplus= (x2-x1)/3, (y2-y1)/3 |
18 |
outbase.append(inbase[it]) |
19 |
outbase.append((x1+xplus,y1+yplus)) |
20 |
outbase.append(normal((x1+xplus,y1+yplus),(x1+xplus*2,y1+yplus*2))) |
21 |
outbase.append((x1+xplus*2,y1+yplus*2)) |
22 |
outbase.append(inbase[-1]) |
23 |
return outbase |
24 |
|
25 |
def draw(inbase): |
26 |
print "#PLOT 2" |
27 |
print "o" |
28 |
print "e" |
29 |
for it in range(len(inbase)-1): |
30 |
x1,y1= inbase[it] |
31 |
x2,y2= inbase[it+1] |
32 |
print "l", x1, y1, x2, y2 |
33 |
print "x" |
34 |
|
35 |
for i in range(5): |
36 |
base= transform(base) |
37 |
|
38 |
draw(base) |