/[gzz]/gzz/gfx/demo/irregular2.py
ViewVC logotype

Diff of /gzz/gfx/demo/irregular2.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.22 by jvk, Sat Sep 28 10:03:16 2002 UTC revision 1.23 by jvk, Mon Nov 4 10:38:55 2002 UTC
# Line 10  class IrreguScene: Line 10  class IrreguScene:
10          self.mode = 255          self.mode = 255
11          self.combiners = "Enable"          self.combiners = "Enable"
12    
13            self.type = "square"
14          self.period = 1.0          self.period = 1.0
15          self.border = 0.2          self.border = 0.2
16          self.w, self.h = 2, 1.5          self.w, self.h = 2, 1.5
# Line 21  class IrreguScene: Line 22  class IrreguScene:
22          self.xs, self.ys = 1, 1          self.xs, self.ys = 1, 1
23          self.a1 = 0          self.a1 = 0
24          self.scale = 1          self.scale = 1
25            self.distort = 1
26    
27      def initirregu(self):      def initirregu(self):
28    
         self.white = getDListNocoords("Color 1 1 1")  
         self.black = getDListNocoords("Color 0 0 0")  
   
29          w = self.w          w = self.w
30          h = self.h          h = self.h
31          self.mask = getDList("""          self.mask = getDList("""
# Line 38  class IrreguScene: Line 37  class IrreguScene:
37              End              End
38          """ % locals())          """ % locals())
39    
40          self.irreguframe = IrreguFrame(-w, -h, w, h, self.border, self.period)          self.irreguframe = IrreguFrame(-w, -h, w, h, self.border, self.period,
41                                           type = self.type)
42    
43      def key(self, k):      def key(self, k):
44          if 0: pass          if 0: pass
# Line 73  class IrreguScene: Line 73  class IrreguScene:
73          elif "1" <= k <= "9":          elif "1" <= k <= "9":
74              self.mode ^= 1 << (int(k)-1)              self.mode ^= 1 << (int(k)-1)
75              print "mode=", [ (".","X")[(self.mode >> i) & 1] for i in range(0, 9) ]              print "mode=", [ (".","X")[(self.mode >> i) & 1] for i in range(0, 9) ]
76            elif k == "t":
77                if self.type == "square":
78                    self.type = "ellipse"
79                else:
80                    self.type = "square"
81                self.initirregu()
82            elif k == "d":
83                self.distort = not self.distort
84            
85          pass          pass
86    
87      def scene(self, vs):      def scene(self, vs):
# Line 81  class IrreguScene: Line 90  class IrreguScene:
90          #putnoc(vs, getDListNocoords("Translate -1000 -1000 0\nScale 4 4 4\n"))          #putnoc(vs, getDListNocoords("Translate -1000 -1000 0\nScale 4 4 4\n"))
91    
92          #cs2 = vs.coords.affineCoordsys(0, 10, self.x1, self.y1, self.xs, 0, 0, self.ys)          #cs2 = vs.coords.affineCoordsys(0, 10, self.x1, self.y1, self.xs, 0, 0, self.ys)
93          cs2 = vs.coords.affineCoordsys(0, 0, self.x1, self.y1,  
94                  self.xs * cos(self.a1), -self.xs * sin(self.a1), self.ys*sin(self.a1), self.ys*cos(self.a1))          cs2 = vs.coords.affineCoordsys(
95                0, 0, self.x1, self.y1,
96                self.xs * cos(self.a1), self.ys * -sin(self.a1),
97                self.xs * sin(self.a1), self.ys * cos(self.a1) )
98    
99          vs.matcher.add(cs2, "2")          vs.matcher.add(cs2, "2")
100    
101            if self.type == "square":
102                cs2 = vs.coords.affineCoordsys(cs2, 0, -1, -1, 2, 0, 0, 2 )
103                vs.matcher.add(cs2, "2box")
104                
105          cs1 = vs.coords.affineCoordsys(0, 10, 600, 450,          cs1 = vs.coords.affineCoordsys(0, 10, 600, 450,
106                                         self.scale * 150,                                         self.scale * 150,
107                                         self.scale * 32.3,                                         self.scale * 32.3,
# Line 94  class IrreguScene: Line 112  class IrreguScene:
112          cs1_d = vs.coords.distort(cs1, 0, 0, 0.1, 0.1, 10, 0.5)          cs1_d = vs.coords.distort(cs1, 0, 0, 0.1, 0.1, 10, 0.5)
113          vs.matcher.add(cs1_d, "1_d")          vs.matcher.add(cs1_d, "1_d")
114    
115          if 1:          if self.distort:
116              cs1 = cs1_d              cs1 = cs1_d
117          #vs.map.put(self.mask, cs2)          #vs.map.put(self.mask, cs2)
118    
# Line 102  class IrreguScene: Line 120  class IrreguScene:
120              vs.map.put(self.mask, cs1)              vs.map.put(self.mask, cs1)
121    
122          if self.mode & 1:          if self.mode & 1:
             putnoc(vs, self.black);  
123              vs.map.put(self.irreguframe.frame, cs1, cs2)              vs.map.put(self.irreguframe.frame, cs1, cs2)
124    
125          if self.mode & 2:          if self.mode & 2:
             putnoc(vs, self.white);  
126              vs.map.put(self.irreguframe.content, cs1, cs2)              vs.map.put(self.irreguframe.content, cs1, cs2)
127    
128  currentScene = IrreguScene()  currentScene = IrreguScene()

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.23

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26