|
|
Severi Salminen wrote:
> Severi Salminen wrote:
>
>> Let's have a vector V which is random vector inside a hemisphere which
>> has a pole at 0,1,0 (just like the northern hemisphere of Earth). I want
>> to orient the vector inside a hemishere which has a pole pointing at
>> vector N. How do I do this?
>
> Example:
>
> V = (0.71, 0.71, 0) //The random vector in "northern hemishpere")
> N = (-1,0,0) //The pole I want to orientate the random vectors to)
>
> The result is
>
> Vnew = (-0.71, 0.71, 0)
Some relevant macros in transforms.inc:
vtransform(vec, trans)
Reorient_Trans(Axis1, Axis2)
Point_At_Trans(YAxis)
I don't have time to test this, but I think this will work:
#include "transforms.inc"
#declare P = <0, 1, 1>;
#declare N = <-1, 0, 0>;
#declare V = <0.71, 0.71, 0>;
#declare Vnew = vtransform(V, Reorient_Trans(P, N));
This should also work:
#include "transforms.inc"
#declare N = <-1, 0, 0>;
#declare V = <0.71, 0.71, 0>;
#declare Vnew = vtransform(V, Point_At_Trans(N));
--
Tor Olav
http://subcube.com
Post a reply to this message
|
|