code: func (c *Coordinate) ApplyForce(config *Config, force float64, other *Coordinate) *Coordinate {
  	if !c.IsCompatibleWith(other) {
  		panic(DimensionalityConflictError{})
  	}
  
  	ret := c.Clone()
  	unit, mag := unitVectorAt(c.Vec, other.Vec)
  	ret.Vec = add(ret.Vec, mul(unit, force))
  	if mag > zeroThreshold {
  		ret.Height = (ret.Height+other.Height)*force/mag + ret.Height
  		ret.Height = math.Max(ret.Height, config.HeightMin)
  	}
  	return ret
  }
docs: // ApplyForce returns the result of applying the force from the direction of the
  // other coordinate.