[Tutor] Vpython

Aztech Guy aztech1200 at yahoo.com
Sun Dec 19 16:52:37 CET 2004


Hey, that's pretty good. Tried it out. VPython is cool
too.

--- "Jacob S." <keridee at jayco.net> wrote:

> > > I was wondering were can I find some Vpython
> graphics program codes that
> are readily available.
> 
> I have 2 that I am proud of.
> 
> A simple function grapher
> Usage:
> >0.125*x**2
> 
> Graphs y = 1/8*x**2
> 
> >y = 1/x
> 
> Graphs y = 1/x
> 
> >clear
> 
> Clears display window
> 
> >r = t**2
> 
> Graphs polar function r = t**2
> 
> >remove lines
> 
> Removes all axes, including polar axes, should a
> polar function be graphed
> after
> 
> >return lines
> 
> Returns all lines, so that they appear when
> appropriate.
> 
> >x = sin(x**2)+log(x**2)
> 
> Graphs the function...
> 
> 
>
------------------------------------------------------
> 
> from __future__ import division
> from visual import *
> import os
> from math import *
> ja = 0
> 
> def start():
>     for objects in scene.objects:
>         objects.visible = 0
>     scene.title = "Function Grapher by Jacob, Inc."
>     tem = raw_input('Are you on a desktop, or a
> notebook? ')
>     if tem == 'desktop':
>         scene.x = 365
>     if tem == 'notebook':
>         scene.x = 574
>     scene.visible=1
>     scene.exit=0
>     scene.userspin = 0
>     scene.range=(10,10,1)
>     scene.background=(1,1,1)
>     global xaxis
>     global yaxis
>     xaxis = curve(color=color.black)
>     xaxis.append(pos=(100,0,0))
>     xaxis.append(pos=(-100,0,0))
>     yaxis = curve(color=color.black)
>     yaxis.append(pos=(0,100,0))
>     yaxis.append(pos=(0,-100,0))
>     global radiusaxis
>     global radiusaxis2
>     radiusaxis =
> curve(pos=[(-100,-100),(100,100)],color=color.black)
>     radiusaxis2 =
> curve(pos=[(-100,100),(100,-100)],color=color.black)
>     radiusaxis.visible = 0
>     radiusaxis2.visible = 0
> 
> start()
> y = 3
> m = 0
> t = 0
> d = 1
> print """\
> List of Commands:
> clear
> quit
> remove lines
> return lines
> 
> Function Syntax:
> var = funct a,b
> where var = what
> and funct = f(what)
> and a,b = range
> """
> 
> print 'Please type in functions in below. '
> while y != "":
>     lists=[]
>     y = raw_input('>')
>     if y == 'clear':
>         scene.visible=0
>         start()
>         print "-"*36
>         continue
>     elif y == 'quit':
>         scene.visible = 0
>         del scene
>         break
>     elif y == 'remove lines':
>         a = [radiusaxis,radiusaxis2,xaxis,yaxis]
>         for x in a:
>             x.visible = 0
>         d = 0
>         continue
>     elif y == 'return lines':
>         a = [radiusaxis,radiusaxis2,xaxis,yaxis]
>         for x in a:
>             x.visible = 1
>         d = 1
>         continue
>     if y.count('=') == 1:
>         y = y.split(' = ')
>         type = y[0].lower()
>         y = y[1]
>         y = y.replace("y","x")
>         if type == 'r':
>             y = y.replace('x','t')
>             if d == 1:
>                 radiusaxis.visible = 1
>                 radiusaxis2.visible = 1
>     else:
>         type = 'y'
>     y = y.split(" ")
>     if len(y) > 1:
>         pass
>     else:
>         if type == 'r':
>             y.append('0,5*pi')
>         else:
>             y.append('-10,10')
>     range = y[1]
>     y = y[0]
>     range = range.split(",")
>     min = float(eval(range[0]))
>     max = float(eval(range[1]))
>     lists.append(curve(color=(1,0,1)))
>     x = min
>     if type == 'y' or type == 'x':
>         radiusaxis.visible = 0
>         radiusaxis2.visible = 0
>         while x >= min and x <= max:
>             x = x+0.005
>             try:
>                 if eval(y) <= 15 and eval(y) >= -15:
>                     if type == 'y':
>                        
> lists[-1].append(pos=(x,eval(y),0))
>                     elif type == 'x':
>                        
> lists[-1].append(pos=(eval(y),x,0))
>                 else:
>                    
> lists.append(curve(color=(1,0,1)))
>             except:
>                 pass
>     elif type == 'r':
>         m = 'eval(y)*cos(t)'
>         n = 'eval(y)*sin(t)'
>         t = min
>         while t >= min and t <= max:
>             try:
>                
> lists[-1].append(pos=(eval(m),eval(n),0))
>             except:
>                 lists.append(curve(color=(1,0,1)))
>             t = t+0.005
> 
> 
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
> 



		
__________________________________ 
Do you Yahoo!? 
Send holiday email and support a worthy cause. Do good. 
http://celebrity.mail.yahoo.com


More information about the Tutor mailing list