A rectangle with equal side lengths. Parameters ---------- side_length The length of the sides of the square. kwargs Additional arguments to be passed to :class:`Rectangle`. Examples -------- .. manim:: SquareExample :save_last_frame: cl
| 679 | |
| 680 | |
| 681 | class Square(Rectangle): |
| 682 | """A rectangle with equal side lengths. |
| 683 | |
| 684 | Parameters |
| 685 | ---------- |
| 686 | side_length |
| 687 | The length of the sides of the square. |
| 688 | kwargs |
| 689 | Additional arguments to be passed to :class:`Rectangle`. |
| 690 | |
| 691 | Examples |
| 692 | -------- |
| 693 | .. manim:: SquareExample |
| 694 | :save_last_frame: |
| 695 | |
| 696 | class SquareExample(Scene): |
| 697 | def construct(self): |
| 698 | square_1 = Square(side_length=2.0).shift(DOWN) |
| 699 | square_2 = Square(side_length=1.0).next_to(square_1, direction=UP) |
| 700 | square_3 = Square(side_length=0.5).next_to(square_2, direction=UP) |
| 701 | self.add(square_1, square_2, square_3) |
| 702 | """ |
| 703 | |
| 704 | def __init__(self, side_length: float = 2.0, **kwargs: Any) -> None: |
| 705 | super().__init__(height=side_length, width=side_length, **kwargs) |
| 706 | |
| 707 | @property |
| 708 | def side_length(self) -> float: |
| 709 | return float(np.linalg.norm(self.get_vertices()[0] - self.get_vertices()[1])) |
| 710 | |
| 711 | @side_length.setter |
| 712 | def side_length(self, value: float) -> None: |
| 713 | self.scale(value / self.side_length) |
| 714 | |
| 715 | |
| 716 | class RoundedRectangle(Rectangle): |
no outgoing calls