|
|
So what you want is just a vector telling you the location of the object.
You don't need to calculate the result by yourself but you can let povray
do it, as others have already answered.
If you are using megapov, you can declare all the transformations in one
identifier and then apply the same transformation to the object and to
a vector (with vtransform), as already pointed out.
It's also good to know how to make the individual transformations to a
vector:
translate <a,b,c> <=> #declare Vector = Vector + <a,b,c>;
scale <a,b,c> <=> #declare Vector = Vector * <a,b,c>;
rotate <a,b,c> <=> #declare Vector = vrotate(Vector, <a,b,c>);
If you want to make the individual transformations to the vector (eg. because
you don't have megapov to use vtransform, or for other reason), just apply
the abovementioned equivalent operations.
For example:
sphere
{ 0, 1 #declare Loc = <0,0,0>;
translate <1,2,-3> #declare Loc = Loc + <1,2,-3>;
rotate y*30 #declare Loc = vrotate(Loc, y*30);
translate -x*2 #declare Loc = Loc - x*2;
scale .5 #declare Loc = Loc * .5;
}
Now 'Loc' will be the coordinate of the center of the sphere.
--
char*i="b[7FK@`3NB6>B:b3O6>:B:b3O6><`3:;8:6f733:>::b?7B>:>^B>C73;S1";
main(_,c,m){for(m=32;c=*i++-49;c&m?puts(""):m)for(_=(
c/4)&7;putchar(m),_--?m:(_=(1<<(c&3))-1,(m^=3)&3););} /*- Warp -*/
Post a reply to this message
|
|