|
|
Bill DeWitt wrote:
>
> I thought I knew how to do this once, but now I can't even find the
> keyword
> I want. I have a point:
> #declare A_Point = 0;
> and I want to move it...
> #declare A_Point = A_Point +My_Transform;
You can't apply a declared transform directly to a point in the
standard POV release (there may be a patch out there somewhere).
What you have to do instead is apply the components of the transform
in order. Scaling is done by multiplying, rotation is done with the
vrotate() function, and translate is done with adding.
The matrix transform can be applied to a point using the vmatrix()
macro in my Thoroughly Useful Macros file, which can be found at
http://users.erols.com/vansickl/macs.htm
As an example, if your transform was
#declare MyTransform= transform {
rotate x*45
scale <1,2,1>
translate <-34,1.2,23>
matrix <1,0,0, 0,.8,.6, 0,-.6,1, 0,0,0>
}
You would transform a given point this way:
#declare MyPoint=vrotate(MyPoint,x*45);
#declare MyPoint=MyPoint*<1,2,1>;
#declare MyPoint=MyPoint+<-34,1.2,23>;
#declare MyPoint=vmatrix(MyPoint,<1,0,0>,<0,.8,.6>,<0,-.6,1>,<0,0,0>);
Hope this helps,
John
--
ICQ: 46085459
Post a reply to this message
|
|