[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