|
|
Dan Connelly wrote:
> Warp wrote:
>> This is the reason why only rotation, scaling, skewing (which is actually
>> a combination of rotation and uneven scaling) and translation is
>> possible.
>>
> I'm a bit confused about the skew argument. There's
> matrix:
>
> 3 degrees of freedom: transformation
That should be translation.
> 3 degrees of freedom: scaling
> 3 degrees of freedom: rotation
>
> So this leaves 3 more degrees of freedom..... which are skew.
>
> (right-hand coordinates)
>
> | ax 0 0 |
> | 0 ay 0 | : scaling
> | 0 0 az |
>
> | cz sz 0 |
> | 0 0 1 | (permute for x, y)
>
> So between scaling and rotation, I'm constrained to
> antisymmetric matrixes.
>
> A typical shear matrix:
>
> | uz vz 0 |
> | 0 0 1 | (permute for x, y)
>
> So this gives me 9 parameters:
> ax, ay, az, sx, sy, sz, vx, vy, vz
>
> the same number of parameters needed to specify the full matrix.
>
After thinking more about this, I realized my mistake.
Matrix multiplication fails to preserve symmetry, only addition.
So given that, it's possible to generate a symmetric component (the
offdiagonal terms generating shear) in addition to a antisymmetric
component (the off-diagonal terms generating rotation) from rotation
and scaling together, as long as the scaling is non-uniform, as Warp
said. My linear algebra is too rusty....
| 0 1 | |-1 0 | | 0 1 |
|-1 0 | | 0 1 | = | 1 0 |
And my degrees of freedom argument follows only if one is allowed a single
rotation and a single scaling. But generating pure shear requires two rotations.
Sorry....
Dan
Post a reply to this message
|
|