func (v *Vector) Scaled(s float64) *Vector {
	v.X *= s
	v.Y *= s
	return v
}
Scaled returns the vector u multiplied by c.
package common
import (
	"fmt"
	"image"
	"math"
)
var ZV = &Vector{0, 0}
type Vector struct {
	X, Y float64
}
func Vect(x, y float64) Vector {
	return Vector{X: x, Y: y}
}
func (v *Vector) Copy() *Vector {
	return &Vector{X: v.X, Y: v.Y}
}
func NewVectorFromPoint(point image.Point) *Vector {
	return &Vector{X: float64(point.X), Y: float64(point.Y)}
}
func (v *Vector) String() string {
	return fmt.Sprintf("Vector(%v, %v)", v.X, v.Y)
}
func (v *Vector) XY() (x, y float64) {
	return v.X, v.Y
}
func (v *Vector) Add(nv *Vector) *Vector {
	b := nv.Copy()
	v.X += b.X
	v.Y += b.Y
	return v
}
func (v *Vector) Sub(nv *Vector) *Vector {
	b := nv.Copy()
	v.X -= b.X
	v.Y -= b.Y
	return v
}