gallait
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

flyer.py
text/x-python

Download raw (3.3 KB)

# -*- coding: utf-8 -*-
import svgwrite
import codecs
import random
import math

# Define variables
grid = {'columns': 5, 'rows': 8, 'size': 9.5, 'innersize': 5, 'whitespace': 11, 'fontsize': 3.75}
circles = []
count = 0
texts = ["Free Culture", "Exchange", "Sharing", "Internet", "Digital Arts", "Participation", "Remix", "Development", "Design", "Media", "Neighbourhood", "Acessibility", "Specialisation", "Cross-Pollination", "Open sources", "Experiment", "Generator", "La culture libre", "l'échange", "le partage", "l'internet", "l'art numérique", "la participation", "le remix", "le développement", "le design", "les médias", "le quartier", "accessibilité", "spécialisation", "la pollinisation croisée", "les sources libres", "l'expérimentation", "générateur", "Vrije cultuur", "Uitwisseling", "Delen", "Internet", "Digitale kunst", "Participatie", "Remix", "Ontwikkeling", "Design", "Media", "Buurt", "Toegankelijk", "Specialistisch", "Kruisbestuiving", "Open bronnen", "Experiment", "Generator"]

def draw_circle(dwg, size = 2, innersize = 1, printtext = ''):
	#center = ((col + .5) * grid['whitespace'], (row + .5) * grid['whitespace'])
	
	center = (random.randrange(0 + math.ceil(size), 148 - math.ceil(size)), random.randrange(0 + math.ceil(size),210 - math.ceil(size)))

	dwg.add(dwg.circle (
					center = (center[0],center[1]),
					r = size,
					stroke_width = ".1",
					stroke = "black",
					fill = "none",
					style = "stroke-dasharray:1.2,1.2;"))
		
#	circle = dwg.add(dwg.circle (
#					center = (center[0],center[1]),
#					r = innersize,

#					stroke_width = "0",
#					stroke = "none",
#					fill = "none"))

#	text = dwg.text('',
#			(0,0),
#			font_family = 'Crickx',
#			font_weight = 'bold',
#			font_size = grid['fontsize'],
#			transform = 'rotate(' + str(random.randrange(0,180)) + ', ' + str(center[0]) + ', ' + str(center[1]) + ')')

#	text.add(dwg.textPath (
#			path = circle,
#			text = printtext,
#			startOffset = 0,
#			method = 'align',
#			))

#	dwg.add(text)

	return dwg


#dwg = svgwrite.Drawing(filename = resultfile, size = (str((grid['columns']) * grid['whitespace']), str((grid['rows']) * grid['whitespace'])))

for num in range(0,20):
	random.shuffle(texts)
	resultfile = "generated/flyer11-loop-" + str(num) + ".svg"
	
	dwg = svgwrite.Drawing(filename = resultfile, size = ("148mm", "210mm"), viewBox = "0 0 148 210")

	limit = random.randrange(0,len(texts))
	count = 0

	for text in texts:
		count += 1
		dwg = draw_circle (dwg = dwg, printtext = text, size = grid['size'], innersize = grid['innersize'])
		if count >= limit:
			break

	insert = (random.randrange(34,114), random.randrange(34,176))

	dwg.add(dwg.rect(insert = insert,
		size = (29.7, 63.5),
		stroke_width = ".1",
		stroke = "black",
		fill = "none",
		style = "stroke-dasharray:1.2,1.2;",
		transform = "rotate(" + str(random.randrange(0,45)) + "," + str(insert[0] + 17) + "," + str(insert[1] + 33.5) + ")"))

	insert = (random.randrange(34,114), random.randrange(34,176))	

	dwg.add(dwg.rect(insert = insert,
		size = (63.5, 29.6),
		stroke_width = ".1",
		stroke = "black",
		fill = "none",
		style = "stroke-dasharray:1.2,1.2",
		transform = "rotate(" + str(random.randrange(0,45)) + "," + str(insert[0] + 33.5) + "," + str(insert[1] + 17) + ")"))

	output = codecs.open(resultfile, "w", "UTF-8")
	output.write(dwg.tostring())
	output.close()