29 lines
		
	
	
		
			455 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			455 B
		
	
	
	
		
			V
		
	
	
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) or { 0 }
 | 
						|
	y := rand.f32()
 | 
						|
 | 
						|
	return Vector{
 | 
						|
		x: f32(y * math.sin(theta))
 | 
						|
		y: f32(y * math.cos(theta))
 | 
						|
	}
 | 
						|
}
 |