2 * El paquete dynamics::
3 * Análisis gráfico de sistemas dinámicos discretos::
4 * Visualización usando VTK::
7 @node El paquete dynamics, Análisis gráfico de sistemas dinámicos discretos, dynamics, dynamics
8 @section El paquete dynamics
10 El paquete adicional @code{dynamics} incluye funciones para
11 visualización 3D, animaciones, análisis gráfico de ecuaciones
12 diferenciales y ecuaciones de diferencias y para resolución numérica de
13 ecuaciones diferenciales. Las funciones para ecuaciones diferenciales se
14 describen en la sección sobre @mref{Métodos numéricos} y las funciones
15 para representar las gráficas de los conjuntos de Mandelbrot y de Julia
16 se describen en la sección sobre @mrefdot{Gráficos}
18 Todas las funciones en este paquete se cargan automáticamente la primera
21 @node Análisis gráfico de sistemas dinámicos discretos, Visualización usando VTK, El paquete dynamics, dynamics
22 @section Análisis gráfico de sistemas dinámicos discretos
25 @deffn {Función} chaosgame ([[@var{x1}, @var{y1}]@dots{}[@var{xm}, @var{ym}]], [@var{x0}, @var{y0}], @var{b}, @var{n}, @var{opciones}, @dots{});
27 Usa el método llamado juego del caos, para producir fractales: se dibuja
28 un punto inicial (@var{x0}, @var{y0}) y luego se elije aleatoriamente
29 uno de los @var{m} puntos @code{[}@var{x1},
30 @var{y1}@code{]}...@code{[}@var{xm}, @var{ym}@code{]}. Después se dibuja
31 un nuevo punto que estará en el segmento entre el último punto dibujado
32 y el punto que se acabó de elegir aleatoriamente, a una distancia del
33 punto elegido que será @var{b} veces la longitud del segmento. El
34 proceso se repite @var{n} veces. Este programa acepta las mismas
35 opciones de @mrefdot{plot2d}
37 @strong{Ejemplo}. Gráfico del triángulo de Sierpinsky:
40 (%i1) chaosgame([[0, 0], [1, 0], [0.5, sqrt(3)/2]], [0.1, 0.1], 1/2,
41 30000, [style, dots]);
51 @deffn {Función} evolution evolution (@var{F}, @var{y0}, @var{n}, @dots{}, @var{opciones}, @dots{});
53 Dibuja @var{n+1} puntos en una gráfica bidimensional (serie de
54 tiempo), en que las coordenadas horizontales de los puntos son los
55 números enteros 0, 1, 2, ..., @var{n}, y las coordenadas verticales
56 son los valores @var{y(n)} correspondientes, obtenidos a partir de la
57 relación de recurrencia
67 Con valor inicial @var{y(0)} igual a @var{y0}. @var{F} deberá ser una
68 expresión que dependa únicamente de la variable @var{y} (y no de @var{n}),
69 @var{y0} deberá ser un número real y @var{n} un número entero positivo.
70 Esta función acepta las mismas opciones que @mrefdot{plot2d}
75 (%i1) evolution(cos(y), 2, 11);
84 @deffn {Función} evolution2d ([@var{F}, @var{G}], [@var{u}, @var{v}], [@var{u0}, @var{y0}], @var{n}, @var{opciones}, @dots{});
86 Muestra, en una gráfica bidimensional, los primeros @var{n+1} puntos de
87 la sucesión definida a partir del sistema dinámico discreto con
88 relaciones de recurrencia:
91 x(n+1) = F(x(n), y(n)) y(n+1) = G(x(n), y(n))
95 $$\cases{x_{n+1} = F(x_n, y_n) &\cr y_{n+1} = G(x_n, y_n)}$$
98 Con valores iniciales @var{x0} y @var{y0}. @var{F} y @var{G} deben ser dos
99 expresiones que dependan únicamente de @var{x} y @var{y}. Esta función
100 acepta las mismas opciones que @mrefdot{plot2d}
102 @strong{Ejemplo}. Evolución de un sistema dinámico discreto en dos
106 (%i1) f: 0.6*x*(1+2*x)+0.8*y*(x-1)-y^2-0.9$
107 (%i2) g: 0.1*x*(1-6*x+4*y)+0.1*y*(1+9*y)-0.4$
108 (%i3) evolution2d([f,g], [x,y], [-0.5,0], 50000, [style,dots]);
115 Y un acercamiento de una pequeña región en ese fractal:
118 (%i9) evolution2d([f,g], [x,y], [-0.5,0], 300000, [x,-0.8,-0.6],
119 [y,-0.4,-0.2], [style, dots]);
129 @deffn {Función} ifs ([@var{r1}, @dots{}, @var{rm}], [@var{A1},@dots{}, @var{Am}], [[@var{x1}, @var{y1}], @dots{}, [@var{xm}, @var{ym}]], [@var{x0}, @var{y0}], @var{n}, @var{opciones}, @dots{});
131 Usa el método del Sistema de Funciones Iteradas (IFS, en inglés
132 Iterated Function System). Ese método es semejante al método descrito
133 en la función @mrefdot{chaosgame} pero en vez de aproximar el último punto
134 al punto elegido aleatoriamente, las dos coordenadas del último punto
135 se multiplican por una matriz 2 por 2 @var{Ai} correspondiente al punto
136 que fue elegido aleatoriamente.
138 La selección aleatoria de uno de los @var{m} puntos atractivos puede
139 ser realizada con una función de probabilidad no uniforme, definida
140 con los pesos @var{r1},...,@var{rm}. Esos pesos deben ser dados en forma
141 acumulada; por ejemplo, si se quieren 3 puntos con probabilidades 0.2, 0.5 y
142 0.3, los pesos @var{r1}, @var{r2} y @var{r3} podrían ser 2, 7 y 10, o
143 cualquier otro grupo de números que tengan la misma proporción. Esta
144 función acepta las mismas opciones que @mrefdot{plot2d}
146 @strong{Ejemplo}. El helecho de Barnsley, creado con 4 matrices y 4
150 (%i1) a1: matrix([0.85,0.04],[-0.04,0.85])$
151 (%i2) a2: matrix([0.2,-0.26],[0.23,0.22])$
152 (%i3) a3: matrix([-0.15,0.28],[0.26,0.24])$
153 (%i4) a4: matrix([0,0],[0,0.16])$
158 (%i9) w: [85,92,99,100]$
159 (%i10) ifs(w, [a1,a2,a3,a4], [p1,p2,p3,p4], [5,0], 50000, [style,dots]);
169 @deffn {Función} orbits (@var{F}, @var{y0}, @var{n1}, @var{n2}, [@var{x}, @var{x0}, @var{xf}, @var{xstep}], @var{opciones}, @dots{});
171 Dibuja el diagrama de órbitas de una familia de sistemas dinámicos
172 discretos unidimensionales, con un parámetro @var{x}; ese tipo de
173 diagrama se usa para mostrar las bifurcaciones de un sistema discreto
176 La función @var{F(y)} define una secuencia que comienza con un valor
177 inicial @var{y0}, igual que en el caso de la función @code{evolution},
178 pero en este caso la función también dependerá del parámetro @var{x}, el
179 cual tomará valores comprendidos en el intervalo de @var{x0} a @var{xf},
180 con incrementos @var{xstep}. Cada valor usado para el parámetro @var{x}
181 se muestra en el eje horizontal. En el eje vertical se mostrarán
182 @var{n2} valores de la sucesión @var{y(n1+1)},..., @var{y(n1+n2+1)},
183 obtenidos después de dejarla evolucionar durante @var{n1} iteraciones
186 @strong{Ejemplo}. Diagrama de órbitas para el mapa cuadrático
189 (%i1) orbits(x^2+a, 0, 50, 200, [a, -2, 0.25], [style, dots]);
196 Para ampliar la región alrededor de la bifurcación en la parte de
197 abajo, cerca de x @code{=} -1.25, se usa el comando:
199 (%i2) orbits(x^2+a, 0, 100, 400, [a,-1,-1.53], [x,-1.6,-0.8],
200 [nticks, 400], [style,dots]);
210 @deffn {Función} staircase (@var{F}, @var{y0}, @var{n},@var{opciones},@dots{});
212 Dibuja un diagrama de escalera (o diagrama de red) para la sucesión
213 definida por la ecuación de recurrencia
223 La interpretación y valores permitidos de los parámetros de entrada
224 es la misma que para la función @code{evolution}. Un diagrama de
225 escalera consiste en una gráfica de la función @var{F(y)}, junto con
226 la recta @var{G(y)} @code{=} @var{y}. Se comienza por dibujar un
227 segmento vertical desde el punto (@var{y0}, @var{y0}) en la recta, hasta
228 el punto de intersección con la función @var{F}. En seguida, desde
229 ese punto se dibuja un segmento horizontal hasta el punto de
230 intersección con la recta, (@var{y1}, @var{y1}); el procedimiento se
231 repite @var{n} veces hasta alcanzar el punto (@var{yn}, @var{yn}). Esta
232 función acepta las mismas opciones que @mrefdot{plot2d}
237 (%i1) staircase(cos(y), 1, 11, [y, 0, 1.2]);
245 @node Visualización usando VTK, , Análisis gráfico de sistemas dinámicos discretos, dynamics
246 @section Visualización usando VTK
248 La función scene crea imágenes tridimensionales y animaciones usando el
249 software @emph{Visualization ToolKit} (VTK). Para poder usar esa función
250 es necesario tener Xmaxima y VTK instalados en el sistema (incluyendo la
251 biblioteca para usar VTK desde TCL que en algunos sistemas viene en un
255 @deffn {Función} scene (@var{objetos}, @dots{}, @var{opciones}, @dots{});
257 Acepta una lista vacía o una lista de varios
258 @mxref{scene_objetos,objetos} y @mxrefdot{scene_opciones,opciones} El
259 programa ejecuta Xmaxima, que abre una ventana donde se representan los
260 objetos dados, en un espacio tridimensional y aplicando las opciones
261 dadas. Cada objeto debe pertenecer una de las 4 clases: sphere, cube,
262 cylinder o cone (ver @mxref{scene_objetos,Objetos de scene}). Los
263 objetos se identifican dando el nombre de su clase, o una lista en que
264 el primer elemento es el nombre de la clase y los restantes elementos
265 son opciones para ese objeto.
267 @strong{Ejemplo}. Una pirámide hexagonal con fondo azul:
269 @c scene(cone, [background,"#9980e5"])$
272 (%i1) scene(cone, [background,"#9980e5"])$
278 Presionando el botón izquierdo del ratón mientras se mueve dentro de la
279 ventana gráfica, se puede rotar la cámara, mostrando diferentes vistas
280 de la pirámide. Las dos opciones @mxref{scene_elevation,elevation} y
281 @mxref{scene_azimuth,azimuth} se pueden usar también para cambiar la
282 orientación de la cámara. La cámara se puede mover presionando el botón
283 del medio y moviendo el ratón y el botón del lado derecho se usa para
284 aumentar o disminuir el zoom, moviendo el ratón para arriba y para
287 Cada opción de un objeto deberá ser una lista comenzando con el nombre
288 de la opción, seguido por su valor. La lista de posibles opciones se
289 encuentra en la sección
290 @mxrefdot{objeto_opciones,Opciones de objetos de scene}
292 @strong{Ejemplo}. Este ejemplo mostrará una esfera cayendo para el piso
293 y rebotando sin perder energía. Para comenzar o poner en pausa la
294 animación se debe oprimir el botón de play/pausa.
296 @c p: makelist ([0,0,2.1- 9.8*t^2/2], t, 0, 0.64, 0.01)$
297 @c p: append (p, reverse(p))$
298 @c bola: [sphere, [radius,0.1], [thetaresolution,20],
299 @c [phiresolution,20],[position,0,0,2.1], [color,red],
300 @c [animate,position,p]]$
301 @c piso: [cube, [xlength,2], [ylength,2], [zlength,0.2],
302 @c [position,0,0,-0.1],[color,violet]]$
303 @c scene (bola, piso, restart);
307 (%i1) p: makelist ([0,0,2.1- 9.8*t^2/2], t, 0, 0.64, 0.01)$
309 (%i2) p: append (p, reverse(p))$
311 (%i3) bola: [sphere, [radius,0.1], [thetaresolution,20],
312 [phiresolution,20], [position,0,0,2.1], [color,red],
313 [animate,position,p]]$
315 (%i4) piso: [cube, [xlength,2], [ylength,2], [zlength,0.2],
316 [position,0,0,-0.1],[color,violet]]$
318 (%i5) scene (bola, piso, restart)$
324 La opción @var{restart} fue usada para hacer que la animación recomienze
325 cada vez que se llega al último punto en la lista. Los valores
326 permitidos para los colores son los mismo que para la opción @mref{color}
331 @anchor{scene_opciones}
332 @subsection Opciones de scene
334 @anchor{scene_azimuth}
335 @defvr {Opción de scene} azimuth [azimuth, @var{ángulo}]
336 Valor predefinido: @code{135}
338 La rotación de la cámara en el plano horizontal (x, y). @var{ángulo}
339 debe ser un número real; un ángulo de 0 significa que la cámara apunta
340 en la dirección del eje y, haciendo que el eje x aparezca a la derecha.
344 @anchor{scene_background}
345 @defvr {Opción de scene} background [background, @var{color}]
346 Valor predefinido: @code{black}
348 El color del fondo de la ventana gráfica. Acepta nombres de colores o
349 secuencias de caracteres hexadecimales para rojo-verde-azul (ver la
350 opción @mref{color} de plot2d).
354 @anchor{scene_elevation}
355 @defvr {Opción de scene} elevation [elevation, @var{ángulo}]
356 Valor predefinido: @code{30}
358 La rotación vertical de la cámara. El @var{ángulo} debe ser un número
359 real; un ángulo de 0 significa que la cámara apunta en la horizontal y
360 el valor predefinido de 30 significa que la cámara apunta 30 grados para
361 abajo de la horizontal.
365 @anchor{scene_height}
366 @defvr {Opción de scene} height [height, @var{pixels}]
367 Valor predefinido: @code{500}
369 La altura, en pixels, de la ventana gráfica. @var{pixels} debe ser un
370 número entero positivo.
374 @anchor{scene_restart}
375 @defvr {Opción de scene} restart [restart, @var{valor}]
376 Valor predefinido: @code{false}
378 Un valor 'true' significa que la animación recomenzará automáticamente
379 cuando llegue al final. Escribir simplemente ``restart'' es equivalente
380 a escribir [restart, @var{true}].
385 @defvr {Opción de scene} tstep [tstep, @var{tiempo}]
386 Valor predefinido: @code{10}
388 El intervalo de tiempo, en milisegundos, entre iteraciones consecutivas
389 de las partes de una animación. @var{tiempo} debe ser un número real.
394 @defvr {Opción de scene} width [width, @var{pixels}]
395 Valor predefinido: @code{500}
397 El ancho, en pixels, de la ventana gráfica. @var{pixels} deberá ser un
398 número entero positivo.
402 @anchor{scene_windowname}
403 @defvr {Opción de scene} windowname [windowtitle, @var{nombre}]
404 Valor predefinido: @code{.scene}
406 @var{nombre} deberá ser una secuencia de caracteres que pueda ser usada
407 para el nombre de una ventana de Tk, creada por Xmaxima para los
408 gráficos de @code{scene}. El valor predefinido @code{.scene} implica que
409 será creada una nueva ventana.
413 @anchor{scene_windowtitle}
414 @defvr {Opción de scene} windowtitle [windowtitle, @var{nombre}]
415 Valor predefinido: @code{Xmaxima: scene}
417 @var{nombre} debe ser una secuencia de caracteres que serán escritos en
418 el encabezado de la ventana creada por @code{scene}.
422 @anchor{scene_objetos}
423 @subsection Objetos de scene
426 @defvr {Objeto de scene} cone [cone, @var{opciones}]
428 Crea una pirámide regular con altura 1 unidad y base hexagonal con
429 vértices a 0.5 unidades del eje. Las opciones
430 @mxref{objeto_height,height} y @mxref{objeto_radius,radius} se pueden
431 usar para alterar esos valores predefinidos y la opción
432 @mxref{objeto_resolution, resolution} se usa para alterar el número de
433 aristas de la base; valores mayores harán que la pirámide parezca un
434 cono. Por omisión, el eje estará a lo largo del eje x, el punto medio de
435 la altura estará en el origen y el vértice en el lado positivo del eje
436 x; las opciones @mxref{objeto_orientation,orientation} y
437 @mxref{objeto_center,center} permiten alterar eso.
439 @strong{Ejemplo}. El siguiente comando muestra una pirámide que comienza
440 a dar vueltas cuando se oprime el botón de animación.
443 (%i1) scene([cone, [orientation,0,30,0], [tstep,100],
444 [animate,orientation,makelist([0,30,i],i,5,360,5)]], restart)$
450 @defvr {Objeto de scene} cube [cube, @var{opciones}]
452 Un cubo con aristas de 1 unidad y caras paralelas al los planos xy, xz y
453 yz. Las longitudes de las 3 aristas se pueden modificar con las opciones
454 @mxref{objeto_xlength,xlength}, @mxref{objeto_ylength,ylength} y
455 @mxref{objeto_zlength,zlength}, convirtiéndolo en un paralelepípedo y
456 las caras se pueden hacer rotar con la opción
457 @mxrefdot{objeto_orientation,orientation}
462 @defvr {Objeto de scene} cylinder [cylinder, @var{opciones}]
464 Crea un prisma regular con altura de 1 unidad y base hexagonal con los
465 vértices a 0.5 unidades del eje. Las opciones
466 @mxref{objeto_height,height} y @mxref{objeto_radius,radius} permiten
467 modificar esos valores predefinidos y la opción
468 @mxref{objeto_resolution,resolution} se puede usar para modificar el
469 número de aristas de la base; valores mayores tornan el prisma más
470 parecido a un cilindro. La altura predefinida se puede alterar con la
471 opción @mxrefdot{objeto_height,height} Por omisión el eje estará
472 orientado a lo largo del eje x, y el punto medio de la altura estará en
473 el origen; se pueden cambiar esas propiedades con las opciones
474 @mxref{objeto_orientation,orientation} y @mxrefdot{objeto_center,center}
479 @defvr {Objeto de scene} sphere [sphere, @var{opciones}]
481 Una esfera de radio igual a 0.5 unidades y centro en el origen.
485 @anchor{objeto_opciones}
486 @subsection Opciones de objetos de scene
488 @anchor{objeto_animation}
489 @defvr {Opción de objeto} animation [animation, @var{propiedad}, @var{posiciones}]
491 @var{propiedad} deberá ser una de las 4 siguientes propiedades del
492 objeto: @mxrefcomma{objeto_origin,origin}
493 @mxrefcomma{objeto_scale,scale} @mxref{objeto_position,position} o
494 @mxref{objeto_orientation,orientation} y @var{posiciones} deberá ser una
495 lista de puntos. Cuando se oprime el botón ``play'', esa propiedad
496 tomará sucesivamente los valores en la lista, en intervalos regulares de
497 tiempo definidos por la opción @mxrefdot{scene_tstep,tstep} El botón de
498 volver al comienzo puede usarse para recomenzar desde el principio de la
499 lista, haciendo que la animación comience nuevamente cuando se presione
500 otra vez el botón de play.
502 Consulte también @mxrefdot{objeto_track,track}
506 @anchor{objeto_capping}
507 @defvr {Opción de objeto} capping [capping, @var{número}]
508 Valor predefinido: @code{1}
510 En un objeto ``cone'' o ``cylinder'', determina si la base (o bases) se
511 muestran o no. Un valor de 1 para @var{número} torna la base visible y
512 un valor de 0 la hace invisible.
516 @anchor{objeto_center}
517 @defvr {Opción de objeto} center [center, @var{punto}]
518 Valor predefinido: @code{[0, 0, 0]}
520 Coordenadas del centro geométrico del objeto, en relación a su posición
521 (@mxref{objeto_position, position}); @var{punto} puede ser una lista de
522 3 números reales o 3 números separados por comas. En objetos de clase
523 ``cylinder'',''cone'' o ``cube'' estará localizado en el punto medio de
524 la altura y en objetos de clase ``sphere'' estará en su centro.
528 @anchor{objeto_color}
529 @defvr {Opción de objeto} color [color, @var{nombre}]
530 Valor predefinido: @code{white}
532 El color del objeto. Acepta nombres de colores conocidos o secuencias de
533 6 dígitos (rojo-verde-azul) precedidos por # (ver la opción @mref{color}
538 @anchor{objeto_endphi}
539 @defvr {Opción de objeto} endphi [endphi, @var{ángulo}]
540 Valor predefinido: @code{180}
542 En una esfera, phi es el ángulo en el plano vertical que pasa por el eje
543 z, medido a partir de la parte positiva del eje z. @var{ángulo} debe ser
544 un múmero entre 0 y 180 que determina el valor final de phi hasta donde
545 se mostrará la superficie. Valores menores que 180 eliminan una parte de
548 Consulte también @mxref{objeto_startphi,startphi} y
549 @mxrefdot{objeto_phiresolution,phiresolution}
553 @anchor{objeto_endtheta}
554 @defvr {Opción de objeto} endtheta [endtheta, @var{ángulo}]
555 Valor predefinido: @code{360}
557 En una esfera, theta es el ángulo en el plano horizontal (longitud),
558 medido desde la parte positiva del eje x. @var{ángulo} debe ser un
559 número entre 0 y 360 que determina el valor final donde la superficie
560 terminará. Valores menores que 360 hacen que se elimine una parte de la
561 superficie de la esfera.
563 Consulte también @mxref{objeto_starttheta,starttheta} y
564 @mxrefdot{objeto_thetaresolution,thetaresolution}
568 @anchor{objeto_height}
569 @defvr {Opción de objeto} height [height, @var{valor}]
570 Valor predefinido: @code{1}
572 @var{valor} debe ser un número positivo que define la altura de un cono
577 @anchor{objeto_linewidth}
578 @defvr {Opción de objeto} linewidth [linewidth, @var{valor}]
579 Valor predefinido: @code{1}
581 El ancho de las líneas cuando se usa la opción
582 @mxref{objeto_wireframe,wireframe}. @var{valor} debe ser un número
587 @anchor{objeto_opacity}
588 @defvr {Opción de objeto} opacity [opacity, @var{valor}]
589 Valor predefinido: @code{1}
591 @var{valor} debe se un número entre 0 y 1. Cuanto menor sea el número,
592 mas transparente será el objeto. El valor predefinido de 1 implica un
593 objeto completamente opaco.
597 @anchor{objeto_orientation}
598 @defvr {Opción de objeto} orientation [orientation, @var{ángulos}]
599 Valor predefinido: @code{[0, 0, 0]}
601 Tres ángulos que de rotaciones que serán realizadas en el objeto,
602 alrededor de los tres ejes.@var{ángulos} puede ser una lista con tres
603 números reales o tres números separados por comas. @strong{Ejemplo}:
604 @code{[0, 0, 90]} rota el eje x del objeto hasta el eje y del sistema de
609 @anchor{objeto_origin}
610 @defvr {Opción de objeto} origin [origin, @var{punto}]
611 Valor predefinido: @code{[0, 0, 0]}
613 Coordenadas del origen del objeto, en relación al cual las otras
614 dimensiones serán definidas. @var{punto} pueden ser tres números
615 separados por comas, o una lista de tres números.
619 @anchor{objeto_phiresolution}
620 @defvr {Opción de objeto} phiresolution [phiresolution, @var{num}]
621 Valor predefinido: @code{}
623 Número de sub-intervalos en que se divide el intervalo de valores del
624 ángulo phi, que comienza en @mxref{objeto_startphi,startphi} y termina
625 en @mxrefdot{objeto_endphi,endphi} @var{num} debe ser un número entero
628 Consulte también @mxref{objeto_startphi,startphi} y
629 @mxrefdot{objeto_endphi,endphi}
633 @anchor{objeto_points}
634 @defvr {Opción de objeto} points [points]
636 Esta opción hace que en vez de que se muestre la superficie, se muestren
637 únicamente los vértices en la triangulación usada para construir la
638 superficie. @strong{Ejemplo}: @code{[sphere, [points]]}
640 Consulte también @mxref{objeto_surface,surface} y
641 @mxrefdot{objeto_wireframe,wireframe}
645 @anchor{objeto_pointsize}
646 @defvr {Opción de objeto} pointsize [pointsize, @var{valor}]
647 Valor predefinido: @code{1}
649 Tamaño de los puntos, cuando se usa la opción
650 @mxrefdot{objeto_points,points} @var{valor} debe ser un número positivo.
654 @anchor{objeto_position}
655 @defvr {Opción de objeto} position [position, @var{punto}]
656 Valor predefinido: @code{[0, 0, 0]}
658 Coordenadas de la posición del objeto. @var{punto} puede ser tres
659 números separados por comas o una lista de tres números.
663 @anchor{objeto_radius}
664 @defvr {Opción de objeto} radius [radius, @var{valor}]
665 Valor predefinido: @code{0.5}
667 El radio de una esfera o la distancia desde el eje hasta los vértices de
668 la base en cilindros o conos. @var{valor} debe ser un número positivo.
672 @anchor{objeto_resolution}
673 @defvr {Opción de objeto} resolution [resolution, @var{número}]
674 Valor predefinido: @code{6}
676 @var{número} debe ser un número entero mayor que 2, que define el número
677 de aristas de la base en objetos de clase ``cone'' o ``cylinder''.
681 @anchor{objeto_scale}
682 @defvr {Opción de objeto} scale [scale, @var{factores}]
683 Valor predefinido: @code{[1, 1, 1]}
685 Tres factores de escala en que serán deformadas las dimensiones del
686 objeto en relación a los tres ejes. @var{factors} pueden ser tres número
687 separados por comas o una lista con tres números. @strong{Ejemplo}:
688 @code{[2, 0.5, 1]} estira el objeto suplicando sus dimensiones paralelas
689 la eje x, reduce a mitad las dimensiones paralelas al eje y, dejando
690 iguales las dimensiones paralelas al eje z.
694 @anchor{objeto_startphi}
695 @defvr {Opción de objeto} startphi [startphi, @var{ángulo}]
696 Valor predefinido: @code{0}
698 En una esfera, phi es el ángulo en el plano vertical que pasa por el eje
699 z, medido a partir de la parte positiva del eje z. @var{ángulo} debe ser
700 un múmero entre 0 y 180 que determina el valor inicial de phi desde donde
701 se mostrará la superficie. Valores superiores a 0 eliminan una parte de
704 Consulte también @mxref{objeto_endphi,endphi} y
705 @mxrefdot{objeto_phiresolution,phiresolution}
709 @anchor{objeto_starttheta}
710 @defvr {Opción de objeto} starttheta [starttheta, @var{ángulo}]
711 Valor predefinido: @code{0}
713 En una esfera, theta es el ángulo en el plano horizontal (longitud),
714 medido desde la parte positiva del eje x. @var{ángulo} debe ser un
715 número entre 0 y 360 que determina el valor inicial donde la superficie
716 comienza. Valores mayores que 0 hacen que se elimine una parte de la
717 superficie de la esfera.
719 Consulte también @mxref{objeto_endtheta,endtheta} y
720 @mxrefdot{objeto_thetaresolution,thetaresolution}
724 @anchor{objeto_surface}
725 @defvr {Opción de objeto} surface [surface]
727 Hace que se muestre la superficie del objeto y no los las líneas ni los
728 vértices de la triangulación usada para construirlo. Ese es el
729 comportamiento habitual que se puede alterar con las opciones
730 @mxref{objeto_points,points} o @mxrefdot{objeto_wireframe,wireframe}
734 @anchor{objeto_thetaresolution}
735 @defvr {Opción de objeto} thetaresolution [thetaresolution, @var{num}]
736 Valor predefinido: @code{}
738 Número de sub-intervalos en que se divide el intervalo de valores del
739 ángulo theta, que comienza en @mxref{objeto_starttheta,starttheta} y termina
740 en @mxrefdot{objeto_endtheta,endtheta} @var{num} debe ser un número entero
742 Consulte también @mxref{objeto_starttheta,starttheta} y
743 @mxrefdot{objeto_endtheta,endtheta}
747 @anchor{objeto_track}
748 @defvr {Opción de objeto} track [track, @var{posiciones}]
750 @var{posiciones} deberá ser una lista de puntos. Cuando se oprime el
751 botón de ``play'', la posición del objeto tomara secuencialmente los
752 valores en la lista, a intervalos regulares de tiempo definidos por la
753 opción @mxrefcomma{scene_tstep,tstep} dejando un rastro de la
754 trayectoria del objeto. El botón de volver al comienzo puede usarse para
755 recomenzar desde el principio de la lista, haciendo que la animación
756 comience nuevamente cuando se presione otra vez el botón de play.
758 @strong{Ejemplo}. Estos comandos muestran la trayectoria de una bola
759 lanzada con velocidad inicial de 5 m/s, a un ángulo de 45 grados, cuando
760 se puede ignorar la resistencia del aire:
763 (%i1) p: makelist ([0,4*t,4*t- 9.8*t^2/2], t, 0, 0.82, 0.01)$
765 (%i2) bola: [sphere, [radius,0.1], [color,red], [track,p]]$
767 (%i3) piso: [cube, [xlength,2], [ylength,4], [zlength,0.2],
768 [position,0,1.5,-0.2],[color,green]]$
770 (%i4) scene (bola, piso)$
773 Consulte también @mxrefdot{objeto_animation,animation}
777 @anchor{objeto_xlength}
778 @defvr {Opción de objeto} xlength [xlength, @var{altura}]
779 Valor predefinido: @code{1}
781 Altura de un objeto de clase ``cube'', en la dirección x. @var{altura}
782 debe ser un número positivo. Consulte también
783 @mxref{objeto_ylength,ylength} y @mxrefdot{objeto_zlength,zlength}
787 @anchor{objeto_ylength}
788 @defvr {Opción de objeto} ylength [ylength, @var{altura}]
789 Valor predefinido: @code{1}
791 Altura de un objeto de clase ``cube'', en la dirección y. @var{altura}
792 debe ser un número positivo. Consulte también
793 @mxref{objeto_xlength,xlength} y @mxrefdot{objeto_zlength,zlength}
797 @anchor{objeto_zlength}
798 @defvr {Opción de objeto} zlength [zlength, @var{altura}]
799 Valor predefinido: @code{1}
801 Altura de un objeto de clase ``cube'', en la dirección z. @var{altura}
802 debe ser un número positivo. Consulte también
803 @mxref{objeto_xlength,xlength} y @mxrefdot{objeto_ylength,ylength}
807 @anchor{objeto_wireframe}
808 @defvr {Opción de objeto} wireframe [wireframe]
810 Esta opción hace que en vez de que se muestre la superficie, se muestren
811 únicamente las aristas de la triangulación usada para construir la
812 superficie. @strong{Ejemplo}: @code{[cube, [wireframe]]}
814 Consulte también @mxref{objeto_surface,surface} y
815 @mxrefdot{objeto_points,points}