aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/examples/fireworks/modules/objects/vector.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/examples/fireworks/modules/objects/vector.v')
-rw-r--r--v_windows/v/examples/fireworks/modules/objects/vector.v28
1 files changed, 28 insertions, 0 deletions
diff --git a/v_windows/v/examples/fireworks/modules/objects/vector.v b/v_windows/v/examples/fireworks/modules/objects/vector.v
new file mode 100644
index 0000000..0e29283
--- /dev/null
+++ b/v_windows/v/examples/fireworks/modules/objects/vector.v
@@ -0,0 +1,28 @@
+module objects
+
+import math
+import rand
+
+pub struct Vector {
+pub mut:
+ x f32
+ y f32
+}
+
+pub fn (a Vector) + (b Vector) Vector {
+ return Vector{a.x + b.x, a.y + b.y}
+}
+
+pub fn (vector Vector) mult(scalar f32) Vector {
+ return Vector{vector.x * scalar, vector.y * scalar}
+}
+
+pub fn random_vector_in_circle() Vector {
+ theta := rand.f32n(2 * math.pi)
+ y := rand.f32()
+
+ return Vector{
+ x: f32(y * math.sin(theta))
+ y: f32(y * math.cos(theta))
+ }
+}