cha0smagick commited on
Commit
874e3d1
1 Parent(s): 0fd578b

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +56 -0
app.py ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import matplotlib.pyplot as plt
3
+ import numpy as np
4
+ import random
5
+
6
+ def create_sigil(desire):
7
+ consonants = [c for c in desire.lower() if c.isalpha() and c not in 'aeiou']
8
+ letters = list(set(consonants))
9
+ random.shuffle(letters)
10
+ sigil = ''.join(letters)
11
+ return sigil
12
+
13
+ def fibonacci_sphere(samples=1):
14
+ rnd = 1.
15
+ points = []
16
+ offset = 2./samples
17
+ increment = np.pi * (3. - np.sqrt(5.))
18
+ for i in range(samples):
19
+ y = ((i * offset) - 1) + (offset / 2)
20
+ r = np.sqrt(1 - y*y)
21
+ phi = ((i + rnd) % samples) * increment
22
+ x = np.cos(phi) * r
23
+ z = np.sin(phi) * r
24
+ points.append([x, y, z])
25
+ return points
26
+
27
+ def visualize_sigil(sigil):
28
+ fig, ax = plt.subplots(figsize=(6,6))
29
+ ax.set_aspect('equal')
30
+ ax.axis('off')
31
+ circle = plt.Circle((0.5, 0.5), 0.4, color='black', fill=False, lw=2)
32
+ ax.add_artist(circle)
33
+ num_letters = len(sigil)
34
+ fibonacci_points = fibonacci_sphere(num_letters)
35
+ x_letters = [0.5 + 0.35 * p[0] for p in fibonacci_points]
36
+ y_letters = [0.5 + 0.35 * p[1] for p in fibonacci_points]
37
+ for i, letter in enumerate(sigil):
38
+ ax.text(x_letters[i], y_letters[i], letter, fontsize=1, ha='center', va='center', color='black')
39
+ for i in range(num_letters):
40
+ j = (i + 1) % num_letters
41
+ x_start, y_start = x_letters[i], y_letters[i]
42
+ x_end, y_end = x_letters[j], y_letters[j]
43
+ ax.plot([x_start, x_end], [y_start, y_end], color='black')
44
+ ax.scatter(x_letters[0], y_letters[0], color='black', s=20)
45
+ ax.scatter(x_letters[-1], y_letters[-1], color='black', s=20)
46
+ plt.xlim(0, 1)
47
+ plt.ylim(0, 1)
48
+ st.pyplot(fig)
49
+
50
+ st.title("Generador de Sigilos")
51
+
52
+ desire = st.text_input("Ingresa tu deseo:")
53
+ if desire:
54
+ sigil = create_sigil(desire)
55
+ st.write("Sigilo generado:", sigil)
56
+ visualize_sigil(sigil)