示例#1
1
    def shapePoints(self):
        a = ArrayOfHexagons()
        a.setRadius(40)
        a.addHexagon(0, 0)
        a.populate(2)

        h = Shape()
        h.loadFromFile('sampleTiles/hexagon.tile')

        b = Shape()
        b.loadFromFile('sampleTiles/smallBend.tile')

        s = Shape()
        s.loadFromFile('sampleTiles/simple.tile')
        
        t = Shape()
        t.loadFromFile('sampleTiles/triangle.tile')
        
        c = Shape()
        c.loadFromFile('sampleTiles/cross.tile')
        
        p = Shape()
        p.loadFromFile('sampleTiles/prang.tile')
        
        ss = Shape()
        ss.loadFromFile('sampleTiles/singleSide.tile')

        shapes = ShapeManager(h, b, s)
        a.hexagon(-2,0).addShape(h)
        a.hexagon(0,0).addShape(b)
        #a.hexagon(0,0).shape().rotate(5)
        a.hexagon(-1,-1).addShape(b)
        a.hexagon(-1,-1).shape().rotate(3)
        a.hexagon(2,0).addShape(h)
        a.hexagon(1,1).addShape(c)
        a.hexagon(4,0).addShape(p)
        a.hexagon(1,-1).addShape(p)
        a.hexagon(1,-1).shape().rotate(5)
        a.hexagon(-1,1).addShape(ss)
        
        svg = SvgWriter()
        svg.offset(200,200)
        svg.rotate(0)
        for coordinates in a:
            svg.addHexagon(a.hexagon(coordinates[0], coordinates[1]))
        svg.write('hexagons.svg')
        
        print 'Done'
示例#2
1
    def illustrateProblem(self):
        a = ArrayOfHexagons()
        a.setRadius(40)
        a.addHexagon(0, 0)
        a.populate(6)
        
        h = Shape()
        h.loadFromFile('sampleTiles/hexagon.tile')

        b = Shape()
        b.loadFromFile('sampleTiles/smallBend.tile')

        s = Shape()
        s.loadFromFile('sampleTiles/simple.tile')
        
        t = Shape()
        t.loadFromFile('sampleTiles/triangle.tile')
        
        c = Shape()
        c.loadFromFile('sampleTiles/cross.tile')
        
        p = Shape()
        p.loadFromFile('sampleTiles/prang.tile')
        
        ss = Shape()
        ss.loadFromFile('sampleTiles/singleSide.tile')
        
        a.hexagon(-12,0).addShape(h)
        a.hexagon(-8,0).addShape(b)
        a.hexagon(-4,0).addShape(s)
        a.hexagon(0,0).addShape(t)
        a.hexagon(4,0).addShape(c)
        a.hexagon(8,0).addShape(p)
        a.hexagon(12,0).addShape(ss)
        svg = SvgWriter()
        svg.offset(400,400)
        for coordinates in a:
            svg.addHexagon(a.hexagon(coordinates[0], coordinates[1]))
        svg.write('hexagons.svg')
示例#3
0
    def everything(self):
        '''do some tests'''
        t1=time.time()
        a = ArrayOfHexagons()
        a.setRadius(25)
        a.addHexagon(0, 0)
        a.populate(6)

        #print a.hexagon(1, 1).distanceFrom(0, 0)
        #print a.hexagon(-2, 0).distanceFrom(0, 0)

        h = Shape()
        h.loadFromFile('sampleTiles/hexagon.tile')

        b = Shape()
        b.loadFromFile('sampleTiles/smallBend.tile')

        s = Shape()
        s.loadFromFile('sampleTiles/simple.tile')

        shapes = ShapeManager(h, b, s)

        #for i in shapes:
        #    print i

        #print shapes

        #a.hexagon(-1,-1).addShape(h)
        a.hexagon(1,1).addShape(h)
        a.hexagon(0,0).addShape(s)
        #a.hexagon(-2,0).addShape(b)

        a.hexagon(0,0).shape().rotate(4)

        #a.printArray()

        svg = SvgWriter()
        svg.offset(400,400)
        svg.rotate(0)
        for coordinates in a:
            svg.addHexagon(a.hexagon(coordinates[0], coordinates[1]))
        svg.write('hexagons.svg')

        #print shape 
        #shape.rotate(6)
        #print shape

        #sr = ShapeFitter(('a', '-', '-', '-', '-', '-'), ('+', '+', '+', 'A', '+', '+'))
        sr = ShapeFitter(a.hexagon(0,0).shape().sides(), a.gapEdges(0, 0))
        print 'need to rotate', sr.fit(), 'times'

        #print a.gapEdges(0, 0)
        t2=time.time()
        print 'time taken', t2-t1