generativeart/common/vector.go
2021-04-07 17:22:53 +08:00

28 lines
352 B
Go

package common
type Vector struct {
X, Y float64
}
func NewVector(x, y float64) *Vector {
return &Vector{
X: x,
Y: y,
}
}
func (v *Vector) Multiple(z float64) {
v.X = v.X * z
v.Y = v.Y * z
}
func (v *Vector) Normalize() {
l := Magnitude(v.X, v.Y)
v.Multiple(1 / l)
}
func (v *Vector) SetMag(m float64) {
v.Normalize()
v.Multiple(m)
}