[Tutor] Vpython

Juan Shen orion_val at 163.com
Mon Dec 20 02:59:53 CET 2004


If you need to plot many math pictures, try SciPy
    http://www.scipy.org/
I have galanced VPython's website and tutorial.  It seems it handles 
3D-Plotting even better.
    Juan

Aztech Guy wrote:

>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
>_______________________________________________
>Tutor maillist  -  Tutor at python.org
>http://mail.python.org/mailman/listinfo/tutor
>
>
>  
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20041220/334a1c0a/attachment.html


More information about the Tutor mailing list