 plottools - Maple Programming Help

Home : Support : Online Help : Graphics : Packages : Plot Tools : plottools/polygonbyname

plottools

 polygonbyname
 create plot structures for regular polygons

 Calling Sequence polygonbyname( shape ) polygonbyname( shape, inbox=[width, height], opts ) polygonbyname( shape, radius=r, opts)

Parameters

 shape - a string describing a regular polygon or a number of sides width, height - real numbers specifying the width and height of an inscribed rectangle r - a real number specifying the radius of an inscribed circle opts - (optional) a sequence of equations of the form option=value

Options

 • center=list : the coordinates of the center of the polygon [0,0] by default
 • irregular=truefalse or a positive value : (false by default) randomly perturb the vertices of the shape to make it irregular. irregular=true is equivalent to irregular=0.1.  A numeric value for irregular specifies the factor of the length of the side by which points may be perturbed.
 • rotation=realcons with or without units : a counterclockwise rotation angle. If no units are included, radians are assumed.
 • star=truefalse or a real number : (false by default) draw a star version of the polygon, optionally specifying how long the points should be
 • rounded=truefalse or a number between 0 and 1 : (false by default) rounds the corners of a convex shape with corners having radius the given fraction of the size of the shape, defaults to 1/5 when rounded=true
 • wide = truefalse : if true and the size of the polygon is given by an inscribed rectangle, scale the polygon vertically as little as possible so that the sides of its bounding box have the same ratio as the sides of inbox.
 • bbox=list : the length and width of a centered bounding box into which the shape should fit completely, if it does not fit, it will be scaled to fit exactly. Checking for fit and scaling is done before any rotation is applied.
 • Any applicable 2-D plot option in plot/options can also be given.

Description

 • This command draws a polygon given by number of sides or the name of a shape.
 • The size of the polygon can be given by either the dimensions of a rectangle with the same center that must fit inside the polygon or by the radius of an inscribed circle. If both inbox and radius are given then the one specifying the larger polygon will be used. If neither are given, a unit golden rectangle will be used for inbox.
 • The following shapes will be drawn smaller than an inscribed circle to better fit the inscribed rectangle: "rectangle", "ellipse", and other regular axis-aligned four sided shapes.
 • All other shapes will be drawn to fit around the circumscribed circle of the inbox rectangle.  The wide and irregular options may result in shapes that do not quite enclose the inbox rectangle, but will usually be close.
 • If a shape must be made to fit exactly in a space, the bbox option can be used to give the dimensions of a bounding box for the shape.

Shape Names

 • A polygon can be specified as "ngon" where n is a positive integer
 • Special shapes include circle, semicircle, ellipse, rectangle, stadium, halfstadium, indentstadium, superellipse, and supercircle. The star, rounded, irregular, and wide options will not work with these shapes.
 • More general superellipses can be specified as n-superellipse and [m,n]-superellipse.  See plottools[ellipse] for details.
 • The following special quadrilaterals are also understood: rectangle, square, parallelogram, trapezoid, trapezium, diamond, kite, invkite, dart, and rhombus. The star, and irregular options will not work with these shapes.
 • For convenience, the base string star will be converted to 5gram and n star converted to n gram.
 • Most Greek-style names for regular polygon are supported. Shapes are all drawn with a bottom edge parallel with the x-axis.
 • Shape names can be prefixed with star, inverted (or inv for short), rounded and wide to modify the shape without using the option. The inverted modifier is a rotation, depending on the number of sides of the polygon, which will orient the polygon so that a corner is at the top.
 • The rounded modifier does not work with non-convex shapes or already rounded shapes and will be ignored for polygons with more than 20 sides. If a rounded polygon is specified with the rounded=number then the number will be taken as a multiplier of the size of the polygon to use as the radius of the rounded corners.  The default multiplier is 0.2.
 • Regular polygons with rounded sides called Reuleaux polygons are also supported. Reuleaux polygons cannot be modified with rounded, star, or irregular options.
 • Regular star polygons are drawn with points at the length that makes the edges on either side of any point lie on the same line. If a star polygon is specified with the star=number option, the number is used as a multiplier of the length of the side of a regular star polygon.

Examples

 > $\mathrm{with}\left(\mathrm{plots}\right):$
 > $\mathrm{with}\left(\mathrm{plottools}\right):$
 > $\mathrm{setoptions}\left(\mathrm{axes}="none",\mathrm{scaling}=\mathrm{constrained},\mathrm{size}=\left[300,300\right]\right)$
 > $\mathrm{display}\left(\mathrm{polygonbyname}\left("rectangle",\mathrm{inbox}=\left[16,9\right],\mathrm{color}="Red"\right)\right)$ > $\mathrm{inscribedBox}≔\mathrm{display}\left(\mathrm{polygonbyname}\left("rectangle",\mathrm{color}="Red",\mathrm{style}=\mathrm{line}\right)\right)$ > $\mathrm{inscribedCircle}≔\mathrm{display}\left(\mathrm{polygonbyname}\left("circle",\mathrm{color}="Blue",\mathrm{style}=\mathrm{line}\right)\right)$ > $\mathrm{display}\left(\mathrm{inscribedBox},\mathrm{inscribedCircle},\mathrm{polygonbyname}\left("octagon",\mathrm{color}="Linen"\right)\right)$ > $\mathrm{display}\left(\mathrm{inscribedBox},\mathrm{inscribedCircle},\mathrm{polygonbyname}\left("hexagon",\mathrm{color}="Linen",\mathrm{rounded}\right)\right)$ > $\mathrm{display}\left(\mathrm{inscribedBox},\mathrm{inscribedCircle},\mathrm{polygonbyname}\left("hexagon",\mathrm{color}="Linen",\mathrm{rounded}=0.05\right)\right)$ > $\mathrm{display}\left(\mathrm{inscribedBox},\mathrm{inscribedCircle},\mathrm{polygonbyname}\left(13,\mathrm{star},\mathrm{color}="Linen"\right)\right)$ > $\mathrm{display}\left(\mathrm{inscribedBox},\mathrm{polygonbyname}\left("7gon",\mathrm{wide},\mathrm{color}="Linen"\right)\right)$ > $\mathrm{display}\left(\mathrm{polygonbyname}\left("invtriangle",\mathrm{center}=\left[-3,0\right]\right),\mathrm{polygonbyname}\left("triangle",\mathrm{center}=\left[0,0\right]\right),\mathrm{polygonbyname}\left("triangle",\mathrm{center}=\left[3,0\right],\mathrm{rotation}=-90\mathrm{Unit}\left(\mathrm{degrees}\right)\right),\mathrm{size}=\left[600,200\right],\mathrm{style}=\mathrm{line},\mathrm{linestyle}="dash"\right)$ Many Greek names are supported, this shape has 98 sides

 > $\mathrm{display}\left(\mathrm{polygonbyname}\left("enneacontaoctagon",\mathrm{radius}=2\right),\mathrm{axes}=\mathrm{box}\right)$ it looks a lot like a circle

 > $\mathrm{display}\left(\mathrm{polygonbyname}\left("enneacontaoctagon",\mathrm{star}=100,\mathrm{radius}=2,\mathrm{style}=\mathrm{line}\right),\mathrm{axes}=\mathrm{box}\right)$ star can be also used as a shape name for 5 points by default or a number to specify the number of points

 > $\mathrm{display}\left(\mathrm{polygonbyname}\left("star"\right),\mathrm{axes}=\mathrm{box}\right)$ > $\mathrm{display}\left(\mathrm{polygonbyname}\left("irregular wide 6-star"\right),\mathrm{axes}=\mathrm{box}\right)$ > 

Compatibility

 • The plottools[polygonbyname] command was introduced in Maple 2019.