Comment on page

# Cookbook

## Unsorted

# Get Active Object
obj = doc.GetActiveObject

## Matrix Array Transformation

### Position

Selecting a single element
n = 20
# Position: Vector to Real
x = marr[n].off.x
y = 20
z = marr[n].off.z
marr[n].off = c4d.Vector(x,y,z)
Selecting a single element
for i in range(cnt):
x = marr[i].off.x
y = 20+i*5
z = marr[i].off.z
marr[i].off = c4d.Vector(x,y,z)

### Rotation

marr[6] *= rot_x

#### Multiple Axes with HPB to Matrix

r_y = 0
vect = c4d.Vector(r_x, r_y, r_z)
rotation = c4d.utils.HPBToMatrix(vect,5)
marr[6] *= rotation

### Scale

for i in range(cnt):
x = random.uniform(0.2,1)
y = random.uniform(0.2,1)
z = random.uniform(0.2,1)
vect = c4d.Vector(x,y,z)
# marr[i].Scale(float(i/10))
marr[i].Scale(vect)

## Color

carr = moData.GetArray(c4d.MODATA_COLOR) # Color Array
# Gray Scale
# carr[0] = c4d.Vector(0.5)
for i in range(cnt):
r = random.random()
g = random.random()
b = random.random()
carr[i] = c4d.Vector(r,g,b)
# Update Color Array
moData.SetArray(c4d.MODATA_COLOR, carr, hasField)

## References

• C4D SDK Documentation

## Formula

Documentation
Alternate intensity based on row number (Animate over time)
mod((id/5);2)?(t;-t)
Animate over time based on the row number sequence
(id/5)/(count/5)*1.5*t