Rectangle
Rectangle(corner1=None, corner2=None, center=None, size=None, rotation=0)Rectangular geometric object.
Args
- corner1 (Sequence[float] | complex | None): First rectangle corner.
- corner2 (Sequence[float] | complex | None): Second rectangle corner.
- center (Sequence[float] | complex | None): Rectangle center.
- size (Sequence[float] | complex | None): Rectangle size.
- rotation (float): Rotation angle around the center (in degrees).
Example
>>> rect1 = pf.Rectangle((0, 0), (2, 1)) # corners>>> rect2 = pf.Rectangle(center=(1, 0.5), size=(2, 1))Methods
Section titled “Methods”| Method | Description |
|---|---|
add_gds_property | Add a custom property to this object compatible with GDSII files. |
area | Structure area. |
bounds | Calculate the structure bounds |
copy | Create a copy of this structure. |
mirror | Mirror this structure. |
perimeter | Structure perimeter. |
rotate | Rotate this structure. |
scale | Scale this structure. |
to_polygon | Create a Polygon from this structure. |
transform | Apply a transformation to this structure: |
translate | Translate this structure. |
add_gds_property
Section titled “add_gds_property”add_gds_property(attribute, value)Add a custom property to this object compatible with GDSII files.
Args
- attribute (int): Property number.
- value (str): Property value.
area(self)Structure area.
Returns
float: Area of the structure.
bounds
Section titled “bounds”bounds(self)Calculate the structure bounds
Returns
tuple[ndarray, ndarray]: The lower-left and upper-right corners of
the bounding box of the structure:
((min_x, min_y), (max_x, max_y)).
Example
>>> polygon = pf.Polygon([(0, 1), (1, 2), (3, -1)])>>> bounds = polygon.bounds()>>> print(bounds)(array([ 0., -1.]), array([3., 2.]))copy(self)Create a copy of this structure.
Returns
Rectangle: New copy.
mirror
Section titled “mirror”mirror(self, axis_endpoint=(1, 0), axis_origin=(0, 0))Mirror this structure.
Args
- axis_endpoint (Sequence[float] | complex): Mirror axis endpoint.
- axis_origin (Sequence[float] | complex): Mirror axis origin.
Returns
Rectangle: This object.
perimeter
Section titled “perimeter”perimeter(self)Structure perimeter.
Returns
float: Perimeter of the structure.
rotate
Section titled “rotate”rotate(self, rotation, center=(0, 0))Rotate this structure.
Args
- rotation (float): Rotation angle (in degrees).
- center (Sequence[float] | complex): Center of rotation.
Returns
Rectangle: This object.
scale(self, scaling, center=(0, 0))Scale this structure.
Args
- scaling (float): Magnification factor.
- center (Sequence[float] | complex): Center of scaling.
Returns
Rectangle: This object.
to_polygon
Section titled “to_polygon”to_polygon(self)Create a Polygon from this structure.
Returns
Polygon: New polygon instance.
Examples
>>> rectangle = pf.Rectangle((0, 0), (2, 1), rotation=45)>>> polygon = rectangle.to_polygon()>>> circle = pf.Circle(5, (0, 0), inner_radius=3)>>> polygon = circle.to_polygon()>>> path = pf.Path((0, 0), 0.5).s_bend((10, 2))>>> polygon = path.to_polygon()transform
Section titled “transform”transform( self, translation=(0, 0), rotation=0, scaling=1, x_reflection=False)Apply a transformation to this structure:
self = translate(rotate(mirror(scale(self))))
Args
- translation (Sequence[float] | complex): Translation vector.
- rotation (float): Rotation angle (in degrees).
- scaling (float): Magnification factor.
- x_reflection (bool): Mirror across the horizontal axis.
Returns
Rectangle: This object.
translate
Section titled “translate”translate(self, translation)Translate this structure.
Args
- translation (Sequence[float] | complex): Translation vector.
Returns
Rectangle: This object.
Attributes
Section titled “Attributes”| Attribute | Description |
|---|---|
center | ndarray: Center of the rectangle. |
properties | Properties: Object properties. |
rotation | float: Rotation angle of rectangle (in degrees). |
size | ndarray: Size of the rectangle. |
x_max | float: Upper bound in the x axis. |
x_mid | float: Bounding box center in the x axis. |
x_min | float: Lower bound in the x axis. |
y_max | float: Upper bound in the y axis. |
y_mid | float: Bounding box center in the y axis. |
y_min | float: Lower bound in the y axis. |
center
Section titled “center”ndarray: Center of the rectangle.
properties
Section titled “properties”Properties: Object properties.
rotation
Section titled “rotation”float: Rotation angle of rectangle (in degrees).
ndarray: Size of the rectangle.
float: Upper bound in the x axis.
float: Bounding box center in the x axis.
float: Lower bound in the x axis.
float: Upper bound in the y axis.
float: Bounding box center in the y axis.
float: Lower bound in the y axis.