  | 
  | 
 
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
hi,
the manual defines: "vrotate(A,B) Rotate A about origin by B."  yet when I
rotate a simple point, at 180 degrees the output is .. unexpected, not <-1,0,0>.
 can someone please explain ?
#version 3.8;
global_settings {assumed_gamma 1}
box {0,1}
#declare P = <1,0,0>;
#debug concat("rot 000 : ",vstr(3,vrotate(P,0),",",0,2),"\n")
#debug concat("rot 090 : ",vstr(3,vrotate(P,90),",",0,2),"\n")
#debug concat("rot 180 : ",vstr(3,vrotate(P,180),",",0,2),"\n")
#debug concat("rot 270 : ",vstr(3,vrotate(P,270),",",0,2),"\n")
Persistence of Vision(tm) Ray Tracer Version 3.8.0-alpha.9945627.unofficial
....
==== [Parsing...] ==========================================================
rot 000 : 1.00,0.00,0.00
rot 090 : 0.00,0.00,-1.00
rot 180 : 1.00,-0.00,-0.00
rot 270 : 0.00,0.00,1.00
regards, jr.
 Post a reply to this message 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
Am 23.08.2024 um 13:22 schrieb jr:
> hi,
> 
> the manual defines: "vrotate(A,B) Rotate A about origin by B."  yet when I
> rotate a simple point, at 180 degrees the output is .. unexpected, not <-1,0,0>.
>   can someone please explain ?
> 
> 
> #version 3.8;
> 
> global_settings {assumed_gamma 1}
> box {0,1}
> 
> #declare P = <1,0,0>;
> 
> #debug concat("rot 000 : ",vstr(3,vrotate(P,0),",",0,2),"\n")
> 
> #debug concat("rot 090 : ",vstr(3,vrotate(P,90),",",0,2),"\n")
> 
> #debug concat("rot 180 : ",vstr(3,vrotate(P,180),",",0,2),"\n")
> 
> #debug concat("rot 270 : ",vstr(3,vrotate(P,270),",",0,2),"\n")
> 
> 
> 
> Persistence of Vision(tm) Ray Tracer Version 3.8.0-alpha.9945627.unofficial
> ....
> ==== [Parsing...] ==========================================================
> rot 000 : 1.00,0.00,0.00
> rot 090 : 0.00,0.00,-1.00
> rot 180 : 1.00,-0.00,-0.00
> rot 270 : 0.00,0.00,1.00
> 
> 
> regards, jr.
> 
Hi jr,
B is a vector and so for example vrotate(P,90) is expanded to 
vrotate(p,<90,90,90>) and then:
"Rotate it about the x-axis by an angle specified in degrees by the 
float value B.x. Similarly B.y and B.z specify the amount to rotate in 
degrees about the y-axis and z-axis. The result is a vector containing 
the new x,y,z coordinates of the point."
That is exactly what you got.
Best regards,
Michael
 Post a reply to this message 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
hi,
MichaelJF <fri### [at] t-online de> wrote:
> ...
> B is a vector and so for example vrotate(P,90) is expanded to
> vrotate(p,<90,90,90>) and then:
man, unsure now whether I knew and forgot, or have been ignorant all along :-),
but thank you, _very_ much, for the explainer/reminder.
regards, jr.
 
 Post a reply to this message 
 | 
  | 
 
 |   |  
 |   |  
 | 
  | 
 | 
  | 
 
 |   |  
 
 | 
  |