http://www.perlmonks.org?node_id=400038

in reply to Rotate a 3D vector

Back to the trenches with me. I'm starting with a 2d space till i can wrap my head around it. The code and examples i am finding are not matching up in 3d space. Here's my closest attempt which still is wrong. Can anyone help?
```# 2 points on a plane
my \$x = 2;
my \$y = 1;
#yang is the y-angle 0-360 i want to rotate by
my \$yang = 45;
#convert yang to radians
\$yang = 3.14159265358979*\$yang/180;
#rad is the radius of my sphere
my \$rad = sqrt(\$x**2 + \$y**2);
my \$x = cos(\$yang)*\$rad;
my \$y = sin(\$yang)*\$rad;
print "x=\$x\ny=\$y\n";
[download]```
Advice appreciated.
jtrue

Replies are listed 'Best First'.
Re^2: Rotate a 3D vector
by johnnywang (Priest) on Oct 18, 2004 at 03:57 UTC
Just a little change, the formula was not correct (as I pointed out in my previous post in this thread)
```# 2 points on a plane
my \$x = 2;
my \$y = 1;
#yang is the y-angle 0-360 i want to rotate by
my \$yang = 45;
#convert yang to radians
\$yang = 3.14159265358979*\$yang/180;
my \$xnew = cos(\$yang)*\$x - sin(\$yang)*y;
my \$ynew = sin(\$yang)*\$x + cos(\$yang)*y;
print "x=\$xnew, y=\$ynew\n";
[download]```