|
|
-
- clearScreen ('black')
- center = { 'x': window.innerWidth / 2,
- 'y': window.innerHeight / 2 }
-
- class Mandala:
- def __init__(self, text, freq=1, dist=0, \
- font_size=32, color='black', \
- font='"Noto Mono", "Noto Emoji"', offset=0):
- self.text = text
- rad = 360/freq * (Math.PI/180)
- for i in range(freq):
- angle = i * rad - offset
- pos = { 'x': Math.cos(angle - Math.PI/2) * dist,
- 'y': Math.sin(angle - Math.PI/2) * dist }
- self.place(pos, angle, font_size, font, color)
-
- def place(self, pos, rad, font_size, font, color):
- el = document.createElement('span')
- el.innerHTML = self.text
- el.style['text-shadow'] = '0 0 10px white'
- el.style['color'] = color
- el.style['font-size'] = font_size + 'px'
- el.style['font-family'] = font
- el.style['position'] = 'absolute'
- el.style.transform = 'rotate(' + rad + 'rad)'
- document.body.appendChild(el)
- style = window.getComputedStyle(el)
- offset_x = int(style.width) / 2
- offset_y = int(style.height) / 2
- el.style.top = center.y + pos.y - offset_y + 'px'
- el.style.left = center.x + pos.x - offset_x + 'px'
-
- if __name__=='__main__':
- Mandala ('🌺', 20, 295, 90, 'pink')
- Mandala ('🍎', 22, 220, 60, 'red')
- Mandala ('🐜', 20, 160, 50, 'orange')
- Mandala ('🐌', 10, 110, 30, 'green')
- Mandala ('Azúcar', 6, 70, 18, 'yellow')
- Mandala ('Somos', 2, 20, 30, 'blue')
|