Previous: Graphical analysis of discrete dynamical systems, Up: dynamics [Contents][Index]
Function scene creates 3D images and animations using the Visualization ToolKit (VTK) software. In order to use that function, Xmaxima and VTK should be installed in your system (including the TCL bindings of VTK, which in some system might come in a separate package).
Accepts an empty list or a list of several objects
and options
. The program launches Xmaxima, which
opens an external window representing the given objects in a
3-dimensional space and applying the options given. Each object must
belong to one of the following 4 classes: sphere, cube, cylinder or cone
(see Scene objects
). Objects are identified by
giving their name or by a list in which the first element is the class
name and the following elements are options for that object.
Example. A hexagonal pyramid with a blue background:
(%i1) scene(cone, [background,"#9980e5"])$
By holding down the left button of the mouse while it is moved on the
graphics window, the camera can be rotated showing different views of
the pyramid. The two plot options elevation
and
azimuth
can also be used to change the initial
orientation of the viewing camera. The camera can be moved by holding
the middle mouse button while moving it and holding the right-side mouse
button while moving it up or down will zoom in or out.
Each object option should be a list starting with the option name,
followed by its value. The list of allowed options can be found in the
Scene object's options
section.
Example. This will show a sphere falling to the ground and bouncing off without losing any energy. To start or pause the animation, press the play/pause button.
(%i1) p: makelist ([0,0,2.1- 9.8*t^2/2], t, 0, 0.64, 0.01)$ (%i2) p: append (p, reverse(p))$ (%i3) ball: [sphere, [radius,0.1], [thetaresolution,20], [phiresolution,20], [position,0,0,2.1], [color,red], [animate,position,p]]$ (%i4) ground: [cube, [xlength,2], [ylength,2], [zlength,0.2], [position,0,0,-0.1],[color,violet]]$ (%i5) scene (ball, ground, restart)$
The restart option was used to make the animation restart
automatically every time the last point in the position list is reached.
The accepted values for the colors are the same as for the color
option of plot2d.
Default value: 135
The rotation of the camera on the horizontal (x, y) plane. angle must be a real number; an angle of 0 means that the camera points in the direction of the y axis and the x axis will appear on the right.
Default value: black
The color of the graphics window’s background. It accepts color names or
hexadecimal red-green-blue strings (see the color
option of plot2d).
Default value: 30
The vertical rotation of the camera. The angle must be a real number; an angle of 0 means that the camera points on the horizontal, and the default angle of 30 means that the camera is pointing 30 degrees down from the horizontal.
Default value: 500
The height, in pixels, of the graphics window. pixels must be a positive integer number.
Default value: false
A true value means that animations will restart automatically when the end of the list is reached. Writing just “restart” is equivalent to [restart, true].
Default value: 10
The amount of time, in mili-seconds, between iterations among consecutive animation frames. time must be a real number.
Default value: 500
The width, in pixels, of the graphics window. pixels must be a positive integer number.
Default value: .scene
name must be a string that can be used as the name of the Tk
window created by Xmaxima for the scene
graphics. The default
value .scene
implies that a new top level window will be created.
Default value: Xmaxima: scene
name must be a string that will be written in the title of the
window created by scene
.
Creates a regular pyramid with height equal to 1 and a hexagonal base
with vertices 0.5 units away from the axis. Options
height
and radius
can be used
to change those defaults and option resolution
can be used to change the number of edges of the base; higher values
will make it look like a cone. By default, the axis will be along the x
axis, the middle point of the axis will be at the origin and the vertex
on the positive side of the x axis; use options
orientation
and center
to
change those defaults.
Example. This shows a pyramid that starts rotating around the z axis when the play button is pressed.
(%i1) scene([cone, [orientation,0,30,0], [tstep,100], [animate,orientation,makelist([0,30,i],i,5,360,5)]], restart)$
A cube with edges of 1 unit and faces parallel to the xy, xz and yz
planes. The lengths of the three edges can be changed with options
xlength
, ylength
and
zlength
, turning it into a rectangular box and
the faces can be rotated with option orientation
.
Creates a regular prism with height equal to 1 and a hexagonal base with
vertices 0.5 units away from the axis. Options
height
and radius
can be
used to change those defaults and option resolution
can be used to change the number of edges of the base;
higher values will make it look like a cylinder. The default height can
be changed with the option height
. By default,
the axis will be along the x axis and the middle point of the axis will
be at the origin; use options orientation
and
center
to change those defaults.
A sphere with default radius of 0.5 units and center at the origin.
property should be one of the following 4 object’s properties:
origin
, scale
,
position
or
orientation
and positions should be a
list of points. When the play button is pressed, the object property
will be changed sequentially through all the values in the list, at
intervals of time given by the option tstep
. The
rewind button can be used to point at the start of the sequence making
the animation restart after the play button is pressed again.
See also track
.
Default value: 1
In a cone or a cylinder, it defines whether the base (or bases) will be shown. A value of 1 for number makes the base visible and a value of 0 makes it invisible.
Default value: [0, 0, 0]
The coordinates of the object’s geometric center, with respect to its
position
. point can be a list with 3
real numbers, or 3 real numbers separated by commas. In a cylinder, cone
or cube it will be at half its height and in a sphere at its center.
Default value: white
The color of the object. It accepts color names or hexadecimal
red-green-blue strings (see the color
option of plot2d).
Default value: 180
In a sphere phi is the angle on the vertical plane that passes through the z axis, measured from the positive part of the z axis. angle must be a number between 0 and 180 that sets the final value of phi at which the surface will end. A value smaller than 180 will eliminate a part of the sphere’s surface.
See also startphi
and
phiresolution
.
Default value: 360
In a sphere theta is the angle on the horizontal plane (longitude), measured from the positive part of the x axis. angle must be a number between 0 and 360 that sets the final value of theta at which the surface will end. A value smaller than 360 will eliminate a part of the sphere’s surface.
See also starttheta
and
thetaresolution
.
Default value: 1
value must be a positive number which sets the height of a cone or a cylinder.
Default value: 1
The width of the lines, when option wireframe
is
used. value must be a positive number.
Default value: 1
value must be a number between 0 and 1. The lower the number, the more transparent the object will become. The default value of 1 means a completely opaque object.
Default value: [0, 0, 0]
Three angles by which the object will be rotated with respect to the
three axis. angles can be a list with 3 real numbers, or 3 real
numbers separated by commas. Example: [0, 0, 90]
rotates
the x axis of the object to the y axis of the reference frame.
Default value: [0, 0, 0]
The coordinates of the object’s origin, with respect to which its other dimensions are defined. point can be a list with 3 real numbers, or 3 real numbers separated by commas.
Default value:
The number of sub-intervals into which the phi angle interval from
startphi
to endphi
will be divided. num must be a positive integer.
Only the vertices of the triangulation used to render the surface will
be shown. Example: [sphere, [points]]
See also surface
and
wireframe
.
Default value: 1
The size of the points, when option points
is
used. value must be a positive number.
Default value: [0, 0, 0]
The coordinates of the object’s position. point can be a list with 3 real numbers, or 3 real numbers separated by commas.
Default value: 0.5
The radius or a sphere or the distance from the axis to the base’s vertices in a cylinder or a cone. value must be a positive number.
Default value: 6
number must be an integer greater than 2 that sets the number of edges in the base of a cone or a cylinder.
Default value: [1, 1, 1]
Three numbers by which the object will be scaled with respect to the
three axis. factors can be a list with 3 real numbers, or 3 real
numbers separated by commas. Example: [2, 0.5, 1]
enlarges the object to twice its size in the x direction, reduces the
dimensions in the y direction to half and leaves the z dimensions
unchanged.
Default value: 0
In a sphere phi is the angle on the vertical plane that passes through the z axis, measured from the positive part of the z axis. angle must be a number between 0 and 180 that sets the initial value of phi at which the surface will start. A value bigger than 0 will eliminate a part of the sphere’s surface.
See also endphi
and
phiresolution
.
Default value: 0
In a sphere theta is the angle on the horizontal plane (longitude), measured from the positive part of the x axis. angle must be a number between 0 and 360 that sets the initial value of theta at which the surface will start. A value bigger than 0 will eliminate a part of the sphere’s surface.
See also endtheta
and
thetaresolution
.
The surfaces of the object will be rendered and the lines and points of
the triangulation used to build the surface will not be shown. This is
the default behavior, which can be changed using either the option
points
or wireframe
.
Default value:
The number of sub-intervals into which the theta angle interval from
starttheta
to endtheta
will be divided. num must be a positive integer.
See also starttheta
and
endtheta
.
positions should be a list of points. When the play button is
pressed, the object position will be changed sequentially through all
the points in the list, at intervals of time given by the option
tstep
, leaving behind a track of the object’s
trajectory. The rewind button can be used to point at the start of the
sequence making the animation restart after the play button is pressed
again.
Example. This will show the trajectory of a ball thrown with speed of 5 m/s, at an angle of 45 degrees, when the air resistance can be neglected:
(%i1) p: makelist ([0,4*t,4*t- 9.8*t^2/2], t, 0, 0.82, 0.01)$ (%i2) ball: [sphere, [radius,0.1], [color,red], [track,p]]$ (%i3) ground: [cube, [xlength,2], [ylength,4], [zlength,0.2], [position,0,1.5,-0.2],[color,green]]$ (%i4) scene (ball, ground)$
See also animation
.
Default value: 1
The height of a cube in the x direction. length must be a positive
number. See also ylength
and
zlength
.
Default value: 1
The height of a cube in the y direction. length must be a positive
number. See also xlength
and
zlength
.
Default value: 1
The height of a cube in z the direction. length must be a positive
number. See also xlength
and
ylength
.
Only the edges of the triangulation used to render the surface will be
shown. Example: [cube, [wireframe]]
Previous: Graphical analysis of discrete dynamical systems, Up: dynamics [Contents][Index]