awacke1 commited on
Commit
da39594
·
1 Parent(s): 8dde35a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -26
app.py CHANGED
@@ -1,30 +1,27 @@
1
  import streamlit as st
2
- import turtle
 
3
 
4
- st.title('Fractal Drawing')
5
 
6
- def draw_fractal():
7
- t = turtle.Turtle()
8
- t.speed('fastest')
 
 
 
 
 
 
 
 
9
 
10
- # Recursive function to draw the fractal
11
- def draw(size, angle):
12
- if size > 5:
13
- t.forward(size)
14
- t.right(angle)
15
- draw(size * 0.8, angle)
16
- t.left(angle * 2)
17
- draw(size * 0.8, angle)
18
- t.right(angle)
19
- t.backward(size)
20
-
21
- # Start drawing the fractal
22
- t.penup()
23
- t.goto(0, -200)
24
- t.pendown()
25
- t.color('green')
26
- draw(200, 60)
27
-
28
- if st.button('Draw Fractal'):
29
- draw_fractal()
30
- st.write('Done!')
 
1
  import streamlit as st
2
+ import numpy as np
3
+ import plotly.graph_objects as go
4
 
5
+ st.title('Dice Fractal')
6
 
7
+ def generate_fractal(num_rolls):
8
+ rolls = [np.random.randint(1, 7) for i in range(num_rolls)]
9
+ x = [0]
10
+ y = [0]
11
+ angle = 0
12
+ step = 1
13
+ for roll in rolls:
14
+ angle += 60 if roll % 2 == 0 else -60
15
+ x.append(x[-1] + step * np.cos(np.deg2rad(angle)))
16
+ y.append(y[-1] + step * np.sin(np.deg2rad(angle)))
17
+ return go.Scatter(x=x, y=y, mode='lines', line=dict(width=1))
18
 
19
+ num_rolls = st.slider('How many times do you want to roll the dice?', 1, 1000, 100)
20
+ fig = go.Figure(generate_fractal(num_rolls))
21
+ fig.update_layout(
22
+ title='Dice Fractal',
23
+ xaxis_title='X',
24
+ yaxis_title='Y',
25
+ showlegend=False
26
+ )
27
+ st.plotly_chart(fig)