@@ -428,18 +428,9 @@ def _set_circle(self, reduction=1.0):
428
428
if not self ._half_fill ():
429
429
self ._path = Path .unit_circle ()
430
430
else :
431
- # build a right-half circle
432
- if fs == 'bottom' :
433
- rotate = 270.
434
- elif fs == 'top' :
435
- rotate = 90.
436
- elif fs == 'left' :
437
- rotate = 180.
438
- else :
439
- rotate = 0.
440
-
441
431
self ._path = self ._alt_path = Path .unit_circle_righthalf ()
442
- self ._transform .rotate_deg (rotate )
432
+ self ._transform .rotate_deg (
433
+ {'right' : 0 , 'top' : 90 , 'left' : 180 , 'bottom' : 270 }[fs ])
443
434
self ._alt_transform = self ._transform .frozen ().rotate_deg (180. )
444
435
445
436
def _set_pixel (self ):
@@ -518,24 +509,11 @@ def _set_square(self):
518
509
if not self ._half_fill ():
519
510
self ._path = Path .unit_rectangle ()
520
511
else :
521
- # build a bottom filled square out of two rectangles, one
522
- # filled. Use the rotation to support left, right, bottom
523
- # or top
524
- if fs == 'bottom' :
525
- rotate = 0.
526
- elif fs == 'top' :
527
- rotate = 180.
528
- elif fs == 'left' :
529
- rotate = 270.
530
- else :
531
- rotate = 90.
532
-
533
- self ._path = Path ([[0.0 , 0.0 ], [1.0 , 0.0 ], [1.0 , 0.5 ],
534
- [0.0 , 0.5 ], [0.0 , 0.0 ]])
535
- self ._alt_path = Path ([[0.0 , 0.5 ], [1.0 , 0.5 ], [1.0 , 1.0 ],
536
- [0.0 , 1.0 ], [0.0 , 0.5 ]])
537
- self ._transform .rotate_deg (rotate )
538
- self ._alt_transform = self ._transform
512
+ self ._path = self ._alt_path = Path ( # Half-square.
513
+ [[0.0 , 0.0 ], [1.0 , 0.0 ], [1.0 , 0.5 ], [0.0 , 0.5 ], [0.0 , 0.0 ]])
514
+ self ._transform .rotate_deg (
515
+ {'bottom' : 0 , 'right' : 90 , 'top' : 180 , 'left' : 270 }[fs ])
516
+ self ._alt_transform = self ._transform .frozen ().rotate_deg (180 )
539
517
540
518
self ._joinstyle = 'miter'
541
519
@@ -546,18 +524,11 @@ def _set_diamond(self):
546
524
if not self ._half_fill ():
547
525
self ._path = Path .unit_rectangle ()
548
526
else :
549
- self ._path = Path ([[0 , 0 ], [1 , 0 ], [1 , 1 ], [0 , 0 ]])
550
- self ._alt_path = Path ([[0 , 0 ], [0 , 1 ], [1 , 1 ], [0 , 0 ]])
551
- if fs == 'bottom' :
552
- rotate = 270.
553
- elif fs == 'top' :
554
- rotate = 90.
555
- elif fs == 'left' :
556
- rotate = 180.
557
- else :
558
- rotate = 0.
559
- self ._transform .rotate_deg (rotate )
560
- self ._alt_transform = self ._transform
527
+ self ._path = self ._alt_path = Path (
528
+ [[0 , 0 ], [1 , 0 ], [1 , 1 ], [0 , 0 ]])
529
+ self ._transform .rotate_deg (
530
+ {'right' : 0 , 'top' : 90 , 'left' : 180 , 'bottom' : 270 }[fs ])
531
+ self ._alt_transform = self ._transform .frozen ().rotate_deg (180 )
561
532
self ._joinstyle = 'miter'
562
533
563
534
def _set_thin_diamond (self ):
@@ -575,23 +546,15 @@ def _set_pentagon(self):
575
546
self ._path = polypath
576
547
else :
577
548
verts = polypath .vertices
578
-
579
549
y = (1 + np .sqrt (5 )) / 4.
580
550
top = Path ([verts [0 ], verts [1 ], verts [4 ], verts [0 ]])
581
551
bottom = Path ([verts [1 ], verts [2 ], verts [3 ], verts [4 ], verts [1 ]])
582
552
left = Path ([verts [0 ], verts [1 ], verts [2 ], [0 , - y ], verts [0 ]])
583
553
right = Path ([verts [0 ], verts [4 ], verts [3 ], [0 , - y ], verts [0 ]])
584
-
585
- if fs == 'top' :
586
- mpath , mpath_alt = top , bottom
587
- elif fs == 'bottom' :
588
- mpath , mpath_alt = bottom , top
589
- elif fs == 'left' :
590
- mpath , mpath_alt = left , right
591
- else :
592
- mpath , mpath_alt = right , left
593
- self ._path = mpath
594
- self ._alt_path = mpath_alt
554
+ self ._path , self ._alt_path = {
555
+ 'top' : (top , bottom ), 'bottom' : (bottom , top ),
556
+ 'left' : (left , right ), 'right' : (right , left ),
557
+ }[fs ]
595
558
self ._alt_transform = self ._transform
596
559
597
560
self ._joinstyle = 'miter'
@@ -607,22 +570,14 @@ def _set_star(self):
607
570
self ._path = polypath
608
571
else :
609
572
verts = polypath .vertices
610
-
611
573
top = Path (np .concatenate ([verts [0 :4 ], verts [7 :10 ], verts [0 :1 ]]))
612
574
bottom = Path (np .concatenate ([verts [3 :8 ], verts [3 :4 ]]))
613
575
left = Path (np .concatenate ([verts [0 :6 ], verts [0 :1 ]]))
614
576
right = Path (np .concatenate ([verts [0 :1 ], verts [5 :10 ], verts [0 :1 ]]))
615
-
616
- if fs == 'top' :
617
- mpath , mpath_alt = top , bottom
618
- elif fs == 'bottom' :
619
- mpath , mpath_alt = bottom , top
620
- elif fs == 'left' :
621
- mpath , mpath_alt = left , right
622
- else :
623
- mpath , mpath_alt = right , left
624
- self ._path = mpath
625
- self ._alt_path = mpath_alt
577
+ self ._path , self ._alt_path = {
578
+ 'top' : (top , bottom ), 'bottom' : (bottom , top ),
579
+ 'left' : (left , right ), 'right' : (right , left ),
580
+ }[fs ]
626
581
self ._alt_transform = self ._transform
627
582
628
583
self ._joinstyle = 'bevel'
@@ -638,25 +593,16 @@ def _set_hexagon1(self):
638
593
self ._path = polypath
639
594
else :
640
595
verts = polypath .vertices
641
-
642
596
# not drawing inside lines
643
597
x = np .abs (np .cos (5 * np .pi / 6. ))
644
598
top = Path (np .concatenate ([[(- x , 0 )], verts [[1 , 0 , 5 ]], [(x , 0 )]]))
645
599
bottom = Path (np .concatenate ([[(- x , 0 )], verts [2 :5 ], [(x , 0 )]]))
646
600
left = Path (verts [0 :4 ])
647
601
right = Path (verts [[0 , 5 , 4 , 3 ]])
648
-
649
- if fs == 'top' :
650
- mpath , mpath_alt = top , bottom
651
- elif fs == 'bottom' :
652
- mpath , mpath_alt = bottom , top
653
- elif fs == 'left' :
654
- mpath , mpath_alt = left , right
655
- else :
656
- mpath , mpath_alt = right , left
657
-
658
- self ._path = mpath
659
- self ._alt_path = mpath_alt
602
+ self ._path , self ._alt_path = {
603
+ 'top' : (top , bottom ), 'bottom' : (bottom , top ),
604
+ 'left' : (left , right ), 'right' : (right , left ),
605
+ }[fs ]
660
606
self ._alt_transform = self ._transform
661
607
662
608
self ._joinstyle = 'miter'
@@ -672,7 +618,6 @@ def _set_hexagon2(self):
672
618
self ._path = polypath
673
619
else :
674
620
verts = polypath .vertices
675
-
676
621
# not drawing inside lines
677
622
x , y = np .sqrt (3 ) / 4 , 3 / 4.
678
623
top = Path (verts [[1 , 0 , 5 , 4 , 1 ]])
@@ -681,18 +626,10 @@ def _set_hexagon2(self):
681
626
[(x , y )], verts [:3 ], [(- x , - y ), (x , y )]]))
682
627
right = Path (np .concatenate ([
683
628
[(x , y )], verts [5 :2 :- 1 ], [(- x , - y )]]))
684
-
685
- if fs == 'top' :
686
- mpath , mpath_alt = top , bottom
687
- elif fs == 'bottom' :
688
- mpath , mpath_alt = bottom , top
689
- elif fs == 'left' :
690
- mpath , mpath_alt = left , right
691
- else :
692
- mpath , mpath_alt = right , left
693
-
694
- self ._path = mpath
695
- self ._alt_path = mpath_alt
629
+ self ._path , self ._alt_path = {
630
+ 'top' : (top , bottom ), 'bottom' : (bottom , top ),
631
+ 'left' : (left , right ), 'right' : (right , left ),
632
+ }[fs ]
696
633
self ._alt_transform = self ._transform
697
634
698
635
self ._joinstyle = 'miter'
@@ -711,17 +648,8 @@ def _set_octagon(self):
711
648
x = np .sqrt (2. ) / 4.
712
649
half = Path ([[0 , - 1 ], [0 , 1 ], [- x , 1 ], [- 1 , x ],
713
650
[- 1 , - x ], [- x , - 1 ], [0 , - 1 ]])
714
-
715
- if fs == 'bottom' :
716
- rotate = 90.
717
- elif fs == 'top' :
718
- rotate = 270.
719
- elif fs == 'right' :
720
- rotate = 180.
721
- else :
722
- rotate = 0.
723
-
724
- self ._transform .rotate_deg (rotate )
651
+ self ._transform .rotate_deg (
652
+ {'left' : 0 , 'bottom' : 90 , 'right' : 180 , 'left' : 270 }[fs ])
725
653
self ._path = self ._alt_path = half
726
654
self ._alt_transform = self ._transform .frozen ().rotate_deg (180.0 )
727
655
@@ -870,20 +798,10 @@ def _set_plus_filled(self):
870
798
self ._path = self ._plus_filled_path
871
799
else :
872
800
# Rotate top half path to support all partitions
873
- if fs == 'top' :
874
- rotate , rotate_alt = 0 , 180
875
- elif fs == 'bottom' :
876
- rotate , rotate_alt = 180 , 0
877
- elif fs == 'left' :
878
- rotate , rotate_alt = 90 , 270
879
- else :
880
- rotate , rotate_alt = 270 , 90
881
-
882
- self ._path = self ._plus_filled_path_t
883
- self ._alt_path = self ._plus_filled_path_t
884
- self ._alt_transform = Affine2D ().translate (- 0.5 , - 0.5 )
885
- self ._transform .rotate_deg (rotate )
886
- self ._alt_transform .rotate_deg (rotate_alt )
801
+ self ._path = self ._alt_path = self ._plus_filled_path_t
802
+ self ._transform .rotate_deg ({
803
+ 'top' : 0 , 'left' : 90 , 'bottom' : 180 , 'right' : 270 }[fs ])
804
+ self ._alt_transform = self ._transform .frozen ().rotate (180 )
887
805
888
806
_x_filled_path = Path (
889
807
[(0.25 , 0 ), (0.5 , 0.25 ), (0.75 , 0 ), (1 , 0.25 ), (0.75 , 0.5 ), (1 , 0.75 ),
@@ -902,17 +820,7 @@ def _set_x_filled(self):
902
820
self ._path = self ._x_filled_path
903
821
else :
904
822
# Rotate top half path to support all partitions
905
- if fs == 'top' :
906
- rotate , rotate_alt = 0 , 180
907
- elif fs == 'bottom' :
908
- rotate , rotate_alt = 180 , 0
909
- elif fs == 'left' :
910
- rotate , rotate_alt = 90 , 270
911
- else :
912
- rotate , rotate_alt = 270 , 90
913
-
914
- self ._path = self ._x_filled_path_t
915
- self ._alt_path = self ._x_filled_path_t
916
- self ._alt_transform = Affine2D ().translate (- 0.5 , - 0.5 )
917
- self ._transform .rotate_deg (rotate )
918
- self ._alt_transform .rotate_deg (rotate_alt )
823
+ self ._path = self ._alt_path = self ._x_filled_path_t
824
+ self ._transform .rotate_deg ({
825
+ 'top' : 0 , 'left' : 90 , 'bottom' : 180 , 'right' : 270 }[fs ])
826
+ self ._alt_transform = self ._transform .frozen ().rotate (180 )
0 commit comments