public override double Intersect(BasinBase otherBasin) { var other = (MeridianBase)otherBasin; var Qt = new Vector2D( other.Q.X * Math.Cos(Lambda.Value - otherBasin.Lambda.Value), other.Q.Y); Beta_traverse = Qt.AngleTo(Qb /*or Q?*/.ToVector2D()).Radians; return(Triangles.SinusesTheorem( Math.PI / 2 + Delta_g_meridian, r, Beta_traverse) - //r; otherBasin.r); //there's deformation }