Home

If you're new to Python
and VPython: Introduction

A VPython tutorial

Pictures of 3D objects

What's new

Classic VPython web site
VPython license
Python web site

 

Math Functions

For versions of Python prior to 3.0, Python performs integer division with truncation, so that 3/4 is 0, not 0.75. This is inconvenient when doing scientific computations, and can lead to hard-to-find bugs in programs. In the GlowScript environment, where VPython code is compiled to JavaScript, 3/4 is always 0.75.

The following math functions are provided:

abs(x)
sqrt(x)
sin(x)
cos(x)
tan(x)
asin(x)    # arc sine
acos(x)    # arc cosine
atan(x)    # arc tangent
atan2(y,x) # angle whose tangent is y/x
exp(x)     # e to the x
log(x)     # natural log, base e
# log(x)/log(10) gives log base 10
pow(x,y)   # x to the power y
pi         # 3.14159....
ceil(x)    # round up to nearest integer
floor(x)   # round down to nearest integer
round(x)   # round to nearest integer
max(x,y,z) # the largest of x,y,z
min(x,y,z) # the smallest of x,y,z
random()   # pseudorandom number 0 to 1
factorial(x)  # x! = x*(x-1)*(x-2)....(1)
combin(x,y)   # x!/(y!*(x-y)!)
max(a,b,c,..) # maximum of these
min(a,b,c,..) # minimum of these

Many of the quantities above are short forms of the JavaScript functions Math.abs(x), Math.sqrt(x), etc. Here are details of the factorial and combin functions.

There are functions for converting between degrees and radians, where there are 2*pi radians in 360 degrees:

radians(360)  # equal to 2*pi
degrees(2*pi) # equal to 360

See JavaScript documentation on the Date object which provides methods for determining the current day etc.

Here is a way to determine elapsed time in seconds, with microsecond accuracy, using the clock() function that is also available in the standard Python "time" module. The displayed text is approximately 1.5:

t1 = clock()
sleep(1.5)
t2 = clock()
print(t2-t1)

There is also a function msclock() which gives the time in milliseconds instead of seconds.

You can use LaTeX to display mathematical expressions on the page.