コード例 #1
0
ファイル: gates.py プロジェクト: kjcole/LogicCircuits
 def draw(self, screen, color=BLUE):
     args   = self.scaleM(( 0,  0), (24, 12), (0, 24),  # triangle
                          (26, 12), 2)                  # NOT circle
     tp1, tp2, tp3, cp1, cr1 = args
     pg.draw.polygon(screen, color, (tp1, tp2, tp3), 1)
     pg.draw.circle(screen,  color, cp1, cr1, 1)
     pg.draw.circle(screen,  color, self.A.pos, 2, 1)
     pg.draw.circle(screen,  color, self.B.pos, 2, 1)
     textDraw(screen, self.scale1((5, 5)), color, self.name, quad=4)
コード例 #2
0
ファイル: gates.py プロジェクト: kjcole/LogicCircuits
 def draw(self, screen, color=BLUE):
     args = self.scaleM((15, 15), 15,                        # big circle
                        (0, 0), (15, 0), (15, 30), (0, 30),  # erase rect
                        (15, 0), (0, 0), (0, 30), (15, 30),  # draw box behind
                        (30, 15), 2)                         # little NOT circle
     c1p, c1r, e1, e2, e3, e4, l1, l2, l3, l4, c2p, c2r = args
     pg.draw.circle(screen,  color, c1p, c1r, 1)
     pg.draw.polygon(screen, BGCOLOR, (e1, e2, e3, e4), 0)
     pg.draw.lines(screen,   color, False, (l1, l2, l3, l4), 1)
     pg.draw.circle(screen,  color, c2p, c2r, 1)
     for con in (self.A, self.B, self.C):
         pg.draw.circle(screen, color, con.pos, 2, 1)
     textDraw(screen, self.scale1((5, 5)), color, self.name, quad=4)
コード例 #3
0
ファイル: connector.py プロジェクト: kjcole/LogicCircuits
 def drawWires(s, screen, color=None):
     if not color:
         color = [COLD, HOT][s.value]
     slq = s.labelQuad
     for d in s.feeds:
         dlq = d.labelQuad
         txt = "Draw wire {0}.{1}={2} @ {3} - {4}.{5}={6} @ {7}".format(
             s.parent.name, s.name, s.layer, s.pos[0], s.pos[1], d.parent.name, d.name, d.layer, d.pos[0], d.pos[1]
         )
         if max(s.layer, d.layer) <= CmdEncapsuleLayer:
             pg.draw.lines(screen, color, False, (s.pos, d.pos))
             if slq:
                 textDraw(screen, s.pos, color, s.name, quad=slq)
             if dlq:
                 textDraw(screen, d.pos, color, d.name, quad=dlq)
         d.drawWires(screen, color)  # fan out
コード例 #4
0
ファイル: circuit.py プロジェクト: kjcole/LogicCircuits
    def draw(self, screen):
        if self.hidden():
            return
        font = pg.font.Font(None, 12)

        if self.encapsulated():
            bx1, bx2, bx3, bx4 = self.scaleM(( 0,  0),
                                             (20,  0),
                                             (20, 40),
                                             ( 0, 40))
            pg.draw.polygon(screen, BLUE, (bx1, bx2, bx3, bx4), 1)
            textDraw(screen, self.scale1((3, 3)), BLUE, self.name, quad=4)
        elif not self.hidden():
            if self.banner:
                textDraw(screen, self.scale1((0, 0)), GREEN, self.banner,
                         quad=1, font=textFont(24))
            gates = self.gates
            for g in gates:
                g.output.drawWires(screen)
                g.draw(screen)
コード例 #5
0
ファイル: gates.py プロジェクト: kjcole/LogicCircuits
 def draw(self, screen, color=BLUE):
     bp1, br1 = self.scaleM((3, 3), 3)  # Body to click
     pg.draw.circle(screen, color, bp1, br1, 1)
     textDraw(screen, self.pos, color, self.name, quad=2)