20
Dec
07

### 3D Transform Hair-Tearing, and Solution

I spent some time struggling with the problem of how to consistantly translate and rotate a set of objects created by an Iterator Patch.

The problem, it turned out, was the result of my assumption (incorrect, as I eventually discovered), that if an object, or group of objects, is translated using a 3D Transform patch, the Rotation Origin on the Z, Y and Z axes will remain in the same place, and the objects will be moved in relation to this fixed point.
This misapprehension caused me all kinds of confusion, as I tried to create logic to compensate for the translation, and the Z-axis depth of the iterated objects, by moving the Origin. The maths should of course have been very simple, but I wasn’t getting anything like the result I expected.

Eventually, through trial, error, hair-tearing and gnashing of teeth, it dawned on me that if I translate the objects on the Z-Axis (for a ‘zoom’ effect), the Rotation Origin moves with them! So, to have the objects rotate around their centre on the Z-plane, all I needed to do is move the Rotation Origin on the Z-axis forward by half the combined depth of the array of iterated objects.

I love simple solutions!