@@ -453,6 +453,7 @@ def draw(self, renderer):
453453 join = self ._solidjoinstyle
454454 gc .set_joinstyle (join )
455455 gc .set_capstyle (cap )
456+ gc .set_snap (self .get_snap ())
456457
457458 funcname = self ._lineStyles .get (self ._linestyle , '_draw_nothing' )
458459 if funcname != '_draw_nothing' :
@@ -845,6 +846,7 @@ def _draw_dotted(self, renderer, gc, path, trans):
845846 def _draw_point (self , renderer , gc , path , path_trans ):
846847 w = renderer .points_to_pixels (self ._markersize ) * \
847848 self ._point_size_reduction * 0.5
849+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) > 3.0 )
848850 rgbFace = self ._get_rgb_face ()
849851 transform = Affine2D ().scale (w )
850852 renderer .draw_markers (
@@ -854,13 +856,15 @@ def _draw_point(self, renderer, gc, path, path_trans):
854856 _draw_pixel_transform = Affine2D ().translate (- 0.5 , - 0.5 )
855857 def _draw_pixel (self , renderer , gc , path , path_trans ):
856858 rgbFace = self ._get_rgb_face ()
859+ gc .set_snap (False )
857860 renderer .draw_markers (gc , Path .unit_rectangle (),
858861 self ._draw_pixel_transform ,
859862 path , path_trans , rgbFace )
860863
861864
862865 def _draw_circle (self , renderer , gc , path , path_trans ):
863866 w = renderer .points_to_pixels (self ._markersize ) * 0.5
867+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) > 3.0 )
864868 rgbFace = self ._get_rgb_face ()
865869 transform = Affine2D ().scale (w , w )
866870 renderer .draw_markers (
@@ -870,6 +874,7 @@ def _draw_circle(self, renderer, gc, path, path_trans):
870874
871875 _triangle_path = Path ([[0.0 , 1.0 ], [- 1.0 , - 1.0 ], [1.0 , - 1.0 ], [0.0 , 1.0 ]])
872876 def _draw_triangle_up (self , renderer , gc , path , path_trans ):
877+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
873878 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
874879 transform = Affine2D ().scale (offset , offset )
875880 rgbFace = self ._get_rgb_face ()
@@ -878,6 +883,7 @@ def _draw_triangle_up(self, renderer, gc, path, path_trans):
878883
879884
880885 def _draw_triangle_down (self , renderer , gc , path , path_trans ):
886+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
881887 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
882888 transform = Affine2D ().scale (offset , - offset )
883889 rgbFace = self ._get_rgb_face ()
@@ -886,6 +892,7 @@ def _draw_triangle_down(self, renderer, gc, path, path_trans):
886892
887893
888894 def _draw_triangle_left (self , renderer , gc , path , path_trans ):
895+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
889896 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
890897 transform = Affine2D ().scale (offset , offset ).rotate_deg (90 )
891898 rgbFace = self ._get_rgb_face ()
@@ -894,6 +901,7 @@ def _draw_triangle_left(self, renderer, gc, path, path_trans):
894901
895902
896903 def _draw_triangle_right (self , renderer , gc , path , path_trans ):
904+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
897905 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
898906 transform = Affine2D ().scale (offset , offset ).rotate_deg (- 90 )
899907 rgbFace = self ._get_rgb_face ()
@@ -902,6 +910,7 @@ def _draw_triangle_right(self, renderer, gc, path, path_trans):
902910
903911
904912 def _draw_square (self , renderer , gc , path , path_trans ):
913+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 2.0 )
905914 side = renderer .points_to_pixels (self ._markersize )
906915 transform = Affine2D ().translate (- 0.5 , - 0.5 ).scale (side )
907916 rgbFace = self ._get_rgb_face ()
@@ -910,6 +919,7 @@ def _draw_square(self, renderer, gc, path, path_trans):
910919
911920
912921 def _draw_diamond (self , renderer , gc , path , path_trans ):
922+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
913923 side = renderer .points_to_pixels (self ._markersize )
914924 transform = Affine2D ().translate (- 0.5 , - 0.5 ).rotate_deg (45 ).scale (side )
915925 rgbFace = self ._get_rgb_face ()
@@ -918,6 +928,7 @@ def _draw_diamond(self, renderer, gc, path, path_trans):
918928
919929
920930 def _draw_thin_diamond (self , renderer , gc , path , path_trans ):
931+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 3.0 )
921932 offset = renderer .points_to_pixels (self ._markersize )
922933 transform = Affine2D ().translate (- 0.5 , - 0.5 ) \
923934 .rotate_deg (45 ).scale (offset * 0.6 , offset )
@@ -927,13 +938,15 @@ def _draw_thin_diamond(self, renderer, gc, path, path_trans):
927938
928939
929940 def _draw_pentagon (self , renderer , gc , path , path_trans ):
941+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
930942 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
931943 transform = Affine2D ().scale (offset )
932944 rgbFace = self ._get_rgb_face ()
933945 renderer .draw_markers (gc , Path .unit_regular_polygon (5 ), transform ,
934946 path , path_trans , rgbFace )
935947
936948 def _draw_star (self , renderer , gc , path , path_trans ):
949+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
937950 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
938951 transform = Affine2D ().scale (offset )
939952 rgbFace = self ._get_rgb_face ()
@@ -943,6 +956,7 @@ def _draw_star(self, renderer, gc, path, path_trans):
943956
944957
945958 def _draw_hexagon1 (self , renderer , gc , path , path_trans ):
959+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
946960 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
947961 transform = Affine2D ().scale (offset )
948962 rgbFace = self ._get_rgb_face ()
@@ -951,6 +965,7 @@ def _draw_hexagon1(self, renderer, gc, path, path_trans):
951965
952966
953967 def _draw_hexagon2 (self , renderer , gc , path , path_trans ):
968+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
954969 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
955970 transform = Affine2D ().scale (offset ).rotate_deg (30 )
956971 rgbFace = self ._get_rgb_face ()
@@ -960,13 +975,15 @@ def _draw_hexagon2(self, renderer, gc, path, path_trans):
960975
961976 _line_marker_path = Path ([[0.0 , - 1.0 ], [0.0 , 1.0 ]])
962977 def _draw_vline (self , renderer , gc , path , path_trans ):
978+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 1.0 )
963979 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
964980 transform = Affine2D ().scale (offset )
965981 renderer .draw_markers (gc , self ._line_marker_path , transform ,
966982 path , path_trans )
967983
968984
969985 def _draw_hline (self , renderer , gc , path , path_trans ):
986+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 1.0 )
970987 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
971988 transform = Affine2D ().scale (offset ).rotate_deg (90 )
972989 renderer .draw_markers (gc , self ._line_marker_path , transform ,
@@ -975,13 +992,15 @@ def _draw_hline(self, renderer, gc, path, path_trans):
975992
976993 _tickhoriz_path = Path ([[0.0 , 0.0 ], [1.0 , 0.0 ]])
977994 def _draw_tickleft (self , renderer , gc , path , path_trans ):
995+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 1.0 )
978996 offset = renderer .points_to_pixels (self ._markersize )
979997 marker_transform = Affine2D ().scale (- offset , 1.0 )
980998 renderer .draw_markers (gc , self ._tickhoriz_path , marker_transform ,
981999 path , path_trans )
9821000
9831001
9841002 def _draw_tickright (self , renderer , gc , path , path_trans ):
1003+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 1.0 )
9851004 offset = renderer .points_to_pixels (self ._markersize )
9861005 marker_transform = Affine2D ().scale (offset , 1.0 )
9871006 renderer .draw_markers (gc , self ._tickhoriz_path , marker_transform ,
@@ -990,13 +1009,15 @@ def _draw_tickright(self, renderer, gc, path, path_trans):
9901009
9911010 _tickvert_path = Path ([[- 0.0 , 0.0 ], [- 0.0 , 1.0 ]])
9921011 def _draw_tickup (self , renderer , gc , path , path_trans ):
1012+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 1.0 )
9931013 offset = renderer .points_to_pixels (self ._markersize )
9941014 marker_transform = Affine2D ().scale (1.0 , offset )
9951015 renderer .draw_markers (gc , self ._tickvert_path , marker_transform ,
9961016 path , path_trans )
9971017
9981018
9991019 def _draw_tickdown (self , renderer , gc , path , path_trans ):
1020+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 1.0 )
10001021 offset = renderer .points_to_pixels (self ._markersize )
10011022 marker_transform = Affine2D ().scale (1.0 , - offset )
10021023 renderer .draw_markers (gc , self ._tickvert_path , marker_transform ,
@@ -1008,6 +1029,7 @@ def _draw_tickdown(self, renderer, gc, path, path_trans):
10081029 [Path .MOVETO , Path .LINETO ,
10091030 Path .MOVETO , Path .LINETO ])
10101031 def _draw_plus (self , renderer , gc , path , path_trans ):
1032+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 3.0 )
10111033 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
10121034 transform = Affine2D ().scale (offset )
10131035 renderer .draw_markers (gc , self ._plus_path , transform ,
@@ -1021,27 +1043,31 @@ def _draw_plus(self, renderer, gc, path, path_trans):
10211043 Path .MOVETO , Path .LINETO ,
10221044 Path .MOVETO , Path .LINETO ])
10231045 def _draw_tri_down (self , renderer , gc , path , path_trans ):
1046+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
10241047 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
10251048 transform = Affine2D ().scale (offset )
10261049 renderer .draw_markers (gc , self ._tri_path , transform ,
10271050 path , path_trans )
10281051
10291052
10301053 def _draw_tri_up (self , renderer , gc , path , path_trans ):
1054+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
10311055 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
10321056 transform = Affine2D ().scale (offset ).rotate_deg (180 )
10331057 renderer .draw_markers (gc , self ._tri_path , transform ,
10341058 path , path_trans )
10351059
10361060
10371061 def _draw_tri_left (self , renderer , gc , path , path_trans ):
1062+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
10381063 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
10391064 transform = Affine2D ().scale (offset ).rotate_deg (90 )
10401065 renderer .draw_markers (gc , self ._tri_path , transform ,
10411066 path , path_trans )
10421067
10431068
10441069 def _draw_tri_right (self , renderer , gc , path , path_trans ):
1070+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 5.0 )
10451071 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
10461072 transform = Affine2D ().scale (offset ).rotate_deg (270 )
10471073 renderer .draw_markers (gc , self ._tri_path , transform ,
@@ -1050,27 +1076,31 @@ def _draw_tri_right(self, renderer, gc, path, path_trans):
10501076
10511077 _caret_path = Path ([[- 1.0 , 1.5 ], [0.0 , 0.0 ], [1.0 , 1.5 ]])
10521078 def _draw_caretdown (self , renderer , gc , path , path_trans ):
1079+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 3.0 )
10531080 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
10541081 transform = Affine2D ().scale (offset )
10551082 renderer .draw_markers (gc , self ._caret_path , transform ,
10561083 path , path_trans )
10571084
10581085
10591086 def _draw_caretup (self , renderer , gc , path , path_trans ):
1087+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 3.0 )
10601088 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
10611089 transform = Affine2D ().scale (offset ).rotate_deg (180 )
10621090 renderer .draw_markers (gc , self ._caret_path , transform ,
10631091 path , path_trans )
10641092
10651093
10661094 def _draw_caretleft (self , renderer , gc , path , path_trans ):
1095+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 3.0 )
10671096 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
10681097 transform = Affine2D ().scale (offset ).rotate_deg (270 )
10691098 renderer .draw_markers (gc , self ._caret_path , transform ,
10701099 path , path_trans )
10711100
10721101
10731102 def _draw_caretright (self , renderer , gc , path , path_trans ):
1103+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 3.0 )
10741104 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
10751105 transform = Affine2D ().scale (offset ).rotate_deg (90 )
10761106 renderer .draw_markers (gc , self ._caret_path , transform ,
@@ -1082,6 +1112,7 @@ def _draw_caretright(self, renderer, gc, path, path_trans):
10821112 [Path .MOVETO , Path .LINETO ,
10831113 Path .MOVETO , Path .LINETO ])
10841114 def _draw_x (self , renderer , gc , path , path_trans ):
1115+ gc .set_snap (renderer .points_to_pixels (self ._markersize ) >= 3.0 )
10851116 offset = 0.5 * renderer .points_to_pixels (self ._markersize )
10861117 transform = Affine2D ().scale (offset )
10871118 renderer .draw_markers (gc , self ._x_path , transform ,
0 commit comments