2025-11-27 22:50:36 -05:00
|
|
|
package gamedata
|
|
|
|
|
|
2025-12-03 10:21:36 -05:00
|
|
|
import "math"
|
|
|
|
|
|
2025-11-27 22:50:36 -05:00
|
|
|
type Vector struct {
|
|
|
|
|
X float64
|
|
|
|
|
Y float64
|
|
|
|
|
}
|
2025-12-03 10:21:36 -05:00
|
|
|
|
|
|
|
|
func (v Vector) DotProduct(p Vector) float64 {
|
|
|
|
|
return v.X*p.X + v.Y + p.Y
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (v Vector) Magnitude() float64 {
|
|
|
|
|
return math.Sqrt(v.X*v.X + v.Y*v.Y)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (v Vector) Add(p Vector) Vector {
|
|
|
|
|
return Vector{X: v.X + p.X, Y: v.Y + p.Y}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (v Vector) Subtract(p Vector) Vector {
|
|
|
|
|
return Vector{X: v.X - p.X, Y: v.Y - p.Y}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (v Vector) Scale(s float64) Vector {
|
|
|
|
|
return Vector{X: v.X * s, Y: v.Y * s}
|
|
|
|
|
}
|