Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 579d1e4

Browse files
committed
ortho projection fixes
- renamed persp to proj - renamed get_proj to get_proj_matrix - add test for ortho_projection
1 parent fa7784c commit 579d1e4

8 files changed

Lines changed: 248 additions & 279 deletions

File tree

lib/mpl_toolkits/mplot3d/axes3d.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def __init__(self, fig, rect=None, *args, **kwargs):
6363
*elev* Elevation viewing angle (default 30)
6464
*zscale* [%(scale)s]
6565
*sharez* Other axes to share z-limits with
66-
*persp* Perspective projection (default True)
66+
*proj* 'persp' or 'ortho' (default 'persp')
6767
================ =========================================
6868
6969
.. versionadded :: 1.2.1
@@ -79,7 +79,7 @@ def __init__(self, fig, rect=None, *args, **kwargs):
7979
self.initial_elev = kwargs.pop('elev', 30)
8080
zscale = kwargs.pop('zscale', None)
8181
sharez = kwargs.pop('sharez', None)
82-
self.set_persp(kwargs.pop('persp', True))
82+
self.set_proj(kwargs.pop('projection', 'persp'))
8383

8484
self.xy_viewLim = unit_bbox()
8585
self.zz_viewLim = unit_bbox()
@@ -263,7 +263,7 @@ def draw(self, renderer):
263263
self.apply_aspect()
264264

265265
# add the projection matrix to the renderer
266-
self.M = self.get_proj()
266+
self.M = self.get_proj_matrix()
267267
renderer.M = self.M
268268
renderer.vvec = self.vvec
269269
renderer.eye = self.eye
@@ -961,19 +961,18 @@ def view_init(self, elev=None, azim=None):
961961
else:
962962
self.azim = azim
963963

964-
def set_persp(self, persp):
964+
def set_proj(self, proj):
965965
"""
966-
Set whether the projection should be perspective.
967-
968-
If set to *False*, orthographic projection will be used.
969-
966+
Set the type of projection.
970967
"""
971-
if persp:
968+
if proj == 'persp':
972969
self._projection = proj3d.persp_transformation
973-
else:
970+
elif proj == 'ortho':
974971
self._projection = proj3d.ortho_transformation
972+
else:
973+
raise ValueError("unrecognized projection: %s" % proj)
975974

976-
def get_proj(self):
975+
def get_proj_matrix(self):
977976
"""
978977
Create the projection matrix from the current viewing position.
979978
@@ -1189,7 +1188,7 @@ def _on_move(self, event):
11891188
return
11901189
self.elev = art3d.norm_angle(self.elev - (dy/h)*180)
11911190
self.azim = art3d.norm_angle(self.azim - (dx/w)*180)
1192-
self.get_proj()
1191+
self.get_proj_matrix()
11931192
self.figure.canvas.draw_idle()
11941193

11951194
# elif self.button_pressed == 2:
@@ -1210,7 +1209,7 @@ def _on_move(self, event):
12101209
self.set_xlim3d(minx - dx, maxx + dx)
12111210
self.set_ylim3d(miny - dy, maxy + dy)
12121211
self.set_zlim3d(minz - dz, maxz + dz)
1213-
self.get_proj()
1212+
self.get_proj_matrix()
12141213
self.figure.canvas.draw_idle()
12151214

12161215
def set_zlabel(self, zlabel, fontdict=None, labelpad=None, **kwargs):

lib/mpl_toolkits/tests/baseline_images/test_mplot3d/axes3d_persp_false.pdf renamed to lib/mpl_toolkits/tests/baseline_images/test_mplot3d/axes3d_ortho.pdf

7.06 KB
Binary file not shown.
46.7 KB
Loading

0 commit comments

Comments
 (0)