**Numworks: Drawing Simple Shapes with Pyplot**

**Welcome
to a special edition of our blog.**

The goal of today’s blog is provide templates to draw simple shapes such as ellipses, circles, rectangles, squares, equilateral triangles, and 45-45-90 right triangles. Adjust the position, screen size, and colors as you see fit.

The module is used is pyplot.

**Ellipses
and Circles with drawellipse.py**

Draw an ellipse given the length of x and y radii. If x and y are equal, a circle is drawn. The screen is set up to fit the proportion of the 320 x 220 screen. The vertical axis ranges from y = -44 to y = 44 while the horizontal axis ranges from x = -64 to x = 64. The ellipse is centered at (0,0).

Numworks script: https://my.numworks.com/python/ews31415/drawellipse

Script: drawellipse.py

from
math import *

from matplotlib.pyplot import *

print("Draw
an ellipse\nusing pyplot")

a=eval(input("x axis?
"))

b=eval(input("y axis? "))

# set
axis

axis((-64,64,-44,44))

# set
points

tl=[i/128*2*pi for i in range(129)]

xl=[a*cos(i) for
i in tl]

yl=[b*sin(i) for i in tl]

# draw the
ellipse

c='purple'

plot(xl,yl,c)

show()

**Rectangles
and Squares with drawrect.py**

Draw a rectangle given its horizontal length (h) and vertical length (v). If the horizontal and vertical lengths are equal, a square is drawn. The rectangle is centered at (0, 0). The screen is set up to fit the proportion of the 320 x 220 screen. The vertical axis ranges from y = -44 to y = 44 while the horizontal axis ranges from x = -64 to x = 64.

Numworks script: https://my.numworks.com/python/ews31415/drawrect

Script: drawrect.py

from
math import *

from matplotlib.pyplot import *

print("Draw
a rectangle\nusing pyplot")

h=eval(input("horiz.
length? "))

v=eval(input("vert. length? "))

#
set axis

axis((-64,64,-44,44))

# set
points

xl=[-h/2,h/2,h/2,-h/2,-h/2]

yl=[v/2,v/2,-v/2,-v/2,v/2]

#
color

c='green'

# draw rectangle

plot(xl,yl,c)

show()

**Equilateral
Triangles with drawtrieq.py**

Draws an equilateral (60-60-60) triangle. Enter the length of the side (s). The base is set on the x-axis. The screen is set up to fit the proportion of the 320 x 220 screen. The vertical axis ranges from y = -44 to y = 44 while the horizontal axis ranges from x = -64 to x = 64.

Numworks script: https://my.numworks.com/python/ews31415/drawtrieq

Script: drawtrieq.py

from
math import *

from matplotlib.pyplot import *

print("Draw
an equilateral triangle\nusing pyplot")

s=eval(input("side
length? "))

# set axis

axis((-64,64,-44,44))

#
set points

t=s*sqrt(3)/2

xl=[-s/2,s/2,0,-s/2]

yl=[0,0,t,0]

#
draw the triangle

c='brown'

plot(xl,yl,c)

show()

**45-45-90
Degree Right Triangles with drawtrit.py**

Draws an 45-45-90 degree right triangle. Enter the length of the one of the legs (s), not the hypotenuse. The base is set on the x-axis. The screen is set up to fit the proportion of the 320 x 220 screen. The vertical axis ranges from y = -44 to y = 44 while the horizontal axis ranges from x = -64 to x = 64.

Numworks Script: https://my.numworks.com/python/ews31415/drawtrirt

**Script:
drawtrit.py**

from
math import *

from matplotlib.pyplot import *

print("Draw
a 45-45-90 triangle\nusing pyplot")

s=eval(input("short
length? "))

# set axis

axis((-64,64,-44,44))

#
set points

xl=[-s/2,s/2,-s/2,-s/2]

yl=[0,0,s,0]

#
draw the triangle

c='blue'

plot(xl,yl,c)

show()

Enjoy and I hope you find these scripts useful in your drawing scripts.

Eddie

All original content copyright, © 2011-2024. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.