Esempio n. 1
0
 def draw(self, dc):
     self._cost_map = CanvasCostmap()
     for mod in self.getObjects(gModule):
         self._cost_map.addModule( mod.getPosition(), mod.getSize() )
     
     connections = self.getObjects( coConnection )
     for con in connections:
         con.reroute(dc)
         self._cost_map.addWire( con )
     
     SimpleCanvas.draw(self, dc)
Esempio n. 2
0
class LineTest(object):

    screenWidth = 600
    screenHeight = 600
    sc = SimpleCanvas()
    rast = Rasterization(600)

    #
    #   draw all the lines
    #
    # Idea for lettering style from:
    # http://patorjk.com/software/taag/#p=display&f=Star%20Wars&t=Type%20Something
    #          _______   ______
    #         /  ____|  /  __  \
    #        |  |  __  |  |  |  |
    #        |  | |_ | |  |  |  |
    #        |  |__| | |  `--'  |
    #         \______|  \______/
    #
    def lineTest(self):

        self.sc.setSize(self.screenWidth, self.screenHeight)
        self.sc.clear(self.sc.width, self.sc.height)

        self.sc.setColor(0, 255, 0)  #Set Red Green and Blue color

        ######## The letter 'G' in green ########
        self.rast.drawLine(80, 260, 220, 260,
                           self.sc)  # Horizontal left to right
        self.rast.drawLine(40, 220, 80, 260, self.sc)  # 315 degree slope
        self.rast.drawLine(220, 260, 260, 220, self.sc)  # 45 degree slope
        self.rast.drawLine(260, 220, 260, 160,
                           self.sc)  # Vertical bottom to top
        self.rast.drawLine(260, 160, 180, 160,
                           self.sc)  # Horizontal right to left
        self.rast.drawLine(180, 160, 180, 200, self.sc)
        self.rast.drawLine(180, 200, 220, 200, self.sc)
        self.rast.drawLine(220, 200, 200, 220, self.sc)
        self.rast.drawLine(200, 220, 100, 220, self.sc)
        self.rast.drawLine(100, 220, 80, 200, self.sc)
        self.rast.drawLine(80, 200, 80, 100, self.sc)
        self.rast.drawLine(80, 100, 100, 80, self.sc)
        self.rast.drawLine(100, 80, 200, 80, self.sc)
        self.rast.drawLine(200, 80, 220, 100, self.sc)
        self.rast.drawLine(220, 100, 220, 120, self.sc)
        self.rast.drawLine(220, 120, 260, 120, self.sc)
        self.rast.drawLine(260, 120, 260, 80, self.sc)
        self.rast.drawLine(260, 80, 220, 40, self.sc)  # 135 degree slope
        self.rast.drawLine(220, 40, 80, 40, self.sc)
        self.rast.drawLine(80, 40, 40, 80, self.sc)  # 225 degree slope
        self.rast.drawLine(40, 80, 40, 220, self.sc)  # Vertical top to bottom

        ######## The letter 'O' in red ########

        self.sc.setColor(255, 0, 0)  #Set Red Green and Blue color

        self.rast.drawLine(450, 280, 520, 260, self.sc)  # 16.6 degree slope
        self.rast.drawLine(520, 260, 540, 240, self.sc)  # 45 degree slope
        self.rast.drawLine(540, 240, 560, 150, self.sc)  # 77.47 degree slope
        self.rast.drawLine(560, 150, 540, 60, self.sc)  # 102.83 degree slope
        self.rast.drawLine(540, 60, 520, 40, self.sc)  # 135 degree slope
        self.rast.drawLine(520, 40, 450, 20, self.sc)  # 163.3 degree slope
        self.rast.drawLine(450, 20, 380, 40, self.sc)  # 196.71 degree slope
        self.rast.drawLine(380, 40, 360, 60, self.sc)  # 225 degree slope
        self.rast.drawLine(360, 60, 340, 150, self.sc)
        self.rast.drawLine(340, 150, 360, 240, self.sc)
        self.rast.drawLine(360, 240, 380, 260, self.sc)
        self.rast.drawLine(380, 260, 450, 280, self.sc)
        self.rast.drawLine(420, 220, 480, 220, self.sc)
        self.rast.drawLine(480, 220, 520, 180, self.sc)
        self.rast.drawLine(520, 180, 520, 120, self.sc)
        self.rast.drawLine(520, 120, 480, 80, self.sc)
        self.rast.drawLine(480, 80, 420, 80, self.sc)
        self.rast.drawLine(420, 80, 380, 120, self.sc)
        self.rast.drawLine(380, 120, 380, 180, self.sc)
        self.rast.drawLine(380, 180, 420, 220, self.sc)

        #draw the students initials
        self.rast.myInitials(self.sc)

        self.sc.showImage()
Esempio n. 3
0
 def __init__(self, parent, ID):
     SimpleCanvas.__init__(self, parent, ID)
     self._cost_map = None #CanvasCostmap( (0,0) )
     self._corner_cost = 5
Esempio n. 4
0
class FillTest(object):

    screenWidth = 901
    screenHeight = 601
    sc = SimpleCanvas()
    rast = Rasterization(601)

    def filltest(self):
        x = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
        y = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
        self.sc.setSize(self.screenWidth, self.screenHeight)
        self.sc.clear(self.sc.width, self.sc.height)

        self.sc.setColor(255, 0, 0)  #Set Red Green and Blue color

        ########### TEAPOT START ###########
        # BASE
        x[0] = 760
        y[0] = 40
        x[1] = 600
        y[1] = 40
        x[2] = 620
        y[2] = 60
        x[3] = 740
        y[3] = 60
        self.rast.drawPolygon(4, x, y, self.sc)

        #RIGHT BOTTOM TRIANGLE

        x[0] = 800
        y[0] = 120
        x[1] = 740
        y[1] = 60
        x[2] = 620
        y[2] = 60
        self.sc.setColor(230, 0, 0)
        self.rast.drawPolygon(3, x, y, self.sc)

        #SPOUT

        x[0] = 620
        y[0] = 60
        x[1] = 560
        y[1] = 100
        x[2] = 500
        y[2] = 180
        self.sc.setColor(204, 0, 0)
        self.rast.drawPolygon(3, x, y, self.sc)

        x[0] = 620
        y[0] = 60
        x[1] = 500
        y[1] = 180
        x[2] = 460
        y[2] = 200
        x[3] = 520
        y[3] = 200
        x[4] = 580
        y[4] = 160
        self.sc.setColor(179, 0, 0)
        self.rast.drawPolygon(5, x, y, self.sc)

        x[0] = 620
        y[0] = 60
        x[1] = 580
        y[1] = 160
        x[2] = 620
        y[2] = 240
        x[3] = 740
        y[3] = 240
        x[4] = 800
        y[4] = 120
        self.sc.setColor(153, 0, 0)
        self.rast.drawPolygon(5, x, y, self.sc)

        x[0] = 800
        y[0] = 120
        x[1] = 840
        y[1] = 160
        x[2] = 855
        y[2] = 200
        x[3] = 720
        y[3] = 220
        x[4] = 720
        y[4] = 200
        x[5] = 830
        y[5] = 190
        x[6] = 825
        y[6] = 165
        x[7] = 780
        y[7] = 120
        self.sc.setColor(128, 0, 0)
        self.rast.drawPolygon(8, x, y, self.sc)

        x[0] = 690
        y[0] = 240
        x[1] = 710
        y[1] = 260
        x[2] = 650
        y[2] = 260
        x[3] = 670
        y[3] = 240
        self.sc.setColor(102, 0, 0)
        self.rast.drawPolygon(4, x, y, self.sc)

        ######## TRIANGLE #######
        x[0] = 460
        y[0] = 220
        x[1] = 490
        y[1] = 280
        x[2] = 420
        y[2] = 280
        self.sc.setColor(0, 255, 0)
        self.rast.drawPolygon(3, x, y, self.sc)

        ########## QUAD ##########
        x[0] = 380
        y[0] = 280
        x[1] = 320
        y[1] = 320
        x[2] = 360
        y[2] = 380
        x[3] = 420
        y[3] = 340
        self.sc.setColor(0, 204, 204)
        self.rast.drawPolygon(4, x, y, self.sc)

        ############ STAR #############
        #RIGHT SIDE
        x[0] = 230
        y[0] = 389
        x[1] = 260
        y[1] = 369
        x[2] = 254
        y[2] = 402
        x[3] = 278
        y[3] = 425
        x[4] = 245
        y[4] = 430
        x[5] = 230
        y[5] = 460
        x[6] = 230
        y[6] = 410
        self.sc.setColor(204, 204, 0)
        self.rast.drawPolygon(7, x, y, self.sc)

        #LEFT SIDE
        x[0] = 230
        y[0] = 460
        x[1] = 216
        y[1] = 430
        x[2] = 183
        y[2] = 425
        x[3] = 207
        y[3] = 402
        x[4] = 201
        y[4] = 369
        x[5] = 230
        y[5] = 389
        x[6] = 230
        y[6] = 410
        self.sc.setColor(179, 179, 0)
        self.rast.drawPolygon(7, x, y, self.sc)

        ########## BORDERS ###############
        #SQUARE BOTTOM LEFT

        x[0] = 0
        y[0] = 0
        x[1] = 0
        y[1] = 20
        x[2] = 20
        y[2] = 20
        x[3] = 20
        y[3] = 0
        self.sc.setColor(0, 0, 255)
        self.rast.drawPolygon(4, x, y, self.sc)

        x[0] = 0
        y[0] = 10
        x[1] = 10
        y[1] = 10
        x[2] = 10
        y[2] = 580
        x[3] = 0
        y[3] = 580
        self.sc.setColor(0, 26, 230)
        self.rast.drawPolygon(4, x, y, self.sc)

        x[0] = 0
        y[0] = 580
        x[1] = 0
        y[1] = 600
        x[2] = 20
        y[2] = 600
        x[3] = 20
        y[3] = 580
        self.sc.setColor(0, 51, 204)
        self.rast.drawPolygon(4, x, y, self.sc)

        #TRIANGLE TOP:TOP
        x[0] = 10
        y[0] = 590
        x[1] = 10
        y[1] = 600
        x[2] = 880
        y[2] = 600
        self.sc.setColor(0, 77, 179)
        self.rast.drawPolygon(3, x, y, self.sc)

        #TRIANGLE TOP:BOTTOM
        x[0] = 10
        y[0] = 590
        x[1] = 880
        y[1] = 590
        x[2] = 880
        y[2] = 600
        self.sc.setColor(0, 102, 153)
        self.rast.drawPolygon(3, x, y, self.sc)

        #SQUARE TOP RIGHT
        x[0] = 900
        y[0] = 600
        x[1] = 900
        y[1] = 580
        x[2] = 880
        y[2] = 580
        x[3] = 880
        y[3] = 600
        self.sc.setColor(26, 102, 128)
        self.rast.drawPolygon(4, x, y, self.sc)

        #TRIANGLE RIGHT:RIGHT
        x[0] = 890
        y[0] = 580
        x[1] = 900
        y[1] = 580
        x[2] = 890
        y[2] = 20
        self.sc.setColor(51, 102, 102)
        self.rast.drawPolygon(3, x, y, self.sc)

        #TRIANGLE RIGHT:LEFT
        x[0] = 900
        y[0] = 580
        x[1] = 900
        y[1] = 20
        x[2] = 890
        y[2] = 20
        self.sc.setColor(77, 102, 77)
        self.rast.drawPolygon(3, x, y, self.sc)

        #SQUARE BOTTOM RIGHT
        x[0] = 900
        y[0] = 0
        x[1] = 900
        y[1] = 20
        x[2] = 880
        y[2] = 20
        x[3] = 880
        y[3] = 0
        self.sc.setColor(102, 102, 51)
        self.rast.drawPolygon(4, x, y, self.sc)

        #QUAD BOTTOM
        x[0] = 20
        y[0] = 0
        x[1] = 20
        y[1] = 10
        x[2] = 880
        y[2] = 10
        x[3] = 880
        y[3] = 0
        self.sc.setColor(102, 128, 26)
        self.rast.drawPolygon(4, x, y, self.sc)

        self.sc.showImage()