# rota

## rotation around axis

Like all linear transformations that command is in 2 modes: direct and matrix.

## rota obj

### rota(an)axis(dx,dy,dz)obj(id)

Rotates the object id angle an about the axis (dx, dy, dz) passing through its center of gravity.

### rota(an)axis(dx,dy,dz)poi(x,y,z) obj(id)

Rotates angle an object id about the axis (dx,dy,dz) passing through (x,y,z).

### rota(an)axis(dx,dy,dz)vertex(s)obj(id)

Rotates vertices s angle an of the object id around axis (dx,dy,dz) passing through its center of gravity.

### rota axis(dx,dy,dz) object(id)

Brings the local y-axis of the object id on axis (dx, dy, dz).
Note:
object is fog, light, var, vol, view.
Examples:
`rota(PI/4)axis(1,1,1)poi(100,-20,50) vertex[1,5] vol(1,3);` rotates vertices (1,2,3,4,5) of volumes 1 and 3 angle PI/4 around axis (1,1,1) passing through point (100,-20,50).
`rota(PI/4)axis(1,1,1)var("x");` rotates variable x angle PI/4 around axis (1,1,1) passing through its center of gravity.

### rota(a1,a2)vol(a)rota(b1,b2)vol(b)

Varies rota matrix vol(a) in the interval [a1,a2] when rota matrix vol(b) varies in the interval [b1,b2].
Can be used to attach a rota changes volume ato those of his father b.
Note: rota(b1,b2) may be any other transformation transf(b1,b2).

## rota matrix

### rota matrix vol(id)

Returns the angle of rotation about its axis of the matrix volume id.
Options:
format(f): modulo f.

### rota(a)matrix vol(id)

Rotates the volume id angle a around its axix by changing its matrix.
Options:
ini: processes the basic transformation.

## rota quat

### rota(x,y,z,an)poi(p1)

Returns the point p2 trandformed of p1 by the rotation axis (x,y,z) and angle an.

## rota quat

### rota quat(q)

Returns (a,xr,yr,zr) rotation angle -PI<=a<=PI and axis (xr,yr,zr) corresponding to the quaternion q=w,x,y,z