VPython 3D Objects: Difference between revisions

From Physics Book
Jump to navigation Jump to search
No edit summary
No edit summary
Line 37: Line 37:


[http://www.glowscript.org/docs/VPythonDocs/helix.html Helix]
[http://www.glowscript.org/docs/VPythonDocs/helix.html Helix]
[[File:LightGreenHelix.png|thumb|none|alt=Yellow Arrow|The example helix]]
[[File:GoldHelix.png|thumb|none|alt=Yellow Arrow|The example helix]]
 


[http://www.glowscript.org/docs/VPythonDocs/label.html Label]
[http://www.glowscript.org/docs/VPythonDocs/label.html Label]
[[File:WhiteLabel.png|thumb|none|alt=Yellow Arrow|The example label]]


[http://www.glowscript.org/docs/VPythonDocs/points.html Points]
[http://www.glowscript.org/docs/VPythonDocs/points.html Points]
[[File:IvoryPoints.png|thumb|none|alt=Yellow Arrow|The example points]]


[http://www.glowscript.org/docs/VPythonDocs/pyramid.html Pyramid]
[http://www.glowscript.org/docs/VPythonDocs/pyramid.html Pyramid]
[[File:BrownPyramid.png|thumb|none|alt=Yellow Arrow|The example pyramid]]


[http://www.glowscript.org/docs/VPythonDocs/ring.html Ring]
[http://www.glowscript.org/docs/VPythonDocs/ring.html Ring]
[[File:AquaMarineRing.png|thumb|none|alt=Yellow Arrow|The example ring]]


[http://www.glowscript.org/docs/VPythonDocs/sphere.html Sphere]
[http://www.glowscript.org/docs/VPythonDocs/sphere.html Sphere]
[[File:LightGreenSphere.png|thumb|none|alt=Yellow Arrow|The example sphere]]


[http://www.glowscript.org/docs/VPythonDocs/text.html Text]
[http://www.glowscript.org/docs/VPythonDocs/text.html Text]
[[File:KhakiText.png|thumb|none|alt=Yellow Arrow|The example text]]


===Example Code of Each Objects ===
===Example Code of Each Objects ===
Line 82: Line 87:


Helix
Helix
  h = helix(pos=vector(0,2,1), axis=vector(5,0,0), radius=0.5, color=(0.5,1,0))
  h = helix(pos=vector(0,2,1), axis=vector(5,0,0), radius=0.5, color=(0.96,0.73,0.14))


Label
Label
l = label(pos=vector(0,0.25,0), text='This is a Label', xoffset=20, yoffset=50, space=30, height=16, border=4,font='sans')


Points
Points
p = points(pos=[vector(-1,0,0), vector(1,0,0)], radius=50, color=(1,1,.94))


Pyramid
Pyramid
p = pyramid(pos=vector(5,2,0), size=vector(3,3,2), color=(0.82, 0.41, 0.12))


Ring
Ring
r = ring(pos=vector(1,1,1), axis=vector(0,1,0),radius=0.5, thickness=0.1, color=(0.14, 1, 0.83))


Sphere
Sphere
s = s = sphere(pos=vector(1,1,1), radius=5, color=(0.5, 1, 0.5))


Text
Text
t = text(text='This is \ntext', #use \n for changing line
    align='center', color=(0.94, 0.90, 0.55))





Revision as of 22:41, 28 November 2017

Claimed by Do Won Kim (Fall 2017) (In Progress)

The main purpose of the VPython programming language is to create 3D simulation with creating the 3D objects. To achieve this purpose, VPython already contains a number of built-in 3-dimensional objects, and these objects are displayed in a 3D graphics module called Visual. Familiarizing with these objects is important for lab coding.

Before start coding, make sure to have

from __future__ import division
from visual import *

on the top of your script.

This document is written based on VPython 7.

List of 3D Objects

Image of Each Objects

VPython is packaged with a variety of 3-Dimensional objects. By clicking each names of the objects, you can go to the official description of each objects from Glowscript.

Arrow

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example arrow

Box

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example box

Cone

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example cone

Curve

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example curve

Cylinder

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example cylinder

Ellipsoid

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example ellipsoid

Extrusion

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example extrusion

Helix

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example helix

Label

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example label

Points

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example points

Pyramid

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example pyramid

Ring

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example ring

Sphere

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example sphere

Text

Error creating thumbnail: sh: /usr/bin/convert: No such file or directory Error code: 127
The example text

Example Code of Each Objects

Arrow

a = arrow(pos=(0,2,1),axis=(5,0,0), color = color.red)

Box

b = box(pos=(0,0,0),length=3, height=3, width=3, color = color.orange)

Cone

c = cone(pos=(0,0,0),axis=vector(2,0,0), radius=1, color = color.yellow)

Curve

c = curve(pos=[(-1,-1,0), (1,-1,0)], color = color.green) #create object
c.append(pos=(3,2,-2)) #append next position vector
c.append(pos=(4,1,2))

Cylinder

c = cylinder(pos=vector(0,2,1), axis=vector(5,0,0), radius=1, color=color.cyan)

Ellipsoid

e = ellipsoid(pos=vector(0,0,0), length=3, height=5, width=7, color=color.blue)

Extrusion

#define polygons first
tri = Polygon( [(-2,0), (0,4), (2,0)] )
circ = shapes.circle(pos=(0,1.5), radius=0.8)
straight = [(0,0,0),(0,0,-4)]
#create extrusion
e = extrusion(pos=straight, shape=tri-circ, color=color.magenta)

Helix

h = helix(pos=vector(0,2,1), axis=vector(5,0,0), radius=0.5, color=(0.96,0.73,0.14))

Label

l = label(pos=vector(0,0.25,0), text='This is a Label', xoffset=20, yoffset=50, space=30, height=16, border=4,font='sans')

Points

p = points(pos=[vector(-1,0,0), vector(1,0,0)], radius=50, color=(1,1,.94))

Pyramid

p = pyramid(pos=vector(5,2,0), size=vector(3,3,2), color=(0.82, 0.41, 0.12))

Ring

r = ring(pos=vector(1,1,1), axis=vector(0,1,0),radius=0.5, thickness=0.1, color=(0.14, 1, 0.83))

Sphere

s = s = sphere(pos=vector(1,1,1), radius=5, color=(0.5, 1, 0.5))

Text

t = text(text='This is \ntext', #use \n for changing line
    align='center', color=(0.94, 0.90, 0.55))


Commonly Used Objects

The following objects are often used in class lab.

Sphere

The sphere object can be used to represent a wide variety of things, but perhaps the most important for use in Physics 2 is point charges and protons/electrons. Two things must be set; the position, a vector; and the radius, a numerical value.

Arrow

The arrow is perhaps the most important object for Physics 2. It can be used to represent Electric and magnetic fields as well as visualizing vectors. To create an arrow the position (a vector), axis (a vector), and the shaftwidth (a numerical value) must be set.

Object Uses

Examples of Simple Objects

sphere1 = sphere(pos=vector(4,8,15), radius=16)
arrow1 = arrow(pos=vector(4,8,15), axis=vector(16,23,42)
helix1 = helix(pos=vector(4,8,15), axis=vector(16,23,42) radius=.23)

Modeling Fields

from visual import *
mzofp = 1e-7
oofpez = 9e9
qe = 1.6e-19
proton = sphere(pos=vector(3e-10,0,0), radius=1e-11, color=color.red)
velocity = vector(-5.2e4,0,0) #The proton's velocity
r_obs = vector(0,8e-11,0) #The observation location
deltat = 1e-19 #Timestep
while proton.x < 5e-10:
r = r_obs - proton.pos
rhat = r/mag(r)
Efield = oofpez*qe*rhat/(mag(r)**2)
Bfield = mzofp*qe*cross(velocity,that)/(mag(r)**2)

See also

  1. VPython Basics
  2. VPython
  3. VPython Animation
  4. VPython Objects

Further reading

  1. 3D object details
  2. VPython Information

References

http://www.glowscript.org/docs/VPythonDocs/primitives.html http://vpython.org/contents/docs/shapes.html