Skip to content

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))
MethodDescription
add_gds_propertyAdd a custom property to this object compatible with GDSII files.
areaStructure area.
boundsCalculate the structure bounds
copyCreate a copy of this structure.
mirrorMirror this structure.
perimeterStructure perimeter.
rotateRotate this structure.
scaleScale this structure.
to_polygonCreate a Polygon from this structure.
transformApply a transformation to this structure:
translateTranslate this structure.

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(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(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(self)

Structure perimeter.

Returns

float: Perimeter of the structure.

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(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(
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(self, translation)

Translate this structure.

Args

  • translation (Sequence[float] | complex): Translation vector.

Returns

Rectangle: This object.

AttributeDescription
centerndarray: Center of the rectangle.
propertiesProperties: Object properties.
rotationfloat: Rotation angle of rectangle (in degrees).
sizendarray: Size of the rectangle.
x_maxfloat: Upper bound in the x axis.
x_midfloat: Bounding box center in the x axis.
x_minfloat: Lower bound in the x axis.
y_maxfloat: Upper bound in the y axis.
y_midfloat: Bounding box center in the y axis.
y_minfloat: Lower bound in the y axis.

ndarray: Center of the rectangle.

Properties: Object properties.

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.