1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/visual/Templates/template.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>options</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<link href="VisualRef.css" rel="stylesheet" type="text/css" />
<!-- InstanceEndEditable -->
<script type="text/javascript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<link href="VisualRef.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="800" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutDefaultTable-->
<tr>
<td width="10" valign="top" bgcolor="#FFFFFF"><!--DWLayoutEmptyCell--> </td>
<td width="10" height="272" valign="top" bgcolor="#DDDDDD"><p> </p> </td>
<td width="173" valign="top" bgcolor="#DDDDDD"><p class="Normal"><a href="index.html">Home</a></p>
<p class="Normal">If you're new to Python <br />
and VPython: <a href="VisualIntro.html">Introduction</a></p>
<p class="Normal">A VPython <a href="VPython_Intro.pdf" target="_blank">tutorial</a></p>
<p class="Normal"><a href="primitives.html">Pictures</a> of 3D objects</p>
<p class="Normal">Choose a 3D object:</p>
<select name="jumpMenu4" id="jumpMenu4" onchange="MM_jumpMenu('parent',this,0)">
<option>Choose an object</option>
<option value="cylinder.html">Overview</option>
<option value="arrow.html">arrow</option>
<option value="box.html">box</option>
<option value="cone.html">cone</option>
<option value="convex.html">convex</option>
<option value="curve.html">curve</option>
<option value="cylinder.html">cylinder</option>
<option value="ellipsoid.html">ellipsoid</option>
<option value="faces.html">faces</option>
<option value="frame.html">frame</option>
<option value="helix.html">helix</option>
<option value="label.html">label</option>
<option value="lights.html">lights</option>
<option value="points.html">points</option>
<option value="pyramid.html">pyramid</option>
<option value="ring.html">ring</option>
<option value="sphere.html">sphere</option>
</select>
<p class="Normal">Work with 3D objects:</p>
<select name="jumpMenu4" id="jumpMenu5" onchange="MM_jumpMenu('parent',this,0)">
<option>Choose an option</option>
<option value="color.html">Color & Opacity</option>
<option value="lights.html">Lighting</option>
<option value="materials.html">Materials & Textures</option>
<option value="defaults.html">Defaults</option>
<option value="rate.html">Animation Speed</option>
<option value="rotation.html">Rotations</option>
<option value="options.html">Additional Options</option>
<option value="delete.html">Delete an Object</option>
<option value="float.html">3/4 = 0?</option>
</select>
<p class="Normal">Windows, Events, & Files:</p>
<select name="jumpMenu4" id="jumpMenu6" onchange="MM_jumpMenu('parent',this,0)">
<option>Choose a topic</option>
<option value="display.html">Windows</option>
<option value="lights.html">Lighting</option>
<option value="mouse.html">Mouse Events</option>
<option value="mouse_click.html"> Mouse Click</option>
<option value="mouse_drag.html"> Mouse Drag</option>
<option value="keyboard.html">Keyboard Events</option>
<option value="controls.html">Buttons and Sliders</option>
<option value="files.html">Reading/Writing Files</option>
</select>
<p class="Normal"><a href="vector.html">Vector operations </a></p>
<p class="Normal"><a href="graph.html">Graphs</a></p>
<p class="Normal"><a href="factorial.html">factorial/combin</a></p>
<p class="Normal">What's new in <a href="new_features.html">Visual 5</a></p>
<p class="Normal"><a href="http://vpython.org" target="_blank">VPython web site</a><br />
<a href="license.txt" target="_blank">Visual license</a><br />
<a href="http://www.python.org" target="_blank">Python web site</a> <br />
<a href="http://www.python.org/doc/2.5.2/lib/module-math.html" target="_blank">Math module</a> (sqrt etc.)<br />
<a href="http://www.scipy.org/Documentation" target="_blank">Numpy module</a> (arrays) </p></td>
<td width="21" valign="top" bgcolor="#FFFFFF"><!--DWLayoutEmptyCell--> </td>
<td width="586" rowspan="2" valign="top"><!-- InstanceBeginEditable name="content" -->
<div>
<h1 class="Heading-1"> <font color="#0000A0">Additional Attributes</font></h1>
</div>
<div>
<p class="Normal"> The following attributes apply to all VPython objects:</p>
<p class="attributes"> <span class="attribute">visible</span> If False,
object is not displayed; e.g. <span class="attribute">ball.visible = False</span><em class="program"><br />
</em> Use <span class="attribute">ball.visible = True</span> to make the ball
visible again.</p>
<p class="attributes"><span class="attribute">frame</span> Place this object
into a specified frame, as in <span class="attribute">ball = sphere(frame
= f1)</span> </p>
<p class="attributes"> <span class="attribute">display</span> When you start
a VPython program, for convenience Visual creates a display window and names
it <span class="attribute">scene</span>. By default, objects you create go
into that display window. You can choose to put an object in a different display
like this: </p>
<p class="program">scene2 = display( title = "Act IV, Scene 2" ) <br />
rod = cylinder( display = scene2 )</p>
<p class="Normal">Executing <span class="attribute">myscene = </span><font color="#FF0000">display.get_selected()</font> returns
a reference to the display in which objects are currently being
created. Given a specific display named scene2, <span class="attribute">scene2.select()</span><span class="attributes"> makes
scene2 be the "selected display", so that objects
will be drawn into scene2 by default. </span></p>
<p class="Normal">There is a <a href="rotation.html">rotate function</a> for
all objects other than curve, convex, faces, and points (which can
be put into a frame and the frame rotated).</p>
<p class="attributes"><span class="attribute">__class__</span> Name of the class
of object. For example, <span class="attribute">ball.__class__ is sphere</span> is true if <span class="attribute">ball</span> is a sphere object. There are
two underscores before and after the word <span class="attribute">class</span>.
In a list of visible objects provided by <a href="display.html">scene.objects</a>,
if <span class="attribute">obj</span> is in this list you can determine the
class of the object with <span class="attribute">obj.__class__</span>. <span class="Normal">You can check for a specific kind of object by using a standard Python function: isinstance(obj, sphere) is true if "obj" is a sphere object.</span></p>
<p class="attributes"><span class="attribute">__copy__</span><span class="attribute">()</span> Makes
a copy of an object. There are two underscores before and after <span class="attribute">copy</span>.
Without any arguments, this results in creating a second object in
the exact same position as the first, which is probably not what you
want. The <font color="#FF0000">__copy__()</font> function takes a
list of keyword=value argument pairs which are applied to the new
object before making it visible. For example, to clone an object from
one display to another, you would execute: <font color="#FF0000">new_object
= old_object.__copy__( display=new_display)</font>. Restriction:
If the original object is within a frame, and the new object is
on a different display, you must supply both a new display and a
new frame for the new object (the new frame may be None). This is
due to the restriction that an object may not be located within
a frame that is in a separate display.</p>
<p class="Normal">Here is an example that uses the <span class="attribute">__copy__()</span> function.
The following routine copies all of the Visual objects currently existing
in one display into a previously defined second display, as long as
there are no nested frames (frames within frames):</p>
<p class="program">def clone_universe( new_display, old_display):<br />
# Create a dictionary of frames in old display to <br />
# the corresponding frames in the new display.<br />
frames = {} # create empty dictionary <br />
for obj in old_display.objects:<br />
if obj.__class__ == frame:<br />
frames[obj] = obj.__copy__( frame=None, <br />
display=new_display)<br />
# For each old frame within another reference frame,<br />
# place the new frame in appropriate frame in new<br />
# display. Here old is an object and new is its<br />
# frame in the new display.<br />
for old, new in frames.iteritems():<br />
if old.frame:<br />
new.frame = frames[old.frame]<br />
# Copy over the universe.<br />
for obj in old_display.objects:<br />
if obj.__class__ == frame:<br />
# Already taken care of above.<br />
pass<br />
elif obj.frame:<br />
#
Initialize with the corresponding frame<br />
# in the new display:<br />
obj.__copy__( display=new_display, <br />
frame=frames[obj.frame])<br />
else:<br />
#
No frame issue;<br />
obj.__copy__( display=new_display)</p>
<p class="Normal">See <a href="display.html">Controlling One or More Visual
Display Windows</a> for more information on creating and manipulating display
objects.</p>
<p class="Normal"> </p>
<!-- InstanceEndEditable --></td>
</tr>
<tr>
<td height="16" colspan="4"></td>
</tr>
</table>
</body>
<!-- InstanceEnd --></html>
|