amasood commited on
Commit
3b932da
·
verified ·
1 Parent(s): 97ffe51

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -0
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import numpy as np
3
+ import plotly.graph_objects as go
4
+
5
+ # Function to compute dot product
6
+ def compute_dot_product(v1, v2):
7
+ return np.dot(v1, v2)
8
+
9
+ # Streamlit app
10
+ st.title("Dot Product Visualization")
11
+
12
+ # Initialize session state
13
+ if "v1" not in st.session_state:
14
+ st.session_state.v1 = np.array([1, 0])
15
+ if "v2" not in st.session_state:
16
+ st.session_state.v2 = np.array([0, 1])
17
+
18
+ # Sidebar controls for vectors
19
+ st.sidebar.header("Move Vectors")
20
+
21
+ st.sidebar.subheader("Vector 1")
22
+ x1 = st.sidebar.slider("X component", -5.0, 5.0, float(st.session_state.v1[0]), step=0.1)
23
+ y1 = st.sidebar.slider("Y component", -5.0, 5.0, float(st.session_state.v1[1]), step=0.1)
24
+
25
+ st.sidebar.subheader("Vector 2")
26
+ x2 = st.sidebar.slider("X component ", -5.0, 5.0, float(st.session_state.v2[0]), step=0.1)
27
+ y2 = st.sidebar.slider("Y component ", -5.0, 5.0, float(st.session_state.v2[1]), step=0.1)
28
+
29
+ # Update vectors
30
+ st.session_state.v1 = np.array([x1, y1])
31
+ st.session_state.v2 = np.array([x2, y2])
32
+
33
+ # Compute dot product
34
+ dot_product = compute_dot_product(st.session_state.v1, st.session_state.v2)
35
+
36
+ # Display dot product value
37
+ st.markdown(f"### Dot Product: `{dot_product:.2f}`")
38
+
39
+ # Create a plot
40
+ fig = go.Figure()
41
+
42
+ # Add vector 1
43
+ fig.add_trace(go.Scatter(
44
+ x=[0, st.session_state.v1[0]],
45
+ y=[0, st.session_state.v1[1]],
46
+ mode="lines+markers",
47
+ marker=dict(size=8),
48
+ line=dict(width=3),
49
+ name="Vector 1"
50
+ ))
51
+
52
+ # Add vector 2
53
+ fig.add_trace(go.Scatter(
54
+ x=[0, st.session_state.v2[0]],
55
+ y=[0, st.session_state.v2[1]],
56
+ mode="lines+markers",
57
+ marker=dict(size=8),
58
+ line=dict(width=3),
59
+ name="Vector 2"
60
+ ))
61
+
62
+ # Set axis properties
63
+ fig.update_layout(
64
+ xaxis=dict(range=[-6, 6], zeroline=True, title="X-axis"),
65
+ yaxis=dict(range=[-6, 6], zeroline=True, title="Y-axis"),
66
+ title="Vector Visualization",
67
+ showlegend=True
68
+ )
69
+
70
+ # Display plot
71
+ st.plotly_chart(fig)