2021-01-27 00:13:11 +03:00
|
|
|
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 {
|
2022-02-23 13:36:14 +03:00
|
|
|
theta := rand.f32n(2 * math.pi) or { 0 }
|
2021-01-27 00:13:11 +03:00
|
|
|
y := rand.f32()
|
|
|
|
|
2021-07-20 11:17:08 +03:00
|
|
|
return Vector{
|
2021-01-27 00:13:11 +03:00
|
|
|
x: f32(y * math.sin(theta))
|
|
|
|
y: f32(y * math.cos(theta))
|
|
|
|
}
|
|
|
|
}
|