Unix and Linux Discussions Tagged with amp |
|
Thread / Thread Starter |
Last Post |
Replies |
Views |
Forum |
|
|
|
1 |
10,153 |
UNIX for Beginners Questions & Answers |
|
|
|
1 |
3,783 |
UNIX for Beginners Questions & Answers |
|
|
|
6 |
3,767 |
UNIX for Beginners Questions & Answers |
|
|
|
2 |
10,898 |
UNIX for Beginners Questions & Answers |
|
|
|
1 |
2,927 |
UNIX for Beginners Questions & Answers |
|
|
|
2 |
2,974 |
UNIX for Beginners Questions & Answers |
|
|
|
8 |
41,625 |
Solaris |
|
|
|
5 |
2,831 |
UNIX for Beginners Questions & Answers |
|
|
|
0 |
1,262 |
What is on Your Mind? |
|
|
|
33 |
34,980 |
Solaris |
|
|
|
2 |
3,653 |
Solaris |
|
|
|
2 |
3,544 |
IP Networking |
|
|
|
2 |
3,115 |
AIX |
|
|
|
0 |
1,891 |
Software Releases - RSS News |
|
|
|
2 |
7,543 |
Solaris |
|
|
|
2 |
2,171 |
UNIX for Dummies Questions & Answers |
|
|
|
1 |
3,037 |
Programming |
|
|
|
0 |
2,350 |
OS X Support RSS |
|
|
|
1 |
29,308 |
Shell Programming and Scripting |
|
|
|
0 |
1,977 |
Solaris BigAdmin RSS |
|
|
|
7 |
12,327 |
Ubuntu |
|
|
|
0 |
1,342 |
Complex Event Processing RSS News |
|
|
|
0 |
1,886 |
Cartoons for Geeks |
|
|
|
0 |
1,271 |
Software Releases - RSS News |
|
|
|
6 |
4,732 |
UNIX for Dummies Questions & Answers |
|
|
|
1 |
1,497 |
UNIX for Dummies Questions & Answers |
|
|
|
0 |
2,431 |
Cartoons for Geeks |
|
|
|
0 |
1,759 |
Complex Event Processing RSS News |
|
|
|
0 |
2,381 |
Cartoons for Geeks |
|
|
|
0 |
3,087 |
HP Server News and Podcasts RSS |
|
|
|
0 |
1,670 |
MySQL DevZone RSS |
|
|
|
5 |
6,428 |
UNIX for Advanced & Expert Users |
|
|
|
0 |
1,698 |
Complex Event Processing RSS News |
|
|
|
3 |
5,806 |
UNIX and Linux Applications |
|
|
|
6 |
10,008 |
Solaris |
|
|
|
0 |
2,308 |
Cartoons for Geeks |
|
|
|
0 |
1,790 |
Cartoons for Geeks |
|
|
|
2 |
5,077 |
OS X (Apple) |
|
|
|
3 |
2,210 |
Shell Programming and Scripting |
|
|
|
0 |
1,046 |
Software Releases - RSS News |
MOTO(9.1) MOTO(9.1)
NAME
moto - create animation scripts
SYNOPSIS
fb/moto [ -fstart end ] [ -sskip ] [ file [ arg ... ] ]
DESCRIPTION
Moto is a command generator tailored for an animator's needs. Its input is a concise description of the animation to be produced; its out-
put is a command file suitable for input to rc or some other command interpreter. Its arguments are an optional file name containing a
moto program (default standard input) and list of numeric parameters that are made available to the program.
A moto program consists of a list of groups of commands guarded by a range of frames. Groups may contain parameter ranges enclosed in
brackets []. For each frame, moto checks each group and processes those whose guards include the current frame number:
1,6: clr 128
1,4: clr -w [0,30] [0,30] [100,130] [100,130]
3,6: clr -w [100,70] [100,70] [130,100] [130,100] 255
This generates
clr 128
clr -w 0 0 100 100
clr 128
clr -w 10 10 110 110
clr 128
clr -w 20 20 120 120
clr -w 100 100 130 130 255
clr 128
clr -w 30 30 130 130
clr -w 90 90 120 120 255
clr 128
clr -w 80 80 110 110 255
clr 128
clr -w 70 70 100 100 255
Two special guards, BEGIN and END, specify actions to be taken before and after processing frames. Moto allows complex computations inside
parameter brackets:
1,10: clr [127.5*(1-cos([0,360]))]
This generates
clr 0
clr 29.82933350233
clr 105.35985734747
clr 191.25
clr 247.3108091502
clr 247.3108091502
clr 191.25
clr 105.35985734747
clr 29.82933350233
clr 0
Expressions may include constants and variables. All values are double-precision floating point numbers. The operators =, /, +, - (both
unary and binary), <, >, <=, >=, ==, !=, ?: and !, all with their meanings as in C, except that all results are coerced to double. The
result of a%b is a-b*(int)(a/b). The result of a&&b is a?b:a. The result of a||b is a?a:b. The exponentiation operator is ^, also writ-
ten **. The expression [a,b] varies from a to b, linearly as the frame number varies between the guards of the group containing the
expression. The expression a[b,c] has the value a*b+(1-a)*c. Its value varies from b to c as a varies from 0 to 1. The expression $i has
the value of the i'th parameter following the file name on moto's command line.
The precedence of operators is, from lowest to highest:
=
? :
||
&&
< <= == != > >=
+ -
* / %
[ ]
^ **
- (unary) ! $
Expressions may be parenthesized to alter precedence.
The following math functions are available:
fabs floor ceil sqrt hypot sin cos tan
asin acos atan exp log log10 sinh cosh tanh
All math functions are as described in the C library, except that angles are measured in degrees rather than radians for the trig and
inverse trig functions. In addition hypot may have two or three arguments, atan may take two arguments instead of one, and may also be
spelled atan2.
For parameterization, and to allow even more complex computations, moto has variables, assignment and computation groups. A computation
group causes no output; rather its body is a group of expressions to be evaluated for their side effects. It is distinguished from a com-
mand group by having a double colon separating the guard and body:
BEGIN:: n=5
1,n:: x=512*sin([0,90])
1,n: pcp -w 0 0 [x] 488 pic.[1,n] %0
This generates
pcp -w 0 0 0 488 pic.1 %0
pcp -w 0 0 195.93391737093 488 pic.2 %0
pcp -w 0 0 362.03867196751 488 pic.3 %0
pcp -w 0 0 473.02632064578 488 pic.4 %0
pcp -w 0 0 512 488 pic.5 %0
Upon occasion it is useful to split moto's output into several files, under program control. A group that is separated from its guards by
an at-sign @ instead of a colon names a file into which subsequent output is to be written. For example,
1,5@ file.[1,5]
1,5: This is file.[1,5].
creates 5 files, with names file.1, ..., file.5. Each file's contents will announce its name.
As is true for all sufficiently large programs, moto has a shell escape. The text of a group separated from its guards by an exclamation
point ! causes a copy of rc(1) to be started. The group's text is sent to rc's standard input, and its standard output inserted into
moto's output.
SOURCE
/sys/src/fb/moto.y
MOTO(9.1)