From 892183baf75b741d1b79098df06821b31a9ed1dd Mon Sep 17 00:00:00 2001 From: nila Date: Mon, 18 May 2020 15:54:18 +0200 Subject: [PATCH] g.gui.iclass: replace dist_point_to_segment() from matplotlib, which was disabled for matplotlib 3.1.0+. Fixes: https://github.com/OSGeo/grass/issues/461 --- gui/wxpython/iscatt/plots.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gui/wxpython/iscatt/plots.py b/gui/wxpython/iscatt/plots.py index 965f33976f3..f7d0be036f7 100644 --- a/gui/wxpython/iscatt/plots.py +++ b/gui/wxpython/iscatt/plots.py @@ -35,7 +35,6 @@ FigureCanvasWxAgg as FigCanvas from matplotlib.lines import Line2D from matplotlib.artist import Artist - from matplotlib.mlab import dist_point_to_segment from matplotlib.patches import Polygon, Ellipse, Rectangle import matplotlib.image as mi import matplotlib.colors as mcolors @@ -838,6 +837,13 @@ def _deleteVertex(self, event): self.Redraw() + def _dist_point_to_segment(p, s0, s1): + p = np.asarray(p, float) + s0 = np.asarray(s0, float) + s1 = np.asarray(s1, float) + + return np.cross(s1-s0, p-s0)/np.linalg.norm(s1-s0) + def _addVertexOnBoundary(self, event): if self.empty_pol: return @@ -847,7 +853,7 @@ def _addVertexOnBoundary(self, event): for i in range(len(xys) - 1): s0 = xys[i] s1 = xys[i + 1] - d = dist_point_to_segment(p, s0, s1) + d = self._dist_point_to_segment(p, s0, s1) if d <= self._getSnapTresh(): self.pol.xy = np.array(