Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Created on Sun Apr 12 01:22:11 2015
- @author: Alphard
- """
- import math
- import Image
- import ImageDraw
- def hexagonVertices(edge, center):
- x, y = center
- for angle in range(0, 360, 60):
- x += edge*math.cos(math.radians(angle))
- y += edge*math.sin(math.radians(angle))
- yield x, y
- def drawHexagon(draw, vertices, label):
- if not label:
- label = (150, 150, 150)
- draw.polygon(list(vertices), outline='black', fill=label)
- rows = 30
- cols = 6
- offsetX = 25;
- offsetY = 25;
- edge = 20;
- labels = [[0 for x in range(cols)] for x in range(rows)]
- for k in range(5, 13, 2):
- labels[k][3] = 'red'
- labels[k][2] = 'red'
- for k in range(4, 12, 2):
- labels[k][3] = 'red'
- labels[k][2] = 'red'
- labels[k][1] = 'red'
- for k in range(12, 28, 2):
- labels[k][2] = 'green'
- labels[25][3] = 'green'
- labels[23][4] = 'green'
- labels[24][3] = 'green'
- labels[22][4] = 'green'
- labels[21][4] = 'green'
- labels[22][3] = 'green'
- image = Image.new('RGB', (int(3*edge*cols+2*offsetX), int(edge*rows+2*offsetY)), 'white')
- draw = ImageDraw.Draw(image)
- for row in range(rows):
- for col in range(cols):
- oddOffset = 0 if row%2==1 else 1.5*edge
- x = 3*edge*col + oddOffset + offsetX
- y = 3**0.5*0.5*edge*row + offsetY
- drawHexagon(draw, hexagonVertices(edge, (x, y)), labels[row][col])
- image.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement