The family dinghy was recently relocated to a new spot in the marina, and the question arose: should I cross the back moorings or run them straight?

To add some background, this is a rather small dinghy in a spot suited for a small sailing boat, i.e. a long and narrow spot. This means I have over 2m out to the rear poles, but not much space on the sides. Also, the moorings are weighted, i.e. at each rear pole there is a pulley with a line running to a submerged weight. This ensures that the moorings can just be clicked in and out, which is critical since the point of the dinghy is easy access to water.

This figure shows the geometry: \(C\) and \(D\) are the poles, \(F\) and \(G\) are the rear corners of the dinghy.

For fixed moorings, there is no doubt that crossing the mooring lines (i.e. using the red lines in the figure) would be the most stiff and least tide sensitive solution.

For weighted moorings, my intuition told me to do the same -- but it did not perform so well, so I went back and did the math. Turns out that not crossing the moorings was more than twice as stiff as crossing.

My first approach was to use geogebra to analyse the moorings, since it is a purely geometrical problem: to find the stiffness, we must compute the variation in the combined mooring length (i.e. \(m+n\) vs \(i+j\)).

Geogebra actually worked quite well: I could build a parametrized model (see geogebra solution), and using the "locus" tool, it was obvious that not crossing was the way to go.

Still, I could not figure out how to get geogebra to compute the curvature of the locuses (loci?), and decided to have a go with the sympy geometry modlue as well.

This turned out to be a very nice experience. The whole notebook is here, but basically, defining the whole geometry was simply:

```
a,b,c,d, v = sympy.symbols('a b c d v')
A = geom.Point(-a, 0)
F, G = [geom.Point(0, dy).rotate(v, pt=A) for dy in (b/2, -b/2)]
C, D = [geom.Point(c, dy) for dy in (d/2, -d/2)]
```

In six more cells, I get plots of combined mooring line lengths and a symbolic derivation of the stiffness for the two systems:

All in all, I was very impressed with `sympy`

and expect that it will take over the role of `geogebra`

, `mathematica`

etc. in my day to day activities.