| 
  | 
I confess that I do not really understand the working of a matrix. 
Consider the following piece of code:
//start code
#declare P1 = <-1.6, 0.0, 0>;
#declare P2 = < 1.6, 0.8,  0>;
#local Point =
sphere {
   <0,0,0>, 0.05
}
object {Point translate P1  pigment {rgb <1,0,0>}}
object {Point translate P2  pigment {rgb <1,1,0>}}
#declare Segment =
box {<-0.10, 0.00, -0.010>, <0.00, 1.00, 0.010>}
#local a = 0;
#local b = VDist(P1,P2);
union {
   #while (a <= b)
     object {Segment
       translate <0, a, 0>
       #if (even(a))
         pigment {rgb <0,1,0>}
       #else
         pigment {rgb <0,0,1>}
       #end
       #local a=a+1;
     }
   #end
   clipped_by {plane {y, b}}
   matrix <1, (P1.y-P2.y), 0, // matrix-shear_x_to_y
           0, 1, 0,
           0, 0, 1,
           0, 0, 0>
   Point_At_Trans(P2-P1)
   translate P1
}
//end code
What I want is that the short sides of the Segment always remain 
vertical whatever the positions of P1 or P2. What am I doing wrong?
Thanks for any help,
Thomas
 Post a reply to this message 
 | 
  |