Bases: sage.plot.primitive.GraphicPrimitive_xydata
Primitive class for the Polygon graphics type. For information on actual plotting, please see polygon?, polygon2d?, or polygon3d?
INPUT:
EXAMPLES:
Note this should normally be used indirectly via circle:
sage: from sage.plot.polygon import Polygon
sage: P = Polygon([1,2,3],[2,3,2],{'alpha':.5})
sage: P
Polygon defined by 3 points
sage: P.options()['alpha']
0.500000000000000
sage: P.ydata
[2, 3, 2]
TESTS:
We test creating polygons:
sage: polygon([(0,0), (1,1), (0,1)])
sage: polygon([(0,0,1), (1,1,1), (2,0,1)])
Plots a 2D polygon in 3D, with default height zero.
INPUT:
EXAMPLES:
A pentagon:
sage: polygon([(cos(t), sin(t)) for t in srange(0, 2*pi, 2*pi/5)]).plot3d()
Showing behavior of the optional parameter z:
sage: P = polygon([(0,0), (1,2), (0,1), (-1,2)])
sage: p = P[0]; p
Polygon defined by 4 points
sage: q = p.plot3d()
sage: q.obj_repr(q.testing_render_params())[2]
['v 0 0 0', 'v 1 2 0', 'v 0 1 0', 'v -1 2 0']
sage: r = p.plot3d(z=3)
sage: r.obj_repr(r.testing_render_params())[2]
['v 0 0 3', 'v 1 2 3', 'v 0 1 3', 'v -1 2 3']
sage: s = p.plot3d(z=[0,1,2,3])
sage: s.obj_repr(s.testing_render_params())[2]
['v 0 0 0', 'v 1 2 1', 'v 0 1 2', 'v -1 2 3']
TESTS:
Heights passed as a list should have same length as number of points:
sage: P = polygon([(0,0), (1,2), (0,1), (-1,2)])
sage: p = P[0]
sage: q = p.plot3d(z=[2,-2])
...
ValueError: Incorrect number of heights given
Returns either a 2-dimensional or 3-dimensional polygon depending on value of points.
For information regarding additional arguments, see either polygon2d? or polygon3d?.
EXAMPLES:
sage: polygon([(0,0), (1,1), (0,1)])
sage: polygon([(0,0,1), (1,1,1), (2,0,1)])
Extra options will get passed on to show(), as long as they are valid:
sage: polygon([(0,0), (1,1), (0,1)], axes=False)
sage: polygon([(0,0), (1,1), (0,1)]).show(axes=False) # These are equivalent
Returns a polygon defined by points.
Type polygon.options for a dictionary of the default options for polygons. You can change this to change the defaults for all future polygons. Use polygon.reset() to reset to the default options.
EXAMPLES:
We create a purple-ish polygon:
sage: polygon2d([[1,2], [5,6], [5,0]], rgbcolor=(1,0,1))
Some modern art – a random polygon:
sage: v = [(randrange(-5,5), randrange(-5,5)) for _ in range(10)]
sage: polygon2d(v)
A purple hexagon:
sage: L = [[cos(pi*i/3),sin(pi*i/3)] for i in range(6)]
sage: polygon2d(L, rgbcolor=(1,0,1))
A green deltoid:
sage: L = [[-1+cos(pi*i/100)*(1+cos(pi*i/100)),2*sin(pi*i/100)*(1-cos(pi*i/100))] for i in range(200)]
sage: polygon2d(L, rgbcolor=(1/8,3/4,1/2))
A blue hypotrochoid:
sage: L = [[6*cos(pi*i/100)+5*cos((6/2)*pi*i/100),6*sin(pi*i/100)-5*sin((6/2)*pi*i/100)] for i in range(200)]
sage: polygon2d(L, rgbcolor=(1/8,1/4,1/2))
Another one:
sage: n = 4; h = 5; b = 2
sage: L = [[n*cos(pi*i/100)+h*cos((n/b)*pi*i/100),n*sin(pi*i/100)-h*sin((n/b)*pi*i/100)] for i in range(200)]
sage: polygon2d(L, rgbcolor=(1/8,1/4,3/4))
A purple epicycloid:
sage: m = 9; b = 1
sage: L = [[m*cos(pi*i/100)+b*cos((m/b)*pi*i/100),m*sin(pi*i/100)-b*sin((m/b)*pi*i/100)] for i in range(200)]
sage: polygon2d(L, rgbcolor=(7/8,1/4,3/4))
A brown astroid:
sage: L = [[cos(pi*i/100)^3,sin(pi*i/100)^3] for i in range(200)]
sage: polygon2d(L, rgbcolor=(3/4,1/4,1/4))
And, my favorite, a greenish blob:
sage: L = [[cos(pi*i/100)*(1+cos(pi*i/50)), sin(pi*i/100)*(1+sin(pi*i/50))] for i in range(200)]
sage: polygon2d(L, rgbcolor=(1/8, 3/4, 1/2))
This one is for my wife:
sage: L = [[sin(pi*i/100)+sin(pi*i/50),-(1+cos(pi*i/100)+cos(pi*i/50))] for i in range(-100,100)]
sage: polygon2d(L, rgbcolor=(1,1/4,1/2))
AUTHORS: