# law

## variation law

May appear as an option in all commands involving a variation.

## law

### law(x1,y1,0, x2,y2,0, ......, xn,yn,0)

In certains commands (xi,yi) stantardized between 0.0 and 1.0, allows varying a parameter y=law(x,L).
See for example:
traj law.

### law("ccc")

ccc=acc: accelerated (equivalent to acc).
ccc=dec: delerated (equivalent to dec).
ccc=pend: pundulum (equivalent to pend).

### law(x,w)

Returns y=f(x), with f = polynomial function described by the 3D polygonal line w = (x1,y1,0,x2,y2,0,...)

### law(x,id)

Returns y=f(x), with f = polynomial function described by the points (x1,y1,0,x2,y2,0,...) of object law identifier id.
Options:
ext(e,c): the line w is extended by extension (e,c).

## Objet law

### law(id)poi(x1,y1,z1,...)

Build object law identifier id defined by the 3D polygonal line (x1,y1,z1,...).

### law(id)

Returns the 3D polygonal line defining the law.
If id="nnn" and if the corresponding object is not found, file is seeked on the disk.

## law axis

### law axis rota vol(id)

Returns the list of boundaries (a1, a2) of learning.

### law axis rota vol(id)=a1,a2,...

Changes these boundaries.
Voir network vol.

## law fog

### law fog(id)

Returns the law of fog id

### law fog num=expr

Changes this law.

## law CG

### law CG(np)vol(id)

Builds the FIFO stack of CG of volume id.

### law CG vol(id)

Returns this stack.

### exec law CG vol(id)

Computes the power 1/3 law of the stack.

### validate law CG vol(id)

Returns the power 1/3 law evaluation of the stack.
Notes:
bloc dist radius is autmatically generated containing (di,ri,ci) where:
di = curve speed
ri = radius
ci = di / (ri ^ 1/3)
Usefull in genetic algorithme generating natural motions. see the file genetic_emergence.func.

## law field

### law field(id)

Returns the law associated to field id.

### law field(id)=v

Changes this law.
Note:
id field force is inversely proportional to the distance from the center of the field if it is centrall, or from its axis if of axial type..

## law line

### law line(L)

Returns the variation law of the 3D line L.
Options:
center: returns the curvature center.
dist: returns the curve abscisses.
radius: returns the curvature radius.
Examples:
`L=adjust(3)line(0,0,0, 100,0,0);\$law line(L)dist;`
prints 0.0 50.0 100.0
`L=adjust(3)line(0,0,0, 100,0,0);\$law line(L)dist;`
prints 0.0 50.0 100.0
`L=adjust(6)line(0,0,0, 100,0,0)ext(3,1,0);\$law line(L)dist;`
prints 0.0 20.0, 40.0 60.0 80.0 100.0

## law network

### law(n) network(id)

Returns the output n of neural network id.

### law(n) network(id)=values

Changes this output.

### law(0) network(id)=values

Add an output.
See also: network and motif network.
Notes:
All laws must have the same dimension.
There must be as many laws as motifs.

## law speed

### law speed rota vol(id)

Returns the property law speed rota vol of volumeid.

### law speed rota vol(id)=c,cc

Changes this property.
Note:
if the volume id is the leader of an anchorage structure then c is the coefficient of the law of phase opposition, the rotational speeds of all volumes of this structure are automatically modified according to this law.
Notes:
cc is the multiplier of c from one volume to the next.
if yes follow is active law spreads from one volume to its followers.

## law property

### law(num)propr1 propr2 ... vol(id)

Returns the law number num of neuronal network associated with the propr1 propr2 ... property of volume id.

## law(num)propr1 propr2 ... vol(id)=expr

Changes this law, if num=0: adds a law.

## law transp vol

### law transp vol(id)

Returns the transparency law of volume id.

### law transp vol(id)=x1,y1,z1,x2,y2,z2,...

Changes this law.
Notes:
1) If the volumeid is provided with a transparency (see illum vol), it will be modulated by the law (x1, y1, z1, x2, y2, z2, ...).
2) The x varies between 0 and 1, y varie between 0, z are zero. y represents the multiplier of transparency with respect to x which is the cosine of the angle between the normal vector and the vector joining the point to the eye
Examples:
`law transp vol(1)=0,0,0,1,1,0;`
`x=arc(1,PI,-PI/2,20);tran var("x")poi(1,0,0);law transp vol(1)=x;`

## law vol

### law vol(id)

Returns the law property of volume id.

### law vol(id)=v

Changes this property.
Note:
v=1: activates the speed calculus for adjust vol law.
v=0: inhibits these calculus.