From 4bc50da563581eaecc0912489e8677f866ab07db Mon Sep 17 00:00:00 2001 From: David Stansby Date: Wed, 8 Feb 2017 13:25:54 +0000 Subject: [PATCH 1/2] Correct theta values when drawing a non-circular ellipse Make arcs work with units Add api change not for elliptical notes Add background ellipse and extra line to test Remove pdf and svg tests for arc angles --- .../2017-02-10-DS_elliptical_arc_angle.rst | 8 ++++ lib/matplotlib/patches.py | 20 ++++++--- .../baseline_images/test_axes/arc_angles.png | Bin 0 -> 25491 bytes lib/matplotlib/tests/test_axes.py | 42 ++++++++++++++---- 4 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 doc/api/api_changes/2017-02-10-DS_elliptical_arc_angle.rst create mode 100644 lib/matplotlib/tests/baseline_images/test_axes/arc_angles.png diff --git a/doc/api/api_changes/2017-02-10-DS_elliptical_arc_angle.rst b/doc/api/api_changes/2017-02-10-DS_elliptical_arc_angle.rst new file mode 100644 index 000000000000..e9b9e545073c --- /dev/null +++ b/doc/api/api_changes/2017-02-10-DS_elliptical_arc_angle.rst @@ -0,0 +1,8 @@ +Elliptical arcs now drawn between correct angles +```````````````````````````````````````````````` + +The `matplotlib.patches.Arc` patch is now correctly drawn between the given +angles. + +Previously a circular are was drawn and then stretched into an ellipse, +so the resulting arc did not lie between *theta1* and *theta2*. diff --git a/lib/matplotlib/patches.py b/lib/matplotlib/patches.py index 0e5073b6c9c2..9bbe19d50d8c 100644 --- a/lib/matplotlib/patches.py +++ b/lib/matplotlib/patches.py @@ -1554,8 +1554,6 @@ def __init__(self, xy, width, height, angle=0.0, self.theta1 = theta1 self.theta2 = theta2 - self._path = Path.arc(self.theta1, self.theta2) - @allow_rasterization def draw(self, renderer): """ @@ -1607,15 +1605,25 @@ def draw(self, renderer): self._recompute_transform() - # Get the width and height in pixels width = self.convert_xunits(self.width) height = self.convert_yunits(self.height) + + # If the width and height of ellipse are not equal, take into account + # stretching when calculating angles to draw between + def theta_stretch(theta, scale): + theta = np.deg2rad(theta) + x = np.cos(theta) + y = np.sin(theta) + return np.rad2deg(np.arctan2(scale * y, x)) + theta1 = theta_stretch(self.theta1, width / height) + theta2 = theta_stretch(self.theta2, width / height) + + # Get width and height in pixels width, height = self.get_transform().transform_point( (width, height)) inv_error = (1.0 / 1.89818e-6) * 0.5 - if width < inv_error and height < inv_error: - # self._path = Path.arc(self.theta1, self.theta2) + self._path = Path.arc(theta1, theta2) return Patch.draw(self, renderer) def iter_circle_intersect_on_line(x0, y0, x1, y1): @@ -1670,8 +1678,6 @@ def iter_circle_intersect_on_line_seg(x0, y0, x1, y1): self.get_transform().inverted() box_path = box_path.transformed(box_path_transform) - theta1 = self.theta1 - theta2 = self.theta2 thetas = set() # For each of the point pairs, there is a line segment for p0, p1 in zip(box_path.vertices[:-1], box_path.vertices[1:]): diff --git a/lib/matplotlib/tests/baseline_images/test_axes/arc_angles.png b/lib/matplotlib/tests/baseline_images/test_axes/arc_angles.png new file mode 100644 index 0000000000000000000000000000000000000000..82a9840913f380870dd1177533226892f7ee46c6 GIT binary patch literal 25491 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 I Date: Thu, 2 Mar 2017 21:52:21 +0000 Subject: [PATCH 2/2] Fix small typo in api change --- doc/api/api_changes/2017-02-10-DS_elliptical_arc_angle.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/api_changes/2017-02-10-DS_elliptical_arc_angle.rst b/doc/api/api_changes/2017-02-10-DS_elliptical_arc_angle.rst index e9b9e545073c..1570a17d9549 100644 --- a/doc/api/api_changes/2017-02-10-DS_elliptical_arc_angle.rst +++ b/doc/api/api_changes/2017-02-10-DS_elliptical_arc_angle.rst @@ -4,5 +4,5 @@ Elliptical arcs now drawn between correct angles The `matplotlib.patches.Arc` patch is now correctly drawn between the given angles. -Previously a circular are was drawn and then stretched into an ellipse, +Previously a circular arc was drawn and then stretched into an ellipse, so the resulting arc did not lie between *theta1* and *theta2*.