Polygon.from_sides_and_radius_xy

classmethod Polygon.from_sides_and_radius_xy(n, radius)[source]

Construct a polygon from a number of sides and a radius. The resulting polygon is planar, equilateral and equiangular.

Parameters:
nint

The number of sides.

radiusfloat

The radius of the circle the polygon will be circumscribed to.

Returns:
compas.geometry.Polygon

The constructed polygon.

Raises:
ValueError

If the number of sides is smaller than 3.

Notes

The first point of the polygon aligns with the Y-axis. The order of the polygon’s points is counterclockwise.

Examples

>>> from compas.geometry import dot_vectors
>>> from compas.geometry import subtract_vectors
>>> pentagon = Polygon.from_sides_and_radius_xy(5, 1.0)
>>> len(pentagon.lines) == 5
True
>>> len({round(line.length, 6) for line in pentagon.lines}) == 1
True
>>> dot_vectors(pentagon.normal, [0.0, 0.0, 1.0]) == 1
True
>>> centertofirst = subtract_vectors(pentagon.points[0], pentagon.centroid)
>>> dot_vectors(centertofirst, [0.0, 1.0, 0.0]) == 1
True